Пример #1
0
def create_link_subject_file(data_form, certifications, import_errors_create,
                             import_errors_link, subject_create, subject_link):
    form_subject = SubjectEditForm(data=data_form)

    if form_subject.is_valid():
        subject = SubjectService.create(form_subject)
        SubjectService.save(subject)
        subject_create.append(subject)
        [
            subject.titulacion_set.add(certification)
            for certification in list(certifications)
        ]
    else:
        import_errors_create.append(form_subject.data['name'] + " - " +
                                    form_subject.data['code'])
        subject = SubjectService.find_by_code(form_subject.data['code'])
        if subject:
            [
                subject.titulacion_set.add(certification)
                for certification in list(certifications)
            ]
            subject_link.append(subject)
        else:
            import_errors_link.append(form_subject.data['name'] + " - " +
                                      form_subject.data['code'])
Пример #2
0
def view_profile(request, student_id):
    template_vars = {}
    form = None

    if request.method == 'POST':
        student = Alumno.objects.get(id=student_id)
        lecturer_subjects = SubjectService.get_lecturer_subjects(request.user.id)
        template_vars['lecturer_subjects'] = lecturer_subjects

        # Save remark from form -> logged user is a lecturer
        form = RemarkForm(request.POST, lecturer_id=request.user.id)
        if form.is_valid():
            RemarkService.save(form)
            messages.success(request, _('Remark was saved successfully.'))

            return HttpResponseRedirect('/profile/view/%s' % form.cleaned_data['student_id'])
    else:
        if request.user.has_perm('principal.alumno'):
            student = Alumno.objects.get(id=request.user.id)

        else:
            student = Alumno.objects.get(id=student_id)

            if request.user.has_perm('principal.profesor'):
                lecturer_subjects = SubjectService.get_lecturer_subjects(request.user.id)
                form = RemarkForm(lecturer_id=request.user.id, initial={'student_id': student.id})
                template_vars['lecturer_subjects'] = lecturer_subjects

    template_vars['student'] = student
    template_vars['form'] = form

    return render_to_response('profile/details.html', template_vars, context_instance=RequestContext(request))
Пример #3
0
def lecturer_students(request):
    if request.method == 'POST':
        form = LecturerStudentFilterForm(request.POST, lecturer_id=request.user.id)
        if form.is_valid():
            subject = form.cleaned_data['subject']
            students = SubjectService.subject_students(subject, request.user.id)
    else:
        form = LecturerStudentFilterForm(lecturer_id=request.user.id)
        students = SubjectService.lecturer_students(request.user.id)

    return render_to_response('student/list.html', {'students': students, 'form': form},
                              context_instance=RequestContext(request))
Пример #4
0
def list_subjects(request):
    if request.user.has_perm('principal.alumno'):
        subjects = SubjectService.get_student_subjects(request.user.alumno.id)
    elif request.user.has_perm('principal.profesor'):
        # TODO Creo que no llama al metodo correcto (Revisar Carlos)
        subjects = SubjectService.get_lecturer_subjects(request.user.profesor.id)
    else:
        # It's an administrator
        subjects = SubjectService.find_all().order_by('nombre')

    template_name = 'subject/list.html'
    template_data = {"subjects": subjects}
    return render_to_response(template_name, template_data, context_instance=RequestContext(request))
Пример #5
0
def news(request, new_id=None, method=None):
    if request.method == 'POST':
        assert request.user.has_perm('principal.profesor')
        form = NewForm(request.POST, lecturer_id=request.user.id)

        if form.is_valid():
            NewService.save(form, request.user.id)
            messages.add_message(request, messages.SUCCESS,
                                 _('Action completed successfully.'))

            return HttpResponseRedirect('/news')

    if request.user.has_perm('principal.alumno'):
        subjects = SubjectService.get_student_subjects(request.user.id)
        form = None

    elif request.user.has_perm('principal.profesor'):
        subjects = SubjectService.get_lecturer_subjects(request.user.id)
        if method == 'rm':
            new = get_object_or_404(Noticia, id=new_id)
            if new.profesor.id == request.user.id:
                NewService.delete(new_id)
                messages.success(request, _('New was deleted successfully.'))
            else:
                messages.error(request, _('You cannot delete this new.'))
            return HttpResponseRedirect('/news')

        elif method == 'ed':
            new = get_object_or_404(Noticia, id=new_id)
            if new.profesor.id == request.user.id:
                initial_data = NewService.build_initial(new_id)
                form = NewForm(lecturer_id=request.user.id,
                               initial=initial_data)
            else:
                messages.error(request, _('You cannot edit this new.'))
                return HttpResponseRedirect('/news')
        elif not method:
            form = NewForm(lecturer_id=request.user.id)

    else:
        subjects = Asignatura.objects.all()
        form = None

    return render_to_response('new/list.html', {
        'subjects': subjects,
        'form': form
    },
                              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 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))
