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))
def create(request, form_class=ProjectTreeForm, 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() language = project_form.cleaned_data['language'] open_updates = project_form.cleaned_data['open_updates'] # Save profile xattr project_profile = ProjectProfile(project=project, language=language, open_updates=open_updates ) project_profile.save() # Save template and members group template = project_form.cleaned_data.get('template', project_profile.get_default_template() ) project_tree = ProjectTree(project=project, template=template) project_tree.save() # member_groups = project_form.cleaned_data['member_groups'] # for g in member_groups: # project_tree.member_groups.add(g) 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))