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)
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')
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