Пример #8
0
def list_subjects(request):
    if request.user.has_perm('principal.alumno'):
        subjects = SubjectService.get_student_subjects(request.user.alumno.id)
    elif request.user.has_perm('principal.profesor'):
        # TODO Creo que no llama al metodo correcto (Revisar Carlos)
        subjects = SubjectService.get_lecturer_subjects(
            request.user.profesor.id)
    else:
        # It's an administrator
        subjects = SubjectService.find_all().order_by('nombre')

    template_name = 'subject/list.html'
    template_data = {"subjects": subjects}
    return render_to_response(template_name,
                              template_data,
                              context_instance=RequestContext(request))
Пример #9
0
def get_all_json(request):
    subjects = SubjectService.get_student_subjects(request.user.alumno.id)
    json = json_lib.dumps([{
        'id': subject.id,
        'name': subject.nombre
    } for subject in subjects])
    return JsonResponse(json, safe=False)
Пример #10
0
def create_subject(request):
    if request.POST:
        form = SubjectEditForm(request.POST)

        if form.is_valid():
            subject = SubjectService.create(form)
            SubjectService.save(subject)
            messages.success(request, _("Action completed successfully"))
            return HttpResponseRedirect("/admin/subject/link/" + str(subject.id))
    else:
        data = {}
        form = SubjectEditForm(initial=data)

    template_name = 'subject/edit.html'
    template_data = {"form": form}
    return render_to_response(template_name, template_data, context_instance=RequestContext(request))
Пример #11
0
    def clean(self):
        code = self.cleaned_data.get('code')
        if code is not None:
            subject = SubjectService.find_by_code(code)
            if subject is not None:
                self.add_error('code', _("There cannot be two certifications with the same code"))

        return self.cleaned_data
Пример #12
0
def lecturer_students(request):
    if request.method == 'POST':
        form = LecturerStudentFilterForm(request.POST,
                                         lecturer_id=request.user.id)
        if form.is_valid():
            subject = form.cleaned_data['subject']
            students = SubjectService.subject_students(subject,
                                                       request.user.id)
    else:
        form = LecturerStudentFilterForm(lecturer_id=request.user.id)
        students = SubjectService.lecturer_students(request.user.id)

    return render_to_response('student/list.html', {
        'students': students,
        'form': form
    },
                              context_instance=RequestContext(request))
Пример #13
0
def create_link_subject_file(data_form, certifications, import_errors_create, import_errors_link, subject_create,
                             subject_link):
    form_subject = SubjectEditForm(data=data_form)

    if form_subject.is_valid():
        subject = SubjectService.create(form_subject)
        SubjectService.save(subject)
        subject_create.append(subject)
        [subject.titulacion_set.add(certification) for certification in list(certifications)]
    else:
        import_errors_create.append(form_subject.data['name'] + " - " + form_subject.data['code'])
        subject = SubjectService.find_by_code(form_subject.data['code'])
        if subject:
            [subject.titulacion_set.add(certification) for certification in list(certifications)]
            subject_link.append(subject)
        else:
            import_errors_link.append(form_subject.data['name'] + " - " + form_subject.data['code'])
