示例#1
0
def assign_coordinators_handler(sender, **kwargs):
	members = kwargs.get('members', None)
	project = kwargs.get('project', None)

	for member in members:
		project_member = ProjectMember(member=member, project=project, is_coordinator=True, role='Coordinator')
		project_member.save()
	
		context = {
			'project_url': Site.objects.get_current().domain + reverse('cms:edit_project_url', kwargs={'pk': project.pk}),
			'coordinator': project_member.member.user.get_full_name()
		}
		
		subject = 'Project created: %s' % project.title
		message = render_to_string('emails/project_coordinator_email.txt', context)
		send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [project_member.member.user.email])
	
	return members
示例#2
0
    def save(self, commit=True):
        project = super(ModelForm, self).save(commit=False)
        # save the regular fields
        project.save()

        # create ProjectMember instances for members listed in form that aren't added to Project yet
        for member in self.cleaned_data.get('members', []):
            try:
                project.members.get(pk=member.pk)
            except Member.DoesNotExist:
                project_member = ProjectMember(project=project, member=member, is_coordinator=False)
                project_member.save()
                #print 'add', project_member.member.user.get_full_name()

        # delete ProjectMember instances for members listed in Project but not in form
        for member in project.members.all():
            if not member in self.cleaned_data.get('members', []):
                project.projectmember_set.get(member__pk=member.pk).delete()
                #print 'delete', member.user.get_full_name()

        return project