def create_app_object(request, extra_context=None): try: summary = 'im/projects/projectapplication_form_summary.html' return _create_object( request, template_name='im/projects/projectapplication_form.html', summary_template_name=summary, extra_context=extra_context, post_save_redirect=reverse('project_list'), form_class=ProjectApplicationForm, msg=_("The %(verbose_name)s has been received and " "is under consideration.")) except ProjectError as e: messages.error(request, e)
def project_add(request): user = request.user if not user.is_project_admin(): ok, limit = check_pending_app_quota(user) if not ok: m = _(astakos_messages.PENDING_APPLICATION_LIMIT_ADD) % limit messages.error(request, m) next = reverse('astakos.im.views.project_list') next = restrict_next(next, domain=settings.COOKIE_DOMAIN) return redirect(next) details_fields = ["name", "homepage", "description", "start_date", "end_date", "comments"] membership_fields = ["member_join_policy", "member_leave_policy", "limit_on_members_number"] resource_catalog, resource_groups = _resources_catalog(for_project=True) if resource_catalog is False: # on fail resource_groups contains the result object result = resource_groups messages.error(request, 'Unable to retrieve system resources: %s' % result.reason) extra_context = { 'resource_catalog': resource_catalog, 'resource_groups': resource_groups, 'show_form': True, 'details_fields': details_fields, 'membership_fields': membership_fields} response = None with ExceptionHandler(request): response = _create_object( request, template_name='im/projects/projectapplication_form.html', summary_template_name='im/projects/projectapplication_form_summary.html', extra_context=extra_context, post_save_redirect=reverse('project_list'), form_class=ProjectApplicationForm, msg=_("The %(verbose_name)s has been received and " "is under consideration."), ) if response is not None: return response next = reverse('astakos.im.views.project_list') next = restrict_next(next, domain=settings.COOKIE_DOMAIN) return redirect(next)
def project_add(request): user = request.user if not user.is_project_admin(): ok, limit = check_pending_app_quota(user) if not ok: m = _(astakos_messages.PENDING_APPLICATION_LIMIT_ADD) % limit messages.error(request, m) next = reverse('astakos.im.views.project_list') next = restrict_next(next, domain=settings.COOKIE_DOMAIN) return redirect(next) details_fields = ["name", "homepage", "description", "start_date", "end_date", "comments"] membership_fields = ["member_join_policy", "member_leave_policy", "limit_on_members_number"] resource_catalog, resource_groups = _resources_catalog(for_project=True) if resource_catalog is False: # on fail resource_groups contains the result object result = resource_groups messages.error(request, 'Unable to retrieve system resources: %s' % result.reason) extra_context = { 'resource_catalog': resource_catalog, 'resource_groups': resource_groups, 'show_form': True, 'details_fields': details_fields, 'membership_fields': membership_fields} response = None with ExceptionHandler(request): response = _create_object( request, template_name='im/projects/projectapplication_form.html', extra_context=extra_context, post_save_redirect=reverse('project_list'), form_class=ProjectApplicationForm, msg=_("The %(verbose_name)s has been received and " "is under consideration."), ) if response is not None: return response next = reverse('astakos.im.views.project_list') next = restrict_next(next, domain=settings.COOKIE_DOMAIN) return redirect(next)