Пример #14
0
def search(request):
    if request.POST:
        search_text = request.POST['search_text']
    else:
        search_text = ''

    if request.user.has_perm('principal.alumno'):
        subjects = SubjectService.get_student_subjects_search(request.user.alumno.id, search_text)
    elif request.user.has_perm('principal.profesor'):
        # TODO Creo que no llama al metodo correcto (Revisar Carlos)
        subjects = SubjectService.get_lecturer_subjects_search(request.user.profesor.id, search_text)
    else:
        # It's an administrator
        subjects = SubjectService.search(search_text)

    template_name = 'subject/ajax_search.html'
    template_data = {'subjects': subjects}
    return render_to_response(template_name, template_data, context_instance=RequestContext(request))
Пример #15
0
def news(request, new_id=None, method=None):
    if request.method == "POST":
        assert request.user.has_perm("principal.profesor")
        form = NewForm(request.POST, lecturer_id=request.user.id)

        if form.is_valid():
            NewService.save(form, request.user.id)
            messages.add_message(request, messages.SUCCESS, _("Action completed successfully."))

            return HttpResponseRedirect("/news")

    if request.user.has_perm("principal.alumno"):
        subjects = SubjectService.get_student_subjects(request.user.id)
        form = None

    elif request.user.has_perm("principal.profesor"):
        subjects = SubjectService.get_lecturer_subjects(request.user.id)
        if method == "rm":
            new = get_object_or_404(Noticia, id=new_id)
            if new.profesor.id == request.user.id:
                NewService.delete(new_id)
                messages.success(request, _("New was deleted successfully."))
            else:
                messages.error(request, _("You cannot delete this new."))
            return HttpResponseRedirect("/news")

        elif method == "ed":
            new = get_object_or_404(Noticia, id=new_id)
            if new.profesor.id == request.user.id:
                initial_data = NewService.build_initial(new_id)
                form = NewForm(lecturer_id=request.user.id, initial=initial_data)
            else:
                messages.error(request, _("You cannot edit this new."))
                return HttpResponseRedirect("/news")
        elif not method:
            form = NewForm(lecturer_id=request.user.id)

    else:
        subjects = Asignatura.objects.all()
        form = None

    return render_to_response(
        "new/list.html", {"subjects": subjects, "form": form}, context_instance=RequestContext(request)
    )
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))
Пример #17
0
def create_subject(request):
    if request.POST:
        form = SubjectEditForm(request.POST)

        if form.is_valid():
            subject = SubjectService.create(form)
            SubjectService.save(subject)
            messages.success(request, _("Action completed successfully"))
            return HttpResponseRedirect("/admin/subject/link/" +
                                        str(subject.id))
    else:
        data = {}
        form = SubjectEditForm(initial=data)

    template_name = 'subject/edit.html'
    template_data = {"form": form}
    return render_to_response(template_name,
                              template_data,
                              context_instance=RequestContext(request))
Пример #18
0
    def clean(self):
        code = self.cleaned_data.get('code')
        if code is not None:
            subject = SubjectService.find_by_code(code)
            if subject is not None:
                self.add_error(
                    'code',
                    _("There cannot be two certifications with the same code"))

        return self.cleaned_data
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))
Пример #20
0
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)
Пример #21
0
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))
Пример #22
0
def search(request):
    if request.POST:
        search_text = request.POST['search_text']
    else:
        search_text = ''

    if request.user.has_perm('principal.alumno'):
        subjects = SubjectService.get_student_subjects_search(
            request.user.alumno.id, search_text)
    elif request.user.has_perm('principal.profesor'):
        # TODO Creo que no llama al metodo correcto (Revisar Carlos)
        subjects = SubjectService.get_lecturer_subjects_search(
            request.user.profesor.id, search_text)
    else:
        # It's an administrator
        subjects = SubjectService.search(search_text)

    template_name = 'subject/ajax_search.html'
    template_data = {'subjects': subjects}
    return render_to_response(template_name,
                              template_data,
                              context_instance=RequestContext(request))
