def save(self, user): new_member = self._user_cache project_member = ProjectMember(project=self.project, user=new_member) project_member.save() self.project.members.add(project_member) if notification: notification.send(self.project.member_users.all(), "projects_new_member", { "new_member": new_member, "project": self.project }) notification.send([new_member], "projects_added_as_member", { "adder": user, "project": self.project }) return project_member
def create(request, form_class=ProjectForm, template_name="projects/create.html"): project_form = form_class(request.POST or None) if project_form.is_valid(): project = project_form.save(commit=False) project.creator = request.user project.save() project_member = ProjectMember(project=project, user=request.user) project.members.add(project_member) project_member.save() if notification: # @@@ might be worth having a shortcut for sending to all users notification.send(User.objects.all(), "projects_new_project", {"project": project}, queue=True) return HttpResponseRedirect(project.get_absolute_url()) return render_to_response(template_name, { "project_form": project_form, }, context_instance=RequestContext(request))