def link_user_subject(request, subject_id, user_id): subject = SubjectService.find_one(subject_id) assert subject is not None if user_id is None: students = StudentService.find_all() lecturers = LecturerService.fin_all() template_name = 'user/list.html' template_data = { 'students': students, 'lecturers': lecturers, 'subject_id': subject.id } return render_to_response(template_name, template_data, context_instance=RequestContext(request)) else: user = UserService.find_one(user_id) assert user.has_perm('principal.alumno') or user.has_perm( 'principal.profesor') if user.has_perm('principal.alumno'): student = StudentService.find_one(user.id) student.asignaturas.add(subject) else: lecturer = LecturerService.find_one(user.id) if request.POST: form = UserLinkSubjectForm(request.POST) if form.is_valid(): ImpartSubjectService.reconstruct_and_save(form) messages.success(request, _("Action completed successfully")) return HttpResponseRedirect('/subject/details/' + str(subject_id)) else: data = { 'subject_id': subject_id, 'lecturer_id': lecturer.id, 'lecturer': lecturer.first_name + " " + lecturer.last_name } form = UserLinkSubjectForm(initial=data) students = StudentService.find_all() lecturers = LecturerService.fin_all() template_name = 'user/list.html' template_data = { "form": form, 'students': students, 'lecturers': lecturers, 'subject_id': subject_id, 'lecturer_id': lecturer.id } return render_to_response(template_name, template_data, context_instance=RequestContext(request)) messages.success(request, _('User linked to the subject')) return HttpResponseRedirect('/subject/details/' + str(subject_id))
def unlink_certification_subject(request, subject_id, certification_id): subject = SubjectService.find_one(subject_id) certification = CertificationService.find_one(certification_id) subject.titulacion_set.remove(certification) messages.success(request, _('Subject unlinked to the certification')) return HttpResponseRedirect('/admin/certification/details/' + str(certification_id))
def rollback(user_create, student_link, lecturer_link, subject_id): subject = SubjectService.find_one(subject_id) for student in student_link: student.asignaturas.remove(subject) for lecturer in lecturer_link: lecturer.imparteasignatura_set.all().get(profesor_id=lecturer.id, asignatura_id=subject.id).delete() for user in user_create: delete(user)
def delete_users_subject(request, subject_id): subject = SubjectService.find_one(subject_id) students = subject.alumno_set.all() # Delete students for student in students: student.asignaturas.remove(subject) # Delete relationship with lecturers subject.imparteasignatura_set.all().delete() messages.success(request, _('The users have been removed')) return HttpResponseRedirect('/subject/details/' + str(subject_id))
def rollback(user_create, student_link, lecturer_link, subject_id): subject = SubjectService.find_one(subject_id) for student in student_link: student.asignaturas.remove(subject) for lecturer in lecturer_link: lecturer.imparteasignatura_set.all().get( profesor_id=lecturer.id, asignatura_id=subject.id).delete() for user in user_create: delete(user)
def unlink_user_subject(request, subject_id, user_id): subject = SubjectService.find_one(subject_id) user = UserService.find_one(user_id) assert not user.has_perm('principal.administrator') if user.has_perm('principal.alumno'): student = StudentService.find_one(user_id) student.asignaturas.remove(subject) else: lecturer = LecturerService.find_one(user_id) lecturer.imparteasignatura_set.all().get(profesor_id=user.id, asignatura_id=subject.id).delete() messages.success(request, _('Subject unlinked to the user')) return HttpResponseRedirect('/admin/user/details/' + str(user.id))
def unlink_user_subject(request, subject_id, user_id): subject = SubjectService.find_one(subject_id) user = UserService.find_one(user_id) assert not user.has_perm('principal.administrator') if user.has_perm('principal.alumno'): student = StudentService.find_one(user_id) student.asignaturas.remove(subject) else: lecturer = LecturerService.find_one(user_id) lecturer.imparteasignatura_set.all().get( profesor_id=user.id, asignatura_id=subject.id).delete() messages.success(request, _('Subject unlinked to the user')) return HttpResponseRedirect('/admin/user/details/' + str(user.id))
def reconstruct_and_save(form): lecturer_id = form.cleaned_data['lecturer_id'] subject_id = form.cleaned_data['subject_id'] lecturer = LecturerService.find_one(lecturer_id) subject = SubjectService.find_one(subject_id) position = form.cleaned_data['position'] impart_subject = Imparteasignatura.objects.create( cargo=position, asignatura=subject, profesor=lecturer ) return impart_subject
def create(request, subject_id): subject = SubjectService.find_one(subject_id) assert subject is not None if request.POST: form = SubjectLinkEditForm(request.POST) if form.is_valid(): subject = SubjectService.edit(form) SubjectService.save(subject) messages.success(request, _("Action completed successfully")) return HttpResponseRedirect("/subject/details/" + str(subject_id)) else: certifications = CertificationService.find_by_subject(subject_id) data = {'id': subject_id, 'certifications': certifications} form = SubjectLinkEditForm(initial=data) template_name = 'subject_link/edit.html' template_data = {"form": form, "id": subject_id} return render_to_response(template_name, template_data, context_instance=RequestContext(request))
def link_user_subject(request, subject_id, user_id): subject = SubjectService.find_one(subject_id) assert subject is not None if user_id is None: students = StudentService.find_all() lecturers = LecturerService.fin_all() template_name = 'user/list.html' template_data = {'students': students, 'lecturers': lecturers, 'subject_id': subject.id} return render_to_response(template_name, template_data, context_instance=RequestContext(request)) else: user = UserService.find_one(user_id) assert user.has_perm('principal.alumno') or user.has_perm('principal.profesor') if user.has_perm('principal.alumno'): student = StudentService.find_one(user.id) student.asignaturas.add(subject) else: lecturer = LecturerService.find_one(user.id) if request.POST: form = UserLinkSubjectForm(request.POST) if form.is_valid(): ImpartSubjectService.reconstruct_and_save(form) messages.success(request, _("Action completed successfully")) return HttpResponseRedirect('/subject/details/' + str(subject_id)) else: data = {'subject_id': subject_id, 'lecturer_id': lecturer.id, 'lecturer': lecturer.first_name + " " + lecturer.last_name} form = UserLinkSubjectForm(initial=data) students = StudentService.find_all() lecturers = LecturerService.fin_all() template_name = 'user/list.html' template_data = {"form": form, 'students': students, 'lecturers': lecturers, 'subject_id': subject_id, 'lecturer_id': lecturer.id} return render_to_response(template_name, template_data, context_instance=RequestContext(request)) messages.success(request, _('User linked to the subject')) return HttpResponseRedirect('/subject/details/' + str(subject_id))
def delete_subject(request, subject_id): subject = SubjectService.find_one(subject_id) title = subject.nombre subject.delete() messages.success(request, _('The subject ' + title + ' has been removed')) return HttpResponseRedirect('/subject/list')