Пример #23
0
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)
Пример #24
0
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))
Пример #25
0
def view_profile(request, student_id):
    template_vars = {}
    form = None

    if request.method == 'POST':
        student = Alumno.objects.get(id=student_id)
        lecturer_subjects = SubjectService.get_lecturer_subjects(
            request.user.id)
        template_vars['lecturer_subjects'] = lecturer_subjects

        # Save remark from form -> logged user is a lecturer
        form = RemarkForm(request.POST, lecturer_id=request.user.id)
        if form.is_valid():
            RemarkService.save(form)
            messages.success(request, _('Remark was saved successfully.'))

            return HttpResponseRedirect('/profile/view/%s' %
                                        form.cleaned_data['student_id'])
    else:
        if request.user.has_perm('principal.alumno'):
            student = Alumno.objects.get(id=request.user.id)

        else:
            student = Alumno.objects.get(id=student_id)

            if request.user.has_perm('principal.profesor'):
                lecturer_subjects = SubjectService.get_lecturer_subjects(
                    request.user.id)
                form = RemarkForm(lecturer_id=request.user.id,
                                  initial={'student_id': student.id})
                template_vars['lecturer_subjects'] = lecturer_subjects

    template_vars['student'] = student
    template_vars['form'] = form

    return render_to_response('profile/details.html',
                              template_vars,
                              context_instance=RequestContext(request))
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 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))
Пример #30
0
 def __init__(self, *args, **kwargs):
     lecturer_id = kwargs.pop('lecturer_id')
     super(LecturerStudentFilterForm, self).__init__(*args, **kwargs)
     self.fields['subject'].queryset = SubjectService.get_lecturer_subjects(lecturer_id)
Пример #31
0
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')
Пример #32
0
 def __init__(self, *args, **kwargs):
     lecturer_id = kwargs.pop('lecturer_id')
     super(RemarkForm, self).__init__(*args, **kwargs)
     self.fields['lecturer_id'].initial = lecturer_id
     self.fields['subject'].queryset = SubjectService.get_lecturer_subjects(
         lecturer_id)
Пример #33
0
def import_subject(request):
    template_data = {}
    import_errors_create = []
    import_errors_link = []
    subject_create = []
    subject_link = []

    if request.POST:

        form = FileUploadSubjectForm(request.POST, request.FILES)

        if form.is_valid():

            file_name = form.cleaned_data['file_upload']
            certifications = set(form.cleaned_data['certifications'])
            data = file_name.read()
            file_name.close()

            try:
                if form.cleaned_data['file_upload'].content_type == "text/xml":
                    # File XML
                    data = xmltodict.parse(data)

                    if data['asignaturas']:
                        if not isinstance(data['asignaturas']['asignatura'],
                                          list):
                            # 1 value
                            subject = data['asignaturas']['asignatura']
                            data_form = SubjectService.get_form_data_xml(
                                subject)
                            create_link_subject_file(data_form, certifications,
                                                     import_errors_create,
                                                     import_errors_link,
                                                     subject_create,
                                                     subject_link)
                        else:
                            for subject_data in data['asignaturas'][
                                    'asignatura']:
                                data_form = SubjectService.get_form_data_xml(
                                    subject_data)
                                create_link_subject_file(
                                    data_form, certifications,
                                    import_errors_create, import_errors_link,
                                    subject_create, subject_link)
                else:

                    # File CSV
                    for subject in csv.reader(data.splitlines()):
                        data_form = SubjectService.get_form_data_csv(subject)
                        create_link_subject_file(data_form, certifications,
                                                 import_errors_create,
                                                 import_errors_link,
                                                 subject_create, subject_link)

                if not import_errors_create and not import_errors_link:
                    message = _('Action completed successfully')
                    messages.success(request, message)
                else:
                    if import_errors_create:
                        template_data[
                            'import_errors_create'] = import_errors_create
                    if import_errors_link:
                        template_data[
                            'import_errors_link'] = import_errors_link
                    if import_errors_create or import_errors_link:
                        message = _('Action completed successfully')
                        messages.warning(request, message)

                form = FileUploadSubjectForm()

            except KeyError as e:
                message = _(
                    "The file structure is wrong. It needs a label called: " +
                    e.message)
                form.add_error('file_upload', message)
                SubjectService.rollback(subject_create, subject_link,
                                        certifications)
            except AttributeError:
                message = _("Please, check the attributes of the subjects")
                form.add_error('file_upload', message)
                SubjectService.rollback(subject_create, subject_link,
                                        certifications)
            except TypeError:
                message = _("Please, check the xml syntax and data values")
                form.add_error('file_upload', message)
                SubjectService.rollback(subject_create, subject_link,
                                        certifications)
            except Exception:
                message = _("Please, check the file")
                form.add_error('file_upload', message)
                SubjectService.rollback(subject_create, subject_link,
                                        certifications)

    else:
        form = FileUploadSubjectForm()

    template_data['form'] = form
    template_name = 'subject/import_subject.html'
    return render_to_response(template_name,
                              template_data,
                              context_instance=RequestContext(request))
