forms: reorder and rename course fields
This commit is contained in:
parent
86336f8a65
commit
36a395f056
|
@ -43,8 +43,7 @@ class CreateCourseForm(forms.Form):
|
|||
helper.form_tag = False
|
||||
helper.layout = Layout(
|
||||
Div(
|
||||
Div('description', css_class="span4"),
|
||||
HTML('<div class="span8 future-name"></div>'),
|
||||
HTML('<div id="id_course_label"> </div>'),
|
||||
css_class='row-fluid'),
|
||||
'entity',
|
||||
Div(
|
||||
|
@ -62,7 +61,6 @@ class CreateCourseForm(forms.Form):
|
|||
('auto', u'oui'),
|
||||
('password', u'avec mot de passe'),
|
||||
('no', u'non'))
|
||||
description = forms.CharField(max_length=32)
|
||||
entity = forms.ModelChoiceField(Entity.objects.all(),
|
||||
label=u'Diplôme')
|
||||
category = forms.ChoiceField(label=u'Catégorie',
|
||||
|
@ -99,9 +97,11 @@ class CreateCourseForm(forms.Form):
|
|||
|
||||
class MyCourseForm(request_forms.CopyrigtsForm):
|
||||
visible_to_students = forms.BooleanField(
|
||||
label=u'Visible aux étudiants',
|
||||
label=u'Document visible aux étudiants',
|
||||
initial=True)
|
||||
ue = forms.ModelChoiceField(Entity.objects.all(), label=u'Unité d\'enseignement')
|
||||
ue = forms.ModelChoiceField(Entity.objects.all(),
|
||||
label=u'Sélectionnez l\'unité d\'enseignement dans \
|
||||
laquelle vous souhaitez diffuser votre document')
|
||||
course_name = forms.CharField(max_length=64)
|
||||
|
||||
class Meta(request_forms.CopyrigtsForm.Meta):
|
||||
|
@ -130,16 +130,18 @@ class MyCourseForm(request_forms.CopyrigtsForm):
|
|||
if constant.MYCOURSE_TAG in licence.diffusion_tags:
|
||||
licence_pks_with_mycourse_tag.append(licence.pk)
|
||||
self.helper.layout = Layout(
|
||||
Field('copyright', css_class="span8"),
|
||||
Field('licence', css_class="span8"),
|
||||
Field('copyright', css_class="span12"),
|
||||
Field('licence', css_class="span12"),
|
||||
HTML('<script>var licence_pks_with_mycourse_tag = [%s];</script>' %
|
||||
', '.join(map(str, licence_pks_with_mycourse_tag))),
|
||||
Fieldset(u'Diffusion sur la plateform d\'e-Learning',
|
||||
Div(
|
||||
'visible_to_students',
|
||||
HTML('{% include \'_select_my_course.html\' %}'),
|
||||
HTML('{% include \'_select_sponsor_course.html\' %}'),
|
||||
HTML('{% include \'_select_ue_course.html\' %}')),
|
||||
'ue',
|
||||
HTML('{% include \'_select_course.html\' %}'),
|
||||
id='mycourse-block', css_class='hide')))
|
||||
id='mycourse-block', css_class='hide'))
|
||||
|
||||
def clean_course_name(self):
|
||||
if self.cleaned_data['licence'] and \
|
||||
|
|
|
@ -1,92 +1,5 @@
|
|||
{% load sekizai_tags %}
|
||||
{% load url from future %}
|
||||
{% if wizard.form.course_name.errors %}
|
||||
<div class="alert">
|
||||
{{ wizard.form.course_name.errors }}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div id="course-selector" class="course-selector">
|
||||
{% if courses.error %}
|
||||
<div class="alert alert-error">Impossible de récupérer la liste des cours: {{ courses.error }}</div>
|
||||
{% endif %}
|
||||
{% include "_select_my_course.html" %}
|
||||
|
||||
<div class="control-group type-owner">
|
||||
<label for="course-type-owner" class="control-label">Mes cours</label>
|
||||
<div class="controls">
|
||||
{% include '_courses_selector.html' with response=courses.user_courses only %}
|
||||
</div>
|
||||
</div>
|
||||
{% include "_select_sponsor_course.html" %}
|
||||
|
||||
{% if courses.sponsor_courses %}
|
||||
<div class="control-group type-sponsor">
|
||||
<label for="course-type-sponsor" class="control-label">Les cours du sponsor</label>
|
||||
<div class="controls">
|
||||
{% include '_courses_selector.html' with response=courses.sponsor_courses only %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<style>
|
||||
.type-ue .controls button {
|
||||
height: auto;
|
||||
}
|
||||
.type-ue .controls.input-append {
|
||||
display: block;
|
||||
}
|
||||
</style>
|
||||
|
||||
{% if courses.ue_courses %}
|
||||
<div class="control-group type-ue">
|
||||
<label for="course-type-ue" class="control-label">Cours proches de l'UE « {{ courses.ue }} »</label>
|
||||
<div class="controls input-append">
|
||||
{% include '_courses_selector.html' with response=courses.ue_courses only %}
|
||||
<button data-target="#create-course" type="button" class="add-on btn" data-toggle="modal">Créer un nouveau cours</button>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% addtoblock "endscripts" %}
|
||||
<script>
|
||||
(function ($) {
|
||||
$(function () {
|
||||
var getJSON = function(url) {
|
||||
var res;
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: url,
|
||||
dataType: 'json',
|
||||
success: function(data) {
|
||||
res = data;
|
||||
},
|
||||
async: false
|
||||
});
|
||||
return res;
|
||||
};
|
||||
$('.courses-selector').on('change', function (){
|
||||
$('.courses-selector').not(this).val('');
|
||||
$('#id_document_copyrights-course_name').val($(this).val());
|
||||
});
|
||||
$('#id_document_copyrights-ue').on('change', function () {
|
||||
var value = $(this).val();
|
||||
var url = '/entity/' + value + '/';
|
||||
var json = getJSON(url);
|
||||
var url = '../../course-list/';
|
||||
url = url + '?ue=' + json.code + '#course-selector';
|
||||
$('#create-course .miller-columns').millercolumns('setItem',
|
||||
$(this).val())
|
||||
$('#id_entity').trigger('change');
|
||||
|
||||
$('#course-selector').load(url, function () {
|
||||
var val = $('#id_document_copyrights-course_name').val();
|
||||
$('.courses-selector').val(val);
|
||||
$('.courses-selector').on('change', function (){
|
||||
$('.courses-selector').not(this).val('');
|
||||
$('#id_document_copyrights-course_name').val($(this).val());
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
})
|
||||
})(window.jQuery)
|
||||
</script>
|
||||
{% endaddtoblock %}
|
||||
{% include "_select_ue_course.html" %}
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
#create-course .miller-columns {
|
||||
height: 10em;
|
||||
}
|
||||
#create-course label {
|
||||
font-weight: bold;
|
||||
}
|
||||
.modal.large {
|
||||
margin: -300px 0px 0px -380px;
|
||||
width: 760px;
|
||||
|
@ -30,6 +33,44 @@
|
|||
<script>
|
||||
(function ($) {
|
||||
$(function () {
|
||||
var getJSON = function(url) {
|
||||
var res;
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: url,
|
||||
dataType: 'json',
|
||||
success: function(data) {
|
||||
res = data;
|
||||
},
|
||||
async: false
|
||||
});
|
||||
return res;
|
||||
};
|
||||
$('.courses-selector').on('change', function (){
|
||||
$('.courses-selector').not(this).val('');
|
||||
$('#id_document_copyrights-course_name').val($(this).val());
|
||||
});
|
||||
$('#id_document_copyrights-ue').on('change', function () {
|
||||
var value = $(this).val();
|
||||
var url = '/entity/' + value + '/';
|
||||
var json = getJSON(url);
|
||||
var url = '../../course-list/';
|
||||
url = url + '?ue=' + json.code + '#ue-course';
|
||||
$('#create-course .miller-columns').millercolumns('setItem',
|
||||
$(this).val())
|
||||
$('#id_entity').trigger('change');
|
||||
|
||||
$.get(url, function (data) {
|
||||
var $content = $(data);
|
||||
$('#ue-course-container').html($('#ue-course', $content));
|
||||
var val = $('#id_document_copyrights-course_name').val();
|
||||
$('.courses-selector').val(val);
|
||||
$('.courses-selector').on('change', function (){
|
||||
$('.courses-selector').not(this).val('');
|
||||
$('#id_document_copyrights-course_name').val($(this).val());
|
||||
});
|
||||
});
|
||||
});
|
||||
$('#create-course').on('shown', function () {
|
||||
$('.miller-columns').millercolumns('refresh');
|
||||
});
|
||||
|
@ -50,22 +91,25 @@
|
|||
function update_course_name() {
|
||||
var entity_id = $('#id_entity').val();
|
||||
var td_group = $('#id_td_group').val();
|
||||
var $name = $('#id_description');
|
||||
var $name = $('#id_course_label');
|
||||
var delegate = $('#create-course .miller-columns').millercolumns('delegate');
|
||||
var item = delegate.cache[entity_id];
|
||||
var ue = item;
|
||||
var $msg = $('#create-course .future-name');
|
||||
while (item && item.type != 'diplome') {
|
||||
item = delegate.cache[item.parent_id];
|
||||
}
|
||||
if (item == undefined) {
|
||||
$name.val('');
|
||||
$name.addClass('alert');
|
||||
$name.text("La sélection n'est pas une unité d'enseignement.");
|
||||
} else {
|
||||
var username = '{{user.username}}';
|
||||
var name = item.code.toUpperCase()+'_'+'{{course_year}}'+'_'+username.toUpperCase();
|
||||
var name = item.name+'_'+'{{course_year}}'+'_'+ue.name+'_{{user.display_name}}';
|
||||
if (td_group) {
|
||||
name += '_' + td_group.toUpperCase();
|
||||
}
|
||||
$name.val(name);
|
||||
$name.removeClass('alert');
|
||||
$name.html("<span><label>Libellé</label>"+name+"</span>");
|
||||
}
|
||||
}
|
||||
$('#id_document_copyrights-licence').on('change', function () {
|
||||
|
|
|
@ -31,8 +31,14 @@ def create_course(request):
|
|||
if form.is_valid():
|
||||
conn = django_ws.get_bb_conn()
|
||||
course_id = form.cleaned_data['course_id']
|
||||
entity = form.cleaned_data['entity']
|
||||
diploma = entity.parents().filter(
|
||||
entity_type__name=settings.POLYNUM_BB_DIPLOMA_DESIGNATION)
|
||||
course_label = diploma.get_name() + '_' + \
|
||||
settings.POLYNUM_BB_COURSE_YEAR + '_' + \
|
||||
entity.get_name() + request.user.display_name()
|
||||
ok, result = conn.create_course(course_id,
|
||||
form.cleaned_data['description'],
|
||||
course_label,
|
||||
form.cleaned_data['category'],
|
||||
form.cleaned_data['open_to_visitors'],
|
||||
form.cleaned_data['subscription_policy'] != 'no',
|
||||
|
|
Reference in New Issue