forms: added building of the course name, update selectors with new course ids
This commit is contained in:
parent
7e5a94654f
commit
88eac06e78
|
@ -14,37 +14,4 @@
|
|||
<button class="btn btn-primary">Créer</a>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
$(function () {
|
||||
function install_form() {
|
||||
$('#id_subscription_policy').on('change', function() {
|
||||
if ($(this).val() == 'password') {
|
||||
$('#div_id_password').parent().show();
|
||||
} else {
|
||||
$('#div_id_password').parent().hide();
|
||||
}
|
||||
});
|
||||
$('#create-course form').ajaxForm({
|
||||
dataType: 'json',
|
||||
success: function (content, statusText, xhr, form) {
|
||||
if (content.success) {
|
||||
alert('Cours ' + content.course_id + ' créé.');
|
||||
$('#create-course').modal('hide');
|
||||
var option = $('<option value="' + content.course_id + '">' + content.description + '</option>');
|
||||
var select = $('.type-owner select');
|
||||
option.appendTo(select);
|
||||
select.val(content.course_id);
|
||||
select.trigger('change');
|
||||
} else {
|
||||
var newform = $(content.html);
|
||||
$('#create-course form').replaceWith($('form', newform));
|
||||
window.install_django_miller_columns();
|
||||
install_form();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
install_form();
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
|
|
|
@ -14,15 +14,24 @@
|
|||
<label for="course-type-owner" class="control-label">Mes cours</label>
|
||||
<div class="controls">
|
||||
{% include '_courses_selector.html' with response=courses.user_courses only %}
|
||||
<a href="#create-course" role="button" class="btn" data-toggle="modal">Créer un nouveau cours</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.type-ue .controls button {
|
||||
height: auto;
|
||||
}
|
||||
.type-ue .controls.input-append {
|
||||
display: block;
|
||||
}
|
||||
</style>
|
||||
|
||||
{% if courses.ue_courses %}
|
||||
<div class="control-group">
|
||||
<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">
|
||||
<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 %}
|
||||
|
@ -57,7 +66,14 @@
|
|||
var url = '../../course-list/';
|
||||
url = url + '?ue=' + json.code + '#course-selector';
|
||||
|
||||
$('#course-selector').load(url);
|
||||
$('#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());
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
})
|
||||
|
|
|
@ -47,10 +47,67 @@
|
|||
$('#mycourse-block').hide('slow');
|
||||
}
|
||||
}
|
||||
function update_course_name() {
|
||||
var entity_id = $('#id_entity').val();
|
||||
var td_group = $('#id_td_group').val();
|
||||
var $name = $('#id_description');
|
||||
var delegate = $('#create-course .miller-columns').millercolumns('delegate');
|
||||
var item = delegate.cache[entity_id];
|
||||
var $msg = $('#create-course .future-name');
|
||||
while (item && item.type != 'diplome') {
|
||||
item = delegate.cache[item.parent_id];
|
||||
}
|
||||
console.log(item);
|
||||
if (item == undefined) {
|
||||
$name.val('');
|
||||
} else {
|
||||
var name = item.code.toUpperCase()+'_'+'{{course_year}}'+'_'+'{{user.username}}';
|
||||
if (td_group) {
|
||||
name += '_' + td_group;
|
||||
}
|
||||
$name.val(name);
|
||||
}
|
||||
}
|
||||
$('#id_document_copyrights-licence').on('change', function () {
|
||||
toggle_mycourse_panel();
|
||||
});
|
||||
toggle_mycourse_panel();
|
||||
function update_course() {
|
||||
var val = $('#id_document_copyrights-course_name').val();
|
||||
$('.courses-selector').val(val);
|
||||
};
|
||||
function install_form() {
|
||||
$('#id_entity').on('change', update_course_name);
|
||||
$('#id_td_group').on('keyup', update_course_name);
|
||||
$('#id_subscription_policy').on('change', function() {
|
||||
if ($(this).val() == 'password') {
|
||||
$('#div_id_password').parent().show();
|
||||
} else {
|
||||
$('#div_id_password').parent().hide();
|
||||
}
|
||||
});
|
||||
$('#create-course form').ajaxForm({
|
||||
dataType: 'json',
|
||||
success: function (content, statusText, xhr, form) {
|
||||
if (content.success) {
|
||||
alert('Cours ' + content.course_id + ' créé.');
|
||||
$('#create-course').modal('hide');
|
||||
$('#div_id_document_copyrights-ue .miller-columns').millercolumns(
|
||||
'setItem', ''+content.entity_pk);
|
||||
$('#id_document_copyrights-course_name').val(content.course_id);
|
||||
$('#id_document_copyrights-ue').trigger('change');
|
||||
} else {
|
||||
var newform = $(content.html);
|
||||
$('#create-course form').replaceWith($('form', newform));
|
||||
window.install_django_miller_columns();
|
||||
install_form();
|
||||
}
|
||||
}
|
||||
});
|
||||
update_course_name();
|
||||
}
|
||||
install_form();
|
||||
update_course();
|
||||
})
|
||||
})(window.jQuery)
|
||||
</script>
|
||||
|
|
|
@ -39,7 +39,12 @@ def create_course(request):
|
|||
logging.info('user %s created course %s',
|
||||
request.user.username.encode('utf-8'),
|
||||
course_id.encode('utf-8'))
|
||||
data = { 'success': 1, 'course_id': course_id, 'description': form.cleaned_data['description'] }
|
||||
data = {
|
||||
'success': 1,
|
||||
'entity_pk': form.cleaned_data['entity'].pk,
|
||||
'course_id': course_id,
|
||||
'description': form.cleaned_data['description']
|
||||
}
|
||||
else:
|
||||
logging.error('user %s failed to create course %s: %s',
|
||||
request.user.username.encode('utf-8'),
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
from django.contrib.auth.decorators import login_required
|
||||
from django.conf import settings
|
||||
|
||||
from polynum.request import views as request_views
|
||||
|
||||
|
@ -17,14 +18,10 @@ class RequestWizardView(request_views.RequestWizardView):
|
|||
def get_context_data(self, form, **kwargs):
|
||||
context = super(RequestWizardView, self).get_context_data(form=form, **kwargs)
|
||||
polynum_request = self.get_object()
|
||||
diplome_entity = polynum_request.entity
|
||||
if diplome_entity:
|
||||
possible_diplome_entity = diplome_entity.parents(True).filter(entity_type__name='etape')
|
||||
if possible_diplome_entity:
|
||||
diplome_entity = possible_diplome_entity[0]
|
||||
context['create_course_form'] = forms.CreateCourseForm(request=self.request,
|
||||
initial={'entity': diplome_entity})
|
||||
initial={'entity': polynum_request.entity})
|
||||
context['courses'] = views.courses_ctx(self.request, polynum_request)
|
||||
context['course_year'] = settings.POLYNUM_BB_COURSE_YEAR
|
||||
return context
|
||||
|
||||
request_wizard_step = login_required(RequestWizardView.as_view(named_new_request_forms,
|
||||
|
|
Reference in New Issue