def infowindow_approval(request, permission_manager, scenario, callbackfunction, form_id, with_approvalobject): """Calls the page to give approval to scenarios""" # The scenario may be part of several projects. We are looking for # a project in which this user has approve rights, and then let # him approve for that project. # Right now, a user isn't supposed to be the approver for more # than one project, if that's necessary they should make multiple # users. for project in scenario.all_projects(): if permission_manager.check_project_permission( project, UserPermission.PERMISSION_SCENARIO_APPROVE): break else: # No project found in which the user has Approve rights for # this scenario. return HttpResponse( unicode(_("No permission to import scenario or login"))) items = dict(request.REQUEST.items()) items['callback'] = ( 'callbackFunctions["ApprovalObjectCallbackFormFunction"]()') items['formId'] = 'totalApprovalForm' url_args = '?' + '&'.join("%s=%s" % x for x in items.items()) destroy_function = items.get('destroy_function', None) create_function = items.get('create_function', None) pane_id = items.get('pane_id', None) return render_to_response( 'flooding/infowindow_approval_total.html', { "approval_object": approvaltable(request, scenario.approval_object(project).id, True), 'url_args': url_args, 'destroy_function': destroy_function, 'create_function': create_function, 'pane_id': pane_id })
def infowindow_approval( request, permission_manager, scenario, callbackfunction, form_id, with_approvalobject): """Calls the page to give approval to scenarios""" # The scenario may be part of several projects. We are looking for # a project in which this user has approve rights, and then let # him approve for that project. # Right now, a user isn't supposed to be the approver for more # than one project, if that's necessary they should make multiple # users. for project in scenario.all_projects(): if permission_manager.check_project_permission( project, UserPermission.PERMISSION_SCENARIO_APPROVE): break else: # No project found in which the user has Approve rights for # this scenario. return HttpResponse( unicode(_("No permission to import scenario or login"))) items = dict(request.REQUEST.items()) items['callback'] = ( 'callbackFunctions["ApprovalObjectCallbackFormFunction"]()') items['formId'] = 'totalApprovalForm' url_args = '?' + '&'.join("%s=%s" % x for x in items.items()) destroy_function = items.get('destroy_function', None) create_function = items.get('create_function', None) pane_id = items.get('pane_id', None) return render_to_response( 'flooding/infowindow_approval_total.html', {"approval_object": approvaltable( request, scenario.approval_object(project).id, True), 'url_args': url_args, 'destroy_function': destroy_function, 'create_function': create_function, 'pane_id': pane_id })
def approve_import(request, import_scenario_id): """ Renders Lizard-flooding page for verifying the data of a proposed scenario import. The administrator has to verify the results. """ importscenario = get_object_or_404(ImportScenario, pk=import_scenario_id) if request.method == 'POST': if (request.POST.get('action') == 'save_admin' or request.POST.get('action') == 'save_and_import'): importscenario.state = request.POST.get('state') breach = request.POST.get('breach', None) project = request.POST.get('project', None) region = request.POST.get('region', None) importscenario.validation_remarks = request.POST.get( 'remarks', None) if breach != None and breach != 'null': try: importscenario.breach = Breach.objects.get(pk=int(breach)) except Breach.DoesNotExist: pass except ValueError: pass except TypeError: pass if project != None and project != 'null': try: importscenario.project = Project.objects.get( pk=int(project)) except Project.DoesNotExist: pass except ValueError: pass except TypeError: pass if region != None and region != 'null': try: importscenario.region = Region.objects.get(pk=int(region)) except Region.DoesNotExist: pass except ValueError: pass except TypeError: pass importscenario.save() if request.POST.get('action') == 'save_and_import': return import_scenario_into_flooding(request, importscenario) else: for field in request.POST: logger.debug("FIELD: {0}".format(field)) #to do: first cehck if not edremark. or edstatus. field_ref = InputField.objects.filter(name=field) if field_ref.count() == 1: field_ref = field_ref[0] importscenariovalues, new = ( ImportScenarioInputField.objects.get_or_create( importscenario=importscenario, inputfield=field_ref)) importscenariovalues.setValue(request.POST[field]) importscenariovalues.validation_remarks = request.POST.get( 'edremark.' + field, '') importscenariovalues.state = request.POST.get( 'edstate.' + field, True) importscenariovalues.save() importscenario.update_scenario_name() importscenario.save() answer = { 'successful': 'true', 'post_remarks': 'opgeslagen', 'id': importscenario.id } return HttpResponse( json.dumps(answer), content_type="application/json") else: f = [] k = {} # index for header in InputField.HEADER_CHOICES: k[header[0]] = len(f) f.append({ 'id': header[0], 'title': unicode(header[1]), 'fields': []}) fields = InputField.objects.all().order_by('-position') for field in fields: value = field.importscenarioinputfield_set.filter( importscenario=importscenario) if value.count() > 0: f[k[field.header]]['fields'].append(value[0]) else: f[k[field.header]]['fields'].append(field) table = "" if importscenario.approvalobject: table = approvaltable(request, importscenario.approvalobject.id) state = importscenario.state state_valuemap = {} for option in ImportScenario.IMPORT_STATE_CHOICES: state_valuemap[option[0]] = unicode(option[1]) state_valuemap = json.dumps(state_valuemap, sort_keys=True) post_url = reverse( 'flooding_tools_import_approve', kwargs={'import_scenario_id': import_scenario_id}) breadcrumbs = [ {'name': _('Import tool'), 'url': reverse('flooding_tools_import_overview')}, {'name': _('Approve import')}] return render_to_response( 'import/import_scenario.html', {'fields': f, 'action': 'approve', 'post_url': post_url, 'approvaltable': table, 'static_editor': False, 'import_admin': True, 'state': state, 'state_valuemap': state_valuemap, 'importscenario': importscenario, 'breadcrumbs': breadcrumbs })
def approve_import(request, import_scenario_id): """ Renders Lizard-flooding page for verifying the data of a proposed scenario import. The administrator has to verify the results. """ importscenario = get_object_or_404(ImportScenario, pk=import_scenario_id) if request.method == 'POST': if (request.POST.get('action') == 'save_admin' or request.POST.get('action') == 'save_and_import'): importscenario.state = request.POST.get('state') breach = request.POST.get('breach', None) project = request.POST.get('project', None) region = request.POST.get('region', None) importscenario.validation_remarks = request.POST.get( 'remarks', None) if breach != None and breach != 'null': try: importscenario.breach = Breach.objects.get(pk=int(breach)) except Breach.DoesNotExist: pass except ValueError: pass except TypeError: pass if project != None and project != 'null': try: importscenario.project = Project.objects.get( pk=int(project)) except Project.DoesNotExist: pass except ValueError: pass except TypeError: pass if region != None and region != 'null': try: importscenario.region = Region.objects.get(pk=int(region)) except Region.DoesNotExist: pass except ValueError: pass except TypeError: pass importscenario.save() if request.POST.get('action') == 'save_and_import': return import_scenario_into_flooding(request, importscenario) else: for field in request.POST: logger.debug("FIELD: {0}".format(field)) #to do: first cehck if not edremark. or edstatus. field_ref = InputField.objects.filter(name=field) if field_ref.count() == 1: field_ref = field_ref[0] importscenariovalues, new = ( ImportScenarioInputField.objects.get_or_create( importscenario=importscenario, inputfield=field_ref)) importscenariovalues.setValue(request.POST[field]) importscenariovalues.validation_remarks = request.POST.get( 'edremark.' + field, '') importscenariovalues.state = request.POST.get( 'edstate.' + field, True) importscenariovalues.save() importscenario.update_scenario_name() importscenario.save() answer = { 'successful': 'true', 'post_remarks': 'opgeslagen', 'id': importscenario.id } return HttpResponse(json.dumps(answer), mimetype="application/json") else: f = [] k = {} # index for header in InputField.HEADER_CHOICES: k[header[0]] = len(f) f.append({ 'id': header[0], 'title': unicode(header[1]), 'fields': [] }) fields = InputField.objects.all().order_by('-position') for field in fields: value = field.importscenarioinputfield_set.filter( importscenario=importscenario) if value.count() > 0: f[k[field.header]]['fields'].append(value[0]) else: f[k[field.header]]['fields'].append(field) table = "" if importscenario.approvalobject: table = approvaltable(request, importscenario.approvalobject.id) state = importscenario.state state_valuemap = {} for option in ImportScenario.IMPORT_STATE_CHOICES: state_valuemap[option[0]] = unicode(option[1]) state_valuemap = json.dumps(state_valuemap, sort_keys=True) post_url = reverse('flooding_tools_import_approve', kwargs={'import_scenario_id': import_scenario_id}) breadcrumbs = [{ 'name': _('Import tool'), 'url': reverse('flooding_tools_import_overview') }, { 'name': _('Approve import') }] return render_to_response( 'import/import_scenario.html', { 'fields': f, 'action': 'approve', 'post_url': post_url, 'approvaltable': table, 'static_editor': False, 'import_admin': True, 'state': state, 'state_valuemap': state_valuemap, 'importscenario': importscenario, 'breadcrumbs': breadcrumbs })