def monitoring_parameter_filter(request, m_id): """ Отчёт по параметру и критерию """ if not (request.user.profile.is_expert or request.user.is_superuser): return HttpResponseForbidden(_('Forbidden')) monitoring = get_object_or_404(Monitoring, pk=m_id) queryset = None if request.method == "POST": hide = 0 form = ParamCritScoreFilterForm(request.POST, monitoring=monitoring) if form.is_valid(): cd = form.cleaned_data parameter = cd.get("parameter") queryset = Score.objects.filter( task__organization__monitoring=monitoring, parameter=parameter, revision=Score.REVISION_DEFAULT ).exclude( task__organization__in = parameter.exclude.all(), ) # Оценки по критериям. found = cd.get("found") if found is not None: found_int = int(found) if found_int != 5: queryset = queryset.filter(found=found_int) complete = cd.get("complete") if complete is not None: complete_int = int(complete) if complete_int != 5: queryset = queryset.filter(complete=complete_int) topical = cd.get("topical") if topical is not None: topical_int = int(topical) if topical_int != 5: queryset = queryset.filter(topical=topical_int) accessible = cd.get("accessible") if accessible is not None: accessible_int = int(accessible) if accessible_int != 5: queryset = queryset.filter(accessible=accessible_int) hypertext = cd.get("hypertext") if hypertext is not None: hypertext_int = int(hypertext) if hypertext_int != 5: queryset = queryset.filter(hypertext=hypertext_int) document = cd.get("document") if document is not None: document_int = int(document) if document_int != 5: queryset = queryset.filter(document=document_int) image = cd.get("image") if image is not None: image_int = int(image) if image_int != 5: queryset = queryset.filter(image=image_int) # Статусы задачи. t_st_list = [] t_opened = cd.get("t_opened") if t_opened: t_st_list.append(Task.TASK_OPEN) t_closed = cd.get("t_closed") if t_closed: t_st_list.append(Task.TASK_CLOSED) t_approved = cd.get("t_approved") if t_approved: t_st_list.append(Task.TASK_APPROVED) queryset = queryset.filter(task__status__in=t_st_list) if request.user.profile.is_expertB and not (request.user.has_perm('exmo2010.admin_monitoring', monitoring) or request.user.profile.is_expertA or monitoring.is_publish): queryset = queryset.filter(task__user=request.user) else: form = ParamCritScoreFilterForm(monitoring=monitoring) hide = 1 crumbs = ['Home', 'Monitoring'] breadcrumbs(request, crumbs) if request.expert: current_title = _('Monitoring cycle') else: current_title = _('Rating') if monitoring.status == 5 else _('Tasks') return render_to_response('monitoring_parameter_filter.html', { 'form': form, 'object_list': queryset, 'monitoring': monitoring, 'current_title': current_title, 'hide': hide }, context_instance=RequestContext(request))
def monitoring_parameter_filter(request, monitoring_pk): """ Отчёт по параметру и критерию """ if not request.user.profile.is_expert: raise PermissionDenied monitoring = get_object_or_404(Monitoring, pk=monitoring_pk) queryset = None if request.method == "POST": hide = 0 form = ParamCritScoreFilterForm(request.POST, monitoring=monitoring) if form.is_valid(): cd = form.cleaned_data parameter = cd.get("parameter") queryset = Score.objects.filter( task__organization__monitoring=monitoring, parameter=parameter, revision=Score.REVISION_DEFAULT ).exclude( task__organization__in=parameter.exclude.all(), ) # Оценки по критериям. found = cd.get("found") if found is not None: found_int = int(found) if found_int != 5: queryset = queryset.filter(found=found_int) complete = cd.get("complete") if complete is not None: complete_int = int(complete) if complete_int != 5: queryset = queryset.filter(complete=complete_int) topical = cd.get("topical") if topical is not None: topical_int = int(topical) if topical_int != 5: queryset = queryset.filter(topical=topical_int) accessible = cd.get("accessible") if accessible is not None: accessible_int = int(accessible) if accessible_int != 5: queryset = queryset.filter(accessible=accessible_int) hypertext = cd.get("hypertext") if hypertext is not None: hypertext_int = int(hypertext) if hypertext_int != 5: queryset = queryset.filter(hypertext=hypertext_int) document = cd.get("document") if document is not None: document_int = int(document) if document_int != 5: queryset = queryset.filter(document=document_int) image = cd.get("image") if image is not None: image_int = int(image) if image_int != 5: queryset = queryset.filter(image=image_int) # Статусы задачи. t_st_list = [] t_opened = cd.get("t_opened") if t_opened: t_st_list.append(Task.TASK_OPEN) t_closed = cd.get("t_closed") if t_closed: t_st_list.append(Task.TASK_CLOSED) t_approved = cd.get("t_approved") if t_approved: t_st_list.append(Task.TASK_APPROVED) queryset = queryset.filter(task__status__in=t_st_list) if request.user.profile.is_expertB and not (request.user.has_perm('exmo2010.admin_monitoring', monitoring) or request.user.profile.is_expertA or monitoring.is_published): queryset = queryset.filter(task__user=request.user) else: form = ParamCritScoreFilterForm(monitoring=monitoring) hide = 1 return TemplateResponse(request, 'manage_monitoring/parameter_filter.html', { 'form': form, 'scores': queryset, 'monitoring': monitoring, 'hide': hide })
def monitoring_parameter_filter(request, monitoring_pk): """ Отчёт по параметру и критерию """ if not request.user.profile.is_expert: raise PermissionDenied monitoring = get_object_or_404(Monitoring, pk=monitoring_pk) queryset = None if request.method == "POST": hide = 0 form = ParamCritScoreFilterForm(request.POST, monitoring=monitoring) if form.is_valid(): cd = form.cleaned_data parameter = cd.get("parameter") queryset = Score.objects.filter( task__organization__monitoring=monitoring, parameter=parameter, revision=Score.REVISION_DEFAULT).exclude( task__organization__in=parameter.exclude.all(), ) # Оценки по критериям. found = cd.get("found") if found is not None: found_int = int(found) if found_int != 5: queryset = queryset.filter(found=found_int) complete = cd.get("complete") if complete is not None: complete_int = int(complete) if complete_int != 5: queryset = queryset.filter(complete=complete_int) topical = cd.get("topical") if topical is not None: topical_int = int(topical) if topical_int != 5: queryset = queryset.filter(topical=topical_int) accessible = cd.get("accessible") if accessible is not None: accessible_int = int(accessible) if accessible_int != 5: queryset = queryset.filter(accessible=accessible_int) hypertext = cd.get("hypertext") if hypertext is not None: hypertext_int = int(hypertext) if hypertext_int != 5: queryset = queryset.filter(hypertext=hypertext_int) document = cd.get("document") if document is not None: document_int = int(document) if document_int != 5: queryset = queryset.filter(document=document_int) image = cd.get("image") if image is not None: image_int = int(image) if image_int != 5: queryset = queryset.filter(image=image_int) # Статусы задачи. t_st_list = [] t_opened = cd.get("t_opened") if t_opened: t_st_list.append(Task.TASK_OPEN) t_closed = cd.get("t_closed") if t_closed: t_st_list.append(Task.TASK_CLOSED) t_approved = cd.get("t_approved") if t_approved: t_st_list.append(Task.TASK_APPROVED) queryset = queryset.filter(task__status__in=t_st_list) if request.user.profile.is_expertB and not (request.user.has_perm( 'exmo2010.admin_monitoring', monitoring ) or request.user.profile.is_expertA or monitoring.is_published): queryset = queryset.filter(task__user=request.user) else: form = ParamCritScoreFilterForm(monitoring=monitoring) hide = 1 return TemplateResponse(request, 'manage_monitoring/parameter_filter.html', { 'form': form, 'scores': queryset, 'monitoring': monitoring, 'hide': hide })