def create(request, category=None): user = request.user.get_profile() if request.method == 'POST': form = project_forms.ProjectForm(category, request.POST) image_form = None if form.is_valid(): project = form.save() if category: project.category = category image_form = project_forms.ProjectImageForm(request.POST, request.FILES, instance=project) if image_form.is_valid(): image_form.save() project.set_duration(form.cleaned_data['duration'] or 0) #CS - too much logic in view act = Activity(actor=user, verb=verbs['post'], scope_object=project, target_object=project) act.save() participation = Participation(project=project, user=user, organizing=True) participation.save() new_rel, created = Relationship.objects.get_or_create(source=user, target_project=project) new_rel.deleted = False new_rel.save() detailed_description_content = render_to_string( "projects/detailed_description_initial_content.html", {'project': project}) detailed_description = Page(title=_('Full Description'), slug='full-description', content=detailed_description_content, listed=False, author_id=user.id, project_id=project.id) if project.category != Project.STUDY_GROUP: detailed_description.collaborative = False detailed_description.save() project.detailed_description_id = detailed_description.id sign_up = Signup(author_id=user.id, project_id=project.id) sign_up.save() project.create() messages.success(request, _('The %s has been created.') % project.kind.lower()) return http.HttpResponseRedirect(reverse('projects_create_tasks', kwargs={'slug': project.slug,})) else: msg = _("Problem creating the course") messages.error(request, msg) else: form = project_forms.ProjectForm(category, initial={'test':True}) image_form = project_forms.ProjectImageForm() context = { 'form': form, 'image_form': image_form, 'category': category, 'is_challenge': (category == Project.CHALLENGE), } return render_to_response('projects/project_create_overview.html', context, context_instance=RequestContext(request))
def create(request): user = request.user.get_profile() if request.method == 'POST': form = project_forms.ProjectForm(request.POST) if form.is_valid(): project = form.save(commit=False) project.created_by = user project.save() detail_description_content = render_to_string( "projects/detailed_description_initial_content.html", {}) detailed_description = Page(title=_('Full Description'), slug='full-description', content=detail_description_content, listed=False, author_id=user.id, project_id=project.id) detailed_description.save() project.detailed_description_id = detailed_description.id sign_up_content = render_to_string( "projects/sign_up_initial_content.html", {}) sign_up = Page(title=_('Sign-Up'), slug='sign-up', content=sign_up_content, listed=False, editable=False, author_id=user.id, project_id=project.id) sign_up.save() project.sign_up_id = sign_up.id project.save() messages.success(request, _('The study group has been created.')) return http.HttpResponseRedirect( reverse('projects_show', kwargs={ 'slug': project.slug, })) else: messages.error(request, _("There was a problem creating the study group.")) else: if 'school' in request.GET: try: school = School.objects.get(slug=request.GET['school']) form = project_forms.ProjectForm(initial={'school': school}) except School.DoesNotExist: return http.HttpResponseRedirect(reverse('projects_create')) else: form = project_forms.ProjectForm() return render_to_response('projects/project_edit_summary.html', { 'form': form, }, context_instance=RequestContext(request))
def create(request): user = request.user.get_profile() if request.method == 'POST': form = project_forms.ProjectForm(request.POST) if form.is_valid(): project = form.save() act = Activity(actor=user, verb=verbs['post'], scope_object=project, target_object=project) act.save() participation = Participation(project=project, user=user, organizing=True) participation.save() new_rel, created = Relationship.objects.get_or_create( source=user, target_project=project) new_rel.deleted = False new_rel.save() detailed_description_content = render_to_string( "projects/detailed_description_initial_content.html", {}) detailed_description = Page(title=_('Full Description'), slug='full-description', content=detailed_description_content, listed=False, author_id=user.id, project_id=project.id) if project.category != Project.STUDY_GROUP: detailed_description.collaborative = False detailed_description.save() project.detailed_description_id = detailed_description.id sign_up = Signup(author_id=user.id, project_id=project.id) sign_up.save() project.create() messages.success( request, _('The %s has been created.') % project.kind.lower()) return http.HttpResponseRedirect( reverse('projects_show', kwargs={ 'slug': project.slug, })) else: msg = _("Problem creating the study group, course, ...") messages.error(request, msg) else: form = project_forms.ProjectForm() return render_to_response('projects/project_edit_summary.html', { 'form': form, 'new_tab': True, }, context_instance=RequestContext(request))
def edit(request, slug): project = get_object_or_404(Project, slug=slug) if request.method == 'POST': form = project_forms.ProjectForm(request.POST, instance=project) if form.is_valid(): form.save() messages.success(request, _('Project updated!')) return http.HttpResponseRedirect( reverse('projects_edit', kwargs=dict(slug=project.slug))) else: form = project_forms.ProjectForm(instance=project) return render_to_response('projects/project_edit_summary.html', { 'form': form, 'project': project, }, context_instance=RequestContext(request))
def test_multiselect_widgets(self): form = forms.ProjectForm() self.assertIsInstance(form, forms.ProjectForm) for field in ('administrators', 'nominators', 'tags'): self.assertIsInstance( form.fields[field].widget, ModelSelect2Multiple )
def ProjectUpdate(request, id): updateproject = pm.Project.objects.get(id=id) form = fm.ProjectForm(request.POST or None, instance=updateproject) if request.method == "POST": form.save() return redirect('/home/') else: return render(request, 'sb-admin/project_post.html', { 'form': form, 'userprofile': get_user_profile(request) })
def create(request): user = request.user.get_profile() if request.method == 'POST': form = project_forms.ProjectForm(request.POST) if form.is_valid(): project = form.save(commit=False) project.created_by = user project.save() messages.success(request, _('Your new project has been created.')) return http.HttpResponseRedirect(reverse('projects_show', kwargs={ 'slug': project.slug, })) else: messages.error(request, _("There was a problem creating your project.")) else: form = project_forms.ProjectForm() return render_to_response('projects/project_edit_summary.html', { 'form': form, }, context_instance=RequestContext(request))
def edit(request, slug): project = get_object_or_404(Project, slug=slug) if request.method == 'POST': form = project_forms.ProjectForm(request.POST, instance=project) if form.is_valid(): form.save() messages.success(request, _('Study group updated!')) return http.HttpResponseRedirect( reverse('projects_edit', kwargs=dict(slug=project.slug))) else: school = project.school if school and school.declined.filter(id=project.id).exists(): msg = _('The study group membership to %s was declined by the school organizers.') messages.error(request, msg % school.name) form = project_forms.ProjectForm(instance=project) return render_to_response('projects/project_edit_summary.html', { 'form': form, 'project': project, 'summary_tab': True, }, context_instance=RequestContext(request))
def get_context_data(self, **kwargs) -> dict: """Insert forms w/ the parent nomination & project into the context dict.""" nomination = self.get_nomination() context = { 'nomination_form': forms.NominationForm(instance=nomination, tabbed=True), 'project_form': forms.ProjectForm(instance=nomination.project) } context.update(kwargs) return super().get_context_data(**context) # type: ignore
def edit(request, slug): project = get_object_or_404(Project, slug=slug) is_challenge = (project.category == project.CHALLENGE) if request.method == 'POST': form = project_forms.ProjectForm(project.category, request.POST, instance=project) if form.is_valid(): form.save() messages.success(request, _('%s updated!') % project.kind.capitalize()) return http.HttpResponseRedirect( reverse('projects_edit', kwargs=dict(slug=project.slug))) else: form = project_forms.ProjectForm(project.category, instance=project) metric_permissions = project.get_metrics_permissions(request.user) return render_to_response('projects/project_edit_summary.html', { 'form': form, 'project': project, 'school': project.school, 'summary_tab': True, 'can_view_metric_overview': metric_permissions, 'is_challenge': is_challenge, }, context_instance=RequestContext(request))
def ProjectPost(request): form = fm.ProjectForm() if request.method == "POST": projectpost = request.POST.dict() print(projectpost) projectpost.pop('csrfmiddlewaretoken') projectuser = pm.UserProfile.objects.get( user__username=request.user.username) projectpost['country'] = pm.Country.objects.get( id=projectpost['country']) projectpost['wbs'] = pm.WBS.objects.get(id=projectpost['wbs']) projectpost['pds'] = pm.ProjectDeliverableSchema.objects.get( id=projectpost['pds']) newproject = pm.Project.objects.create(**projectpost) newproject.owner.add(projectuser) newproject.createstructure() return redirect('/home/') return render(request, 'sb-admin/project_post.html', { 'form': form, 'userprofile': get_user_profile(request) })