.course_description {
background-color: #FFF;
- padding: 0em 1em 1em 1em;
+ padding: 0em 1em 0.5em 1em;
-moz-border-radius: 8px 0px 8px 8px;
-webkit-border-radius: 8px 0px 8px 8px;
border-radius: 8px 0px 8px 8px;
var rainbow = new Rainbow();
rainbow.setSpectrum('#bb0000', '#e65911', '#f3ad17', 'green');
+
--- /dev/null
+{% extends "teleforma/seminar_detail.html" %}
+{% load teleforma_tags %}
+{% load i18n %}
+
+{% block extra_javascript %}
+<script src="{{ STATIC_URL }}teleforma/js/charCount.js" type="text/javascript"></script>
+<script type="text/javascript">
+
+</script>
+{% endblock extra_javascript %}
+
+
+{% block course_content %}
+
+<div class="course_content">
+ <div class="course_subtitle">
+ <h3><img src="{{ STATIC_URL }}telemeta/images/item_title.png" width="10px" alt="" /> {{ answer.question|safe }}</h3>
+ </div>
+ <div style="text-align: justify;">
+ {{ answer.question.question|safe }}
+ </div>
+</div>
+
+<br />
+
+<div class="course_content">
+<div class="course_subtitle">
+ <h3><img src="{{ STATIC_URL }}telemeta/images/item_title.png" width="10px" alt="" /> {% trans "Answer" %}</h3>
+ </div>
+ <div style="text-align: justify;">
+ {{ answer.answer|safe }}
+ </div>
+</div>
+
+<br />
+
+{% if user.is_staff %}
+<a id="validate" href="#" class="component_icon button icon_ok" onclick="var f = answerUtils; f.validate('{{answer.id}}')">{% trans " validate" %}</a>
+<a id="reject" href="#" class="component_icon button icon_delete" onclick="var f = answerUtils; f.reject('{{answer.id}}')">{% trans " reject" %}</a>
+{% endif %}
+
+{% endblock course_content %}
+
+
+{% block progress %}
+{% endblock progress %}
+
{{ form }}
</form>
+{% if status != 3 %}
<br />
<a href="#" class="component_icon button icon_save"
onclick="document.getElementById('_AnswerForm').submit();">{% trans "Save" %}</a>
-
<a href="#" id="submit_button" class="component_icon button icon_ok">{% trans "Submit it" %}</a>
+{% endif %}
{% endblock course_content %}
--- /dev/null
+{% extends "telemeta/base.html" %}
+{% load i18n %}
+{% load telemeta_utils %}
+{% load teleforma_tags %}
+
+{% block head_title %}{% trans "Answers" %} - {{ block.super }}{% endblock %}
+
+{% block title %}
+{% endblock %}
+
+
+{% block infra_javascript %}
+<script type="text/javascript">
+
+var answerUtils = {
+ validate : function(id, a){
+ json([id],'teleforma.validate_answer',function(){
+ a.removeClass('icon_delete').addClass('icon_ok')
+ a.html('{% trans " validated" %}')
+ });
+ },
+ reject : function(id, a){
+ json([id],'teleforma.reject_answer',function(){
+ a.removeClass('icon_ok').addClass('icon_delete')
+ a.html('{% trans " rejected" %}')
+ });
+ }
+ }
+
+</script>
+{% endblock infra_javascript %}
+
+{% block content %}
+
+<div id="module-set-left" style="width: 18%">
+
+{% block modules %}
+<div class="module">
+
+<h3><a href="{% url teleforma-desk %}"><img src="{{ STATIC_URL }}telemeta/images/module_playlist.png" alt="playlists" style="vertical-align:middle" />{% trans "My seminars" %}</a></h3>
+<div style="background: white;">
+<ul>
+{% block courses %}
+{% for seminar in all_seminars %}
+ <li><a href="{% url teleforma-seminar-detail seminar.id %}">{{ seminar.title }}</a></li>
+ {% endfor %}
+{% endblock courses %}
+</ul>
+</div>
+</div>
+
+</div>
+{% endblock modules %}
+
+<div class="desk_messages">
+
+{% if user.is_staff %}
+<div style="float:right;">
+</div>
+{% endif %}
+
+<div class="course_title">{% trans "Answers" %}</div>
+<br />
+ {% if object_list %}
+ {% include "teleforma/inc/answer_list.html" %}
+ {% else %}
+ <p class="help">{% trans "No answer" %}</p>
+ {% endif %}
+</div>
+{% endblock %}
--- /dev/null
+{% load i18n %}
+{% load telemeta_utils %}
+{% load teleforma_tags %}
+{% load pagination_tags %}
+
+<div class="pagination">
+ {% for p in page.paginator.pages %}
+ {% if p == page %}
+ <span class="selected">{{ page }}</span>
+ {% else %}
+ <a href="?page={{ p.number }}">{{ p }}</a>
+ {% endif %}
+ {% endfor %}
+</div>
+
+<div id="users">
+ <table class="listing" width="100%">
+ <thead>
+ <tr><th>{% trans "Last Name"%}</th>
+ <th>{% trans "First Name"%}</th>
+ <th>{% trans "Seminar"%}</th>
+ <th>{% trans "Date submitted"%}</th>
+ <th>{% trans "Summary"%}</th>
+ <th>{% trans "Action / status"%}</th>
+ </tr>
+ </thead>
+ <tbody id="spacing">
+ {% for answer in page.object_list %}
+ <tr>
+ <td><a href="{% url teleforma-profile-detail answer.user.username %}">{{ answer.user.last_name }}</a></td>
+ <td><a href="{% url teleforma-profile-detail answer.user.username %}">{{ answer.user.first_name }}</a></td>
+
+ <td>{{ answer.question.seminar }}</td>
+ <td>{{ answer.date_submitted }}</td>
+ <td><a href="{% url teleforma-answer-detail answer.id %}">{{ answer.answer|summary:120 }}</a></td>
+ <td>{% if user.is_staff %}
+ <a id="validate" href="#" class="{% if answer.validated %}component_icon button icon_ok{% else %}component_icon button icon_delete{% endif %}"
+ onclick="var f = answerUtils;
+ if ($(this).hasClass('icon_ok')) {f.reject('{{answer.id}}', $(this)); return false;}
+ if ($(this).hasClass('icon_delete')) {f.validate('{{answer.id}}', $(this)); return false;}">
+ {% if answer.validated %}{% trans " validated" %}{% else %}{% trans " rejected" %}{% endif %}</a>
+ {% endif %}
+ </td>
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+</div>
$('#progressbar-seminar div').css({"background": color});
});
</script>
-
{% endblock infra_javascript %}
<div style="float: right; font-size: 0.9em;">
{% if seminar_progress == 100 %}
- <a id="validated" href="#" class="component_icon button icon_ok">{% trans " validated" %}</a>
+ <img src="{{ STATIC_URL }}telemeta/images/ok.png" title="{% trans "validated" %}" alt="{% trans "validated" %}"/>
{% endif %}
</div>
<div class="course_subtitle">
<h3><img src="{{ STATIC_URL }}telemeta/images/item_title.png" width="10px" alt="" /> {% trans "Informations" %}</h3>
</div>
- <div style="padding-left: 1em;">
- <dl class="listing" style="font-size: 1em;">
+ <div class="course_description">
+ <dl class="listing" style="font-size: 1.1em;">
{% if seminar.keywords.all %}<dt>{% trans "keywords" %}</dt><dd>{% for kw in seminar.keywords.all %}{{ kw }}, {% endfor %}</dd>{% endif %}
<dt>{% trans "level" %}</dt><dd>{{ seminar.level }}</dd>
<dt>{% trans "public concerned" %}</dt><dd>{{ seminar.concerned }}</dd>
{% include "teleforma/inc/question_list.html" %}
{% endwith %}
{% else %}
+
+
{% with _("Step 4 : answer to the following question") as title %}
{% include "teleforma/inc/question_list.html" %}
{% endwith %}
{% if user.is_staff %}
<script type="text/javascript">
- var mediaUtils = {
+
+var mediaUtils = {
publish : function(id){
- var p = jQuery('#publish');
+ var p = $('#publish');
json([id],'teleforma.publish_media_package',function(){
p.removeClass('icon_delete').addClass('icon_ok')
p.html('{% trans " published" %}')
});
},
unpublish : function(id){
- var p = jQuery('#publish');
+ var p = $('#publish');
json([id],'teleforma.unpublish_media_package',function(){
p.removeClass('icon_ok').addClass('icon_delete')
p.html('{% trans " rejected" %}')
}
}
- jQuery(window).ready(function(){
- var p = jQuery('#publish');
- var f = mediaUtils;
- p.unbind('click').click(function() {
- if (p.hasClass('icon_ok')){
- f.unpublish('{{media_package.id}}');
- return false;
- }
- if (p.hasClass('icon_delete')) {
- f.publish('{{media_package.id}}');
- return false;
- }
+$(window).ready(function(){
+ var p = jQuery('#publish');
+ var f = mediaUtils;
+ p.unbind('click').click(function() {
+ if (p.hasClass('icon_ok')){
+ f.unpublish('{{media_package.id}}');
+ return false;
+ }
+ if (p.hasClass('icon_delete')) {
+ f.publish('{{media_package.id}}');
+ return false;
}
- );
- });
+ }
+ );
+ });
+
</script>
{% endif %}
<script type="text/javascript">
$(function () {
$('div.description').expander({
- slicePoint: 120,
+ slicePoint: 60,
expandText: 'Lire plus',
userCollapseText: 'Cacher le texte',
});
<div class="course_content">
<div class="course_subtitle">
</div>
- <div style="padding-left: 1em;">
- <dl class="listing" style="font-size: 1em;">
+ <div class="course_description">
+ <dl class="listing" style="font-size: 1.1em;">
{% if seminar.keywords.all %}<dt>{% trans "keywords" %}</dt><dd>{% for kw in seminar.keywords.all %}{{ kw }}, {% endfor %}</dd>{% endif %}
<dt>{% trans "level" %}</dt><dd>{{ seminar.level }}</dd>
<dt>{% trans "public concerned" %}</dt><dd>{{ seminar.concerned }}</dd>
{% if user.is_authenticated %}
{% if user.is_staff %}
- <li><a href="#archives#" class="green">{% trans "Archives" %}</a>
- <ul>
- <li><a href="{% url telemeta-search-criteria %}">{% trans "Search" %}</a></li>
- <li><a href="{% url telemeta-collections %}">{% trans "Collections" %}</a></li>
- <li><a href="{% url telemeta-items %}">{% trans "Items" %}</a></li>
- </ul>
- </li>
+ <li><a href="{% url teleforma-answers %}" class="green">{% trans "Answers" %}</a></li>
<li><a href="{% url telemeta-admin-general %}" class="blue">{% trans "Admin" %}</a></li>
{% else %}
<li><a href="{% url teleforma-help %}" class="green">{% trans "Help" %}</a></li>
else:
return ''
+@register.filter
+def summary(text, N):
+ return text[:N] + '...'
+
# Questions
url(r'^desk/questions/(?P<pk>.*)/$', AnswerView.as_view(),
name="teleforma-question-answer"),
+ url(r'^desk/answers/$', AnswersView.as_view(), name="teleforma-answers"),
+ url(r'^desk/answers/(?P<pk>.*)/$', AnswerDetailView.as_view(), name="teleforma-answer-detail"),
# Postman
url(r'^messages/', include('postman.urls')),
answer = Answer()
initial['answer'] = answer.answer
initial['status'] = answer.status
+ self.status = answer.status
return initial
def form_valid(self, form):
context = super(AnswerView, self).get_context_data(**kwargs)
context['all_seminars'] = get_seminars(self.request.user)
context['question'] = self.question
+ context['status'] = self.status
context['seminar'] = self.question.seminar
context['seminar_progress'] = seminar_progress(self.request.user, self.question.seminar)
context['total_progress'] = total_progress(self.request.user)
for media in media_package.audio.all():
media.is_published = False
media.save()
+
+class AnswersView(ListView):
+
+ model = Answer
+ template_name='teleforma/answers.html'
+
+ def get_queryset(self):
+ return Answer.objects.filter(status=3)
+
+ def get_context_data(self, **kwargs):
+ context = super(AnswersView, self).get_context_data(**kwargs)
+ all_seminars = get_seminars(self.request.user)
+ context['all_seminars'] = all_seminars
+
+ paginator = Paginator(self.object_list, per_page=12)
+ try:
+ page = int(self.request.GET.get('page', '1'))
+ except ValueError:
+ page = 1
+
+ try:
+ page = paginator.page(page)
+ except (InvalidPage):
+ page = paginator.page(paginator.num_pages)
+ context['page'] = page
+ return context
+
+ @method_decorator(login_required)
+ def dispatch(self, *args, **kwargs):
+ return super(AnswersView, self).dispatch(*args, **kwargs)
+
+
+ @jsonrpc_method('teleforma.validate_answer')
+ def validate(request, id):
+ answer = Answer.objects.get(id=id)
+ answer.validated = True
+ answer.save()
+
+ @jsonrpc_method('teleforma.reject_answer')
+ def reject(request, id):
+ answer = Answer.objects.get(id=id)
+ answer.validated = False
+ answer.status = 2
+ answer.save()
+
+
+class AnswerDetailView(DetailView):
+
+ model = Answer
+ template_name='teleforma/answer_detail.html'
+
+ @method_decorator(login_required)
+ def dispatch(self, *args, **kwargs):
+ return super(AnswerDetailView, self).dispatch(*args, **kwargs)
+
+ def get_context_data(self, **kwargs):
+ context = super(AnswerDetailView, self).get_context_data(**kwargs)
+ context['all_seminars'] = get_seminars(self.request.user)
+ return context