Esempio n. 1
0
def validation_list(request):
    context = {'category': 'validation'}

    web_provider = request.user.get_profile()

    entity = provider_entity(web_provider)
    period = current_reporting_period()

    not_sent = [(ent, contact_for(ent)) \
                for ent in get_not_received_reports(entity, period)]

    context.update({'not_validated': get_reports_to_validate(entity, period),
                    'validated': get_validated_reports(entity, period),
                    'not_sent': not_sent})

    context.update({'is_complete': context['validated'].__len__() == \
                                   entity.get_children().__len__(),
                    'is_idle': context['not_validated'].__len__() == 0 \
                               and context['not_sent'].__len__() > 0})

    context.update({'time_cscom_over': time_cscom_over(), \
                    'time_district_over': time_district_over(), \
                    'time_region_over': time_region_over()})

    context.update({'validation_over': not time_can_validate(entity)})

    context.update({'current_period': current_period(), \
                    'current_reporting_period': period})

    # check permission or raise 403
    # should never raise as already checked by decorator
    provider_can_or_403('can_validate_report', web_provider, entity)

    return render(request, 'validation_list.html', context)
Esempio n. 2
0
def report_do_validation(request, report_receipt):
    context = {'category': 'validation'}
    web_provider = request.user.get_profile()

    report = get_object_or_404(NutritionReport, receipt=report_receipt)

    # check permission or raise 403
    provider_can_or_403('can_validate_report', web_provider, report.entity)

    report._status = NutritionReport.STATUS_VALIDATED
    report.modified_by = web_provider
    report.modified_on = datetime.now()
    with reversion.create_revision():
        report.save()
        reversion.set_user(web_provider.user)
    context.update({'report': report})

    messages.info(request, u"Le rapport %(receipt)s de %(entity)s " \
                           u"a été validé." % {'receipt': report.receipt, \
                                              'entity': report.entity})
    return redirect('validation')
Esempio n. 3
0
 def wrapper(request, *args, **kwargs):
     try:
         web_provider = request.user.get_profile()
         assert(web_provider)
     except:
         # user is not a provider. could be logged-in though.
         # forwards to provider_required
         return provider_required(target)(request, *args, **kwargs)
     else:
         # user is valid provider.
         # need to check if has permission. if not, 403.
         if provider_can_or_403(permission, web_provider, entity):
             return target(request, *args, **kwargs)
         raise Http403