def edit_participants(request, slug): project = get_object_or_404(Project, slug=slug) metric_permissions = project.get_metrics_permissions(request.user) if request.method == 'POST': form = project_forms.ProjectAddParticipantForm(project, request.POST) if form.is_valid(): user = form.cleaned_data['user'] organizing = form.cleaned_data['organizer'] participation = Participation(project=project, user=user, organizing=organizing) participation.save() new_rel, created = Relationship.objects.get_or_create( source=user, target_project=project) new_rel.deleted = False new_rel.save() messages.success(request, _('Participant added.')) return http.HttpResponseRedirect(reverse( 'projects_edit_participants', kwargs=dict(slug=project.slug))) else: messages.error(request, _('There was an error adding the participant.')) else: form = project_forms.ProjectAddParticipantForm(project) return render_to_response('projects/project_edit_participants.html', { 'project': project, 'form': form, 'participations': project.participants().order_by('joined_on'), 'participants_tab': True, 'can_view_metric_overview': metric_permissions, 'is_challenge': (project.category == project.CHALLENGE), }, context_instance=RequestContext(request))
def edit_participants(request, slug): project = get_object_or_404(Project, slug=slug) if request.method == 'POST': form = project_forms.ProjectAddParticipantForm(project, request.POST) if form.is_valid(): user = form.cleaned_data['user'] organizing = form.cleaned_data['organizer'] participation = Participation(project=project, user=user, organizing=organizing) participation.save() new_rel = Relationship(source=user, target_project=project) try: new_rel.save() except IntegrityError: pass messages.success(request, _('Participant added.')) return http.HttpResponseRedirect( reverse('projects_edit_participants', kwargs=dict(slug=project.slug))) else: messages.error(request, _('There was an error adding the participant.')) else: form = project_forms.ProjectAddParticipantForm(project) return render_to_response('projects/project_edit_participants.html', { 'project': project, 'form': form, 'participations': project.participants().order_by('joined_on'), 'participants_tab': True, }, context_instance=RequestContext(request))