for="recipient_category-admin">A un administrateur</label>
<input type="radio" id="recipient_category-prof" name="recipient_category" value="prof" {% if request.POST.recipient_category == 'prof' %}checked="checked"{% endif %}/><label
for="recipient_category-prof">A un professeur</label>
+ <input type="radio" id="recipient_category-corrector" name="recipient_category" value="corrector" {% if request.POST.recipient_category == 'corrector' %}checked="checked"{% endif %}/><label
+ for="recipient_category-corrector">A un correcteur</label>
<div id="category-admin">
</select>
</div>
+ <div id="category-corrector">
+
+ <select id="_correctorCourseSelect" name="corrector_course">
+ <option value="">Matière</option>
+ {% get_all_courses as courses %}
+ {% for c in courses %}
+ <option value="{{ c.id }}" {% if request.POST.corrector_course == c.id|stringformat:"i" %}selected{% endif %}>{{ c.title }}</option>
+ {% endfor %}
+ </select>
+
+ <select id="_correctorSelect" name="correctors">
+ <option value="">Choisir un correcteur</option>
+ {% get_all_correctors_with_courses as correctors %}
+ {% for p in correctors %}
+ <option value="{{ p.username }}"
+ data-courses="{{ p.courses }}" {% if request.POST.correctors == p.username %}selected{% endif %}>{{ p.name }}</option>
+ {% endfor %}
+ </select>
+ </div>
<table>
{% block pm_write_recipient %}{% endblock %}
});
}
+ function update_corrector_recipient() {
+ $("#_correctorSelect").click(function () {
+ var htmlStr = $(this).val();
+ $("#id_recipients").val(htmlStr);
+ });
+ }
function update_desk_messages(event) {
// reset values
if(event){
$target = $(event.target);
- if($target.attr('id') === 'recipient_category-prof' || $target.attr('id') === 'recipient_category-admin') {
+ if($target.attr('id') === 'recipient_category-prof' || $target.attr('id') === 'recipient_category-admin' || $target.attr('id') === 'recipient_category-corrector') {
$('#_professorSelect').val('');
+ $('#_correctorSelect').val('');
+ $('#_correctorCourseSelect').val('');
$('#_courseSelect').val('');
$('#_adminSelect').val('');
}
if($target.attr('id') === '_courseSelect')
$('#_professorSelect').val('');
+ if($target.attr('id') === '_correctorCourseSelect')
+ $('#_professorSelect').val('');
}
// show or hide field depending on what is selected
$("#id_recipients").val('');
$('#category-admin').hide();
$('#category-prof').hide();
+ $('#category-corrector').hide();
if (recipientCategory == 'admin')
$('#category-admin').show();
else if (recipientCategory == 'prof')
$('#category-prof').show();
+ else if (recipientCategory == 'corrector')
+ $('#category-corrector').show();
var course = parseInt($('[name="course"]').val(), 10);
if(!course)
else
$('#_professorSelect').show();
+ var correctorCourse = parseInt($('[name="corrector_course"]').val(), 10);
+ console.log(correctorCourse)
+ if(!correctorCourse)
+ $('#_correctorSelect').hide();
+ else
+ $('#_correctorSelect').show();
+
$('#_professorSelect option').hide();
$('#_professorSelect option:first').show();
$('#_professorSelect option').each(function(){
if(courses && courses.indexOf(course) >= 0)
$option.show();
});
+ $('#_correctorSelect option').hide();
+ $('#_correctorSelect option:first').show();
+ $('#_correctorSelect option').each(function(){
+ var $option = $(this);
+ var courses = $option.data('courses')
+ if(courses && courses.indexOf(correctorCourse) >= 0)
+ $option.show();
+ });
+
// fill the hidden field
if($('#_professorSelect').val() && $('#_courseSelect').val() && recipientCategory === 'prof')
$("#id_recipients").val($('#_professorSelect').val());
+ if($('#_correctorSelect').val() && $('#_correctorCourseSelect').val() && recipientCategory === 'corrector')
+ $("#id_recipients").val($('#_correctorSelect').val());
if($('#_adminSelect').val() && recipientCategory === 'admin')
$("#id_recipients").val($('#_adminSelect').val());
{#$('#id_course').parent().parent().hide();#}
$('[name="recipient_category"]').bind('change', update_desk_messages);
- $('[name="course"]').bind('change', update_desk_messages);
- $('#_professorSelect, #_adminSelect').bind('change', update_desk_messages);
+ $('[name="course"], [name="corrector_course"]').bind('change', update_desk_messages);
+ $('#_professorSelect, #_correctorSelect, #_adminSelect').bind('change', update_desk_messages);
update_desk_messages();
document.getElementById("id_subject").focus();