Пример #34
0
def get_all_json(request):
    subjects = SubjectService.get_student_subjects(request.user.alumno.id)
    json = json_lib.dumps([{'id': subject.id, 'name': subject.nombre} for subject in subjects])
    return JsonResponse(json, safe=False)
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))
Пример #36
0
 def __init__(self, *args, **kwargs):
     lecturer_id = kwargs.pop('lecturer_id')
     super(RemarkForm, self).__init__(*args, **kwargs)
     self.fields['lecturer_id'].initial = lecturer_id
     self.fields['subject'].queryset = SubjectService.get_lecturer_subjects(lecturer_id)
Пример #37
0
def import_subject(request):
    template_data = {}
    import_errors_create = []
    import_errors_link = []
    subject_create = []
    subject_link = []

    if request.POST:

        form = FileUploadSubjectForm(request.POST, request.FILES)

        if form.is_valid():

            file_name = form.cleaned_data['file_upload']
            certifications = set(form.cleaned_data['certifications'])
            data = file_name.read()
            file_name.close()

            try:
                if form.cleaned_data['file_upload'].content_type == "text/xml":
                    # File XML
                    data = xmltodict.parse(data)

                    if data['asignaturas']:
                        if not isinstance(data['asignaturas']['asignatura'], list):
                            # 1 value
                            subject = data['asignaturas']['asignatura']
                            data_form = SubjectService.get_form_data_xml(subject)
                            create_link_subject_file(data_form, certifications, import_errors_create,
                                                     import_errors_link, subject_create, subject_link)
                        else:
                            for subject_data in data['asignaturas']['asignatura']:
                                data_form = SubjectService.get_form_data_xml(subject_data)
                                create_link_subject_file(data_form, certifications, import_errors_create,
                                                         import_errors_link, subject_create, subject_link)
                else:

                    # File CSV
                    for subject in csv.reader(data.splitlines()):
                        data_form = SubjectService.get_form_data_csv(subject)
                        create_link_subject_file(data_form, certifications, import_errors_create, import_errors_link,
                                                 subject_create, subject_link)

                if not import_errors_create and not import_errors_link:
                    message = _('Action completed successfully')
                    messages.success(request, message)
                else:
                    if import_errors_create:
                        template_data['import_errors_create'] = import_errors_create
                    if import_errors_link:
                        template_data['import_errors_link'] = import_errors_link
                    if import_errors_create or import_errors_link:
                        message = _('Action completed successfully')
                        messages.warning(request, message)

                form = FileUploadSubjectForm()

            except KeyError as e:
                message = _("The file structure is wrong. It needs a label called: " + e.message)
                form.add_error('file_upload', message)
                SubjectService.rollback(subject_create, subject_link, certifications)
            except AttributeError:
                message = _("Please, check the attributes of the subjects")
                form.add_error('file_upload', message)
                SubjectService.rollback(subject_create, subject_link, certifications)
            except TypeError:
                message = _("Please, check the xml syntax and data values")
                form.add_error('file_upload', message)
                SubjectService.rollback(subject_create, subject_link, certifications)
            except Exception:
                message = _("Please, check the file")
                form.add_error('file_upload', message)
                SubjectService.rollback(subject_create, subject_link, certifications)

    else:
        form = FileUploadSubjectForm()

    template_data['form'] = form
    template_name = 'subject/import_subject.html'
    return render_to_response(template_name, template_data, context_instance=RequestContext(request))
Пример #38
0
 def __init__(self, *args, **kwargs):
     lecturer_id = kwargs.pop('lecturer_id')
     super(LecturerStudentFilterForm, self).__init__(*args, **kwargs)
     self.fields['subject'].queryset = SubjectService.get_lecturer_subjects(
         lecturer_id)
Пример #39
0
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')