Exemple #1
0
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))
Exemple #2
0
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))
Exemple #3
0
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))
Exemple #4
0
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
         )
Exemple #6
0
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)
        })
Exemple #7
0
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))
Exemple #8
0
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))
Exemple #9
0
    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
Exemple #10
0
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))
Exemple #11
0
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)
    })