示例#1
0
def specific_criteria_submission(request):
    updated_enrollments = None
    scores_list_encoded = _get_score_encoding_list_with_only_enrollment_modified(
        request)

    try:
        updated_enrollments = score_encoding_list.update_enrollments(
            scores_encoding_list=scores_list_encoded, user=request.user)
    except Exception as e:
        error_msg = e.messages[0] if isinstance(e,
                                                ValidationError) else e.args[0]
        messages.add_message(request, messages.ERROR, _(error_msg))

    if messages.get_messages(request):
        context = _get_specific_criteria_context(request)
        context = _preserve_encoded_values(request, context)
        return render(request, "scores_encoding_by_specific_criteria.html",
                      context)
    else:
        is_program_manager = mdl.program_manager.is_program_manager(
            request.user)
        bulk_send_messages_to_notify_encoding_progress(request,
                                                       updated_enrollments,
                                                       is_program_manager)
        if updated_enrollments:
            messages.add_message(
                request, messages.SUCCESS,
                "%s %s" % (len(updated_enrollments), _('score(s) saved')))
        return specific_criteria(request)
示例#2
0
def online_encoding_form(request, learning_unit_year_id=None):
    template_name = "online_encoding_form.html"
    if request.method == 'POST':
        updated_enrollments = None
        encoded_enrollment_ids = _extract_id_from_post_data(request)
        # Get only encoded from database
        scores_list_encoded = score_encoding_list.get_scores_encoding_list(
            user=request.user,
            learning_unit_year_id=learning_unit_year_id,
            enrollments_ids=encoded_enrollment_ids)
        # Append value encoded by user
        scores_list_encoded.enrollments = _extract_encoded_values_from_post_data(
            request, scores_list_encoded.enrollments)

        try:
            updated_enrollments = score_encoding_list.update_enrollments(
                scores_encoding_list=scores_list_encoded, user=request.user)
        except Exception as e:
            error_msg = e.messages[0] if isinstance(
                e, ValidationError) else e.args[0]
            messages.add_message(request, messages.ERROR, _(error_msg))

        context = _get_common_encoding_context(request, learning_unit_year_id)
        if messages.get_messages(request):
            context = _preserve_encoded_values(request, context)
        else:
            template_name = "online_encoding.html"
            send_messages_to_notify_encoding_progress(
                context["enrollments"], context["learning_unit_year"],
                context["is_program_manager"], updated_enrollments)
    else:
        context = _get_common_encoding_context(request, learning_unit_year_id)
    return render(request, template_name, context)
示例#3
0
def _update_enrollments(request, scores_list_encoded, updated_enrollments):
    try:
        updated_enrollments = score_encoding_list.update_enrollments(
            scores_encoding_list=scores_list_encoded, user=request.user)
    except Exception as e:
        error_msg = e.messages[0] if isinstance(e,
                                                ValidationError) else e.args[0]
        messages.add_message(request, messages.ERROR, _(error_msg))
    return updated_enrollments
示例#4
0
def online_double_encoding_validation(request, learning_unit_year_id=None):
    if request.method == 'POST':
        updated_enrollments = None
        scores_list_encoded = _get_score_encoding_list_with_only_enrollment_modified(request, learning_unit_year_id)

        try:
            updated_enrollments = score_encoding_list.update_enrollments(
                scores_encoding_list=scores_list_encoded,
                user=request.user)
        except Exception as e:
            error_msg = e.messages[0] if isinstance(e, ValidationError) else e.args[0]
            messages.add_message(request, messages.ERROR, _(error_msg))

        if updated_enrollments:
            is_program_manager = mdl.program_manager.is_program_manager(request.user)
            scores_list_encoded = score_encoding_list.get_scores_encoding_list(
                user=request.user,
                learning_unit_year_id=learning_unit_year_id)
            send_messages_to_notify_encoding_progress(scores_list_encoded.enrollments,
                                                      scores_list_encoded.learning_unit_year,
                                                      is_program_manager,
                                                      updated_enrollments)

    return HttpResponseRedirect(reverse('online_encoding', args=(learning_unit_year_id,)))