class ScriptAdmin(admin.ModelAdmin):
model = Script
# exclude = ['options']
- inlines = [ScriptPageInline]
+ # inlines = [ScriptPageInline]
class Meta:
model = Script
- exclude = ['uuid', 'url', 'author', 'corrector', 'date_submitted', 'date_rejected', 'date_marked',
+ exclude = ['uuid', 'mime_type', 'sha1', 'url',
+ 'date_submitted', 'date_rejected', 'date_marked',
+ 'box_uuid',
]
#hidden_fields = ['status']
session = models.CharField(_('session'), choices=session_choices,
max_length=16, default="1")
type = models.ForeignKey(ScriptType, related_name='scripts', verbose_name=_('type'), null=True, on_delete=models.SET_NULL)
- author = models.ForeignKey(User, related_name="scripts", verbose_name=_('author'), null=True, on_delete=models.SET_NULL)
+ author = models.ForeignKey(User, related_name="scripts", verbose_name=_('author'), null=True, blank=True, on_delete=models.SET_NULL)
file = models.FileField(_('PDF file'), upload_to='scripts/%Y/%m/%d', blank=True)
box_uuid = models.CharField(_('Box UUID'), max_length='256', blank=True)
corrector = models.ForeignKey('Corrector', related_name="scripts", verbose_name=_('corrector'), blank=True, null=True, on_delete=models.SET_NULL)
return 'https://crocodoc.com/view/' + session_key
@property
- def box_user_url(self, user):
- user = {'id': user.id, 'name': unicode(user)}
+ def box_user_url(self):
+ user = {'id': 2, 'name': 'Pierre Durand'}
session_key = crocodoc.session.create(self.box_uuid, editable=False, user=user,
filter='all', admin=False, downloadable=True,
copyprotected=False, demo=False, sidebar='invisible')
def submit(self):
self.date_submitted = datetime.datetime.now()
# self.url = settings.MEDIA_URL + unicode(self.file)
- self.url='http://files.parisson.com/pre-barreau/Bordereau_de_livraison.pdf'
+ self.url='http://files.parisson.com/pre-barreau/LATRILLE Adeline - Procedure civile 1.pdf'
self.box_uuid = crocodoc.document.upload(url=self.url)
if not self.corrector:
self.auto_set_corrector()
});
- function SetValues()
- {
- var s = 'X=' + window.event.clientX + ' Y=' + window.event.clientY ;
- document.getElementById('divCoord').innerText = s;
-
- }
</script>
{% endblock extra_javascript %}
{% elif script.status == 0 %}
<a href="#" class="component_icon button icon_delete">{% trans "Rejected" %}</a>
{% else %}
- <a id="opener_mark" href="#" class="component_icon button icon_edit">{% trans "Mark" %}</a>
- <a id="opener_reject" href="#" class="component_icon button icon_delete">{% trans "Reject" %}</a>
+ {% if user.correctors.all %}
+ <a id="opener_mark" href="#" class="component_icon button icon_edit">{% trans "Mark" %}</a>
+ <a id="opener_reject" href="#" class="component_icon button icon_delete">{% trans "Reject" %}</a>
+ {% else %}
+ <a id="opener_mark" href="#" class="component_icon button icon_time">{% trans "Submitted" %}</a>
+ {% endif %}
{% endif %}
</div>
{% else %}
<div class="media">
<div class="script">
- <iframe style="position:fixed; top:14%; left:0px; bottom:0px; right:0px; width:100%; height:85%; border:none; margin:0; padding:0; z-index:0;" src="{{ script.box_admin_url }}">
+ <iframe style="position:fixed; top:14%; left:0px; bottom:0px; right:0px; width:100%; height:85%; border:none; margin:0; padding:0; z-index:0;" src="{% if user.correctors.all %}{{ script.box_admin_url }}{% else %}{{ script.box_user_url }}{% endif %}">
</iframe>
</div>
</div>
--- /dev/null
+{% extends "exam/scripts.html" %}
+{% load telemeta_utils %}
+{% load teleforma_tags %}
+{% load i18n %}
+{% load thumbnail %}
+
+{% block extra_javascript %}
+ <script>
+ // increase the default animation speed to exaggerate the effect
+ $(function() {
+ var b2 = $('#submit_button');
+ b2.unbind('click').click(function() {
+ $(window).unbind('beforeunload');
+ b2.unbind('click');
+ $('#id_status').val("2");
+ $('#_ScriptForm').submit();
+ });
+ });
+ </script>
+{% endblock extra_javascript %}
+
+{% block answers %}
+
+<div class="course_title">
+{% trans "New script" %}
+</div>
+
+<div title="{% trans "Mark" %}" style="width: 400px; background: white;">
+
+ <form method="post" id="_ScriptForm" action="">{% csrf_token %}
+ <table>
+ <tr><td colspan="2">{% for error in form.non_field_errors %}<li class="error">{{ error }}</li>{% endfor %}</td></tr>
+ {% for field in form %}
+ <tr>
+ {% if not field.html_name in create_fields %}
+ <td>{{ field.label_tag.as_hidden }}</td><td>{{ field.as_hidden }}</td>
+ {% else %}
+ <tr><td class="error">{{ field.errors }}</td></tr>
+ <td>{{ field.label_tag }}:</td><td> {{ field }}</td>
+ {% endif %}
+ </tr>
+ {% endfor %}
+ </table>
+ </form>
+ <br />
+ <a href="#" id="submit_button" class="component_icon button icon_ok">{% trans "Submit" %}</a>
+
+
+</div>
+</div>
+
+{% endblock answers %}
\ No newline at end of file
<div style="background: white;">
<ul>
{% block courses %}
- <li><a href="{% url teleforma-exam-scripts-pending period.id %}">{% trans "Pending" %}{% untreated_scripts_count user.username %}</a></li>
- <li><a href="{% url teleforma-exam-scripts-treated period.id %}">{% trans "Treated" %}</a></li>
+ <li><a href="{% url teleforma-exam-scripts-pending period.id %}">{% trans "Pending" %}{% if user.is_staff or user.correctors.all %}{% untreated_scripts_count user.username %}{% endif %}</a></li>
+ <li><a href="{% url teleforma-exam-scripts-treated period.id %}">{% trans "Treated" %}{% if not user.is_staff and not user.correctors.all %}{% treated_scripts_count user.username %}{% endif %}</a></li>
<li><a href="{% url teleforma-exam-scripts-rejected period.id %}">{% trans "Rejected" %}</a></li>
{% endblock courses %}
</ul>
</div>
</div>
+
+{% block module-action %}
+<div class="module_action">
+<a href="{% url teleforma-exam-script-create perdiod.id %}" class="component_icon button" id="action_green">{% trans "New script" %}</a>
+</div>
+{% endblock module-action %}
+
{% endblock modules %}
</div>
{% else %}
<p class="help">{% trans "No scripts" %}</p>
{% endif %}
-</div>
{% endblock answers %}
+</div>
+
{% endblock %}
url(r'^desk/periods/(?P<period_id>.*)/exam/scripts/list/$', ScriptsView.as_view(),
name="teleforma-exam-script-list"),
+ url(r'^desk/periods/(?P<period_id>.*)/exam/scripts/create/$', ScriptCreateView.as_view(),
+ name="teleforma-exam-script-create"),
+
url(r'^desk/periods/(?P<period_id>.*)/exam/scripts_pending/$', ScriptsPendingView.as_view(), name="teleforma-exam-scripts-pending"),
url(r'^desk/periods/(?P<period_id>.*)/exam/scripts_treated/$', ScriptsTreatedView.as_view(), name="teleforma-exam-scripts-treated"),
url(r'^desk/periods/(?P<period_id>.*)/exam/scripts_rejected/$', ScriptsRejectedView.as_view(), name="teleforma-exam-scripts-rejected"),
def get_queryset(self):
user = self.request.user
- scripts = Script.objects.filter(Q(status=3, author=user) | Q(status=3, corrector=user))
+ scripts = Script.objects.filter(Q(status=3, author=user) | Q(status=3, corrector__user=user))
return scripts
def get_queryset(self):
user = self.request.user
- scripts = Script.objects.filter(Q(status=4, author=user) | Q(status=4, corrector=user))
+ scripts = Script.objects.filter(Q(status=4, author=user) | Q(status=4, corrector__user=user))
return scripts
def get_queryset(self):
user = self.request.user
- scripts = Script.objects.filter(Q(status=0, author=user) | Q(status=0, corrector=user))
+ scripts = Script.objects.filter(Q(status=0, author=user) | Q(status=0, corrector__user=user))
return scripts
-class ScriptCreate(CreateView):
+class ScriptCreateView(CreateView):
+
model = Script
+ template_name='exam/script_form.html'
+ form_class = ScriptForm
+ success_url = reverse_lazy('teleforma-exam-scripts-pending', kwargs={'period_id':1})
def form_valid(self, form):
form.instance.author = self.request.user
- return super(ScriptCreate, self).form_valid(form)
+ return super(ScriptCreateView, self).form_valid(form)
+
+ def form_invalid(self, form):
+ return super(ScriptCreateView, self).form_invalid(form)
+
+ def get_context_data(self, **kwargs):
+ context = super(ScriptCreateView, self).get_context_data(**kwargs)
+ context['create_fields'] = ['course', 'period', 'session', 'type', 'file' ]
+ print self.request
+ return context
+
+ @method_decorator(login_required)
+ def dispatch(self, *args, **kwargs):
+ return super(ScriptCreateView, self).dispatch(*args, **kwargs)
+
+class ScriptUpdateView(UpdateView):
-class ScriptUpdate(UpdateView):
model = Script
fields = ['score']
notes = generic.GenericRelation(Note)
def __unicode__(self):
- return self.code
+ return self.title
@property
def slug(self):
<li><a href="{% url teleforma-annals %}" class="yellow">{% trans "Annals" %}</a></li>
{% endif %}
- <li><a href="#scripts#" class="green"> {% trans "Scripts" %} {% untreated_scripts_count user.username %}</a>
+ <li><a href="#scripts#" class="green"> {% trans "Scripts" %}
+ {% if user.is_staff or user.correctors.all %}{% untreated_scripts_count user.username %}
+ {% else %}{% treated_scripts_count user.username %}{% endif %}</a>
<ul>
{% for period in periods %}
<li><a href="{% url teleforma-exam-scripts-pending period.id %}" class="green">{{ period.name }}</a></li>
@register.simple_tag
def untreated_scripts_count(username):
user = User.objects.get(username=username)
- scripts = Script.objects.filter(Q(status=3, author=user) | Q(status=3, corrector=user))
+ scripts = Script.objects.filter(Q(status=3, author=user) | Q(status=3, corrector__user=user))
+ if scripts:
+ return ' (' + str(len(scripts)) + ')'
+ else:
+ return ''
+
+@register.simple_tag
+def treated_scripts_count(username):
+ user = User.objects.get(username=username)
+ scripts = Script.objects.filter(Q(status=4, author=user) | Q(status=4, corrector__user=user))
if scripts:
return ' (' + str(len(scripts)) + ')'
else: