def test_form_save_does_not_recreate_existing_users_by_email(self): existing_users = self.create_users() form = GroupForm(owner=self.create_owner(), data={ 'name': 'Duplicate existing members', 'emails_0': '*****@*****.**', }) form.save() self.assertListEqual(list(User.objects.exclude(username='******')), existing_users)
def test_form_save_does_not_recreate_existing_users_by_email(self): existing_users = self.create_users() form = GroupForm(owner=self.create_owner(), data={ 'name': 'Duplicate existing members', 'emails_0': '*****@*****.**', }) form.save() self.assertListEqual( list(User.objects.exclude(username='******')), existing_users)
def create_group_with_email_members(self, number=5): emails = ['test_{}@email.com'.format(str(i)) for i in range(number)] data = {'name': 'Emails group'} for i in range(len(emails)): data['emails_{}'.format(str(i))] = emails[i] form = GroupForm(owner=self.create_owner(), data=data) return {'group': form.save(), 'emails': emails}
def create_group_with_email_members(self, number=5): emails = ['test_{}@email.com'.format(str(i)) for i in range(number)] data = {'name': 'Emails group'} for i in range(len(emails)): data['emails_{}'.format(str(i))] = emails[i] form = GroupForm(owner=self.create_owner(), data=data) return {'group': form.save(), 'emails': emails}
def test_form_save_adds_owner_as_member(self): owner = self.create_owner() members = self.create_users() gang = list(members) gang.append(owner) other_group = Group.objects.create(name="Other") other_group.user_set.add(*gang) member_ids = [member.id for member in members] form = GroupForm(owner=owner, data={ 'name': 'Household expenses', 'contacts': member_ids, }) group = form.save() self.assertIn(owner, group.user_set.all())
def test_form_save_adds_members_to_group(self): owner = self.create_owner() members = self.create_users() gang = list(members) gang.append(owner) other_group = Group.objects.create(name="Other") other_group.user_set.add(*gang) member_ids = [member.id for member in members] form = GroupForm(owner=owner, data={ 'name': 'Household expenses', 'contacts': member_ids, }) group = form.save() self.assertEqual(list(group.user_set.exclude(username='******')), members)
def test_form_save_adds_owner_as_member(self): owner = self.create_owner() members = self.create_users() gang = list(members) gang.append(owner) other_group = Group.objects.create(name="Other") other_group.user_set.add(*gang) member_ids = [member.id for member in members] form = GroupForm(owner=owner, data={ 'name': 'Household expenses', 'contacts': member_ids, }) group = form.save() self.assertIn(owner, group.user_set.all())
def test_form_save_adds_members_to_group(self): owner = self.create_owner() members = self.create_users() gang = list(members) gang.append(owner) other_group = Group.objects.create(name="Other") other_group.user_set.add(*gang) member_ids = [member.id for member in members] form = GroupForm(owner=owner, data={ 'name': 'Household expenses', 'contacts': member_ids, }) group = form.save() self.assertEqual( list(group.user_set.exclude(username='******')), members)
def new_group(request): group_form = None quits_group_form = None user = request.user if request.method == 'POST': members = [id_ for id_ in request.POST.getlist('contacts')] group_data = { 'name': request.POST['name'], 'contacts': members, } emails = [] for i in range(5): key = 'emails_{}'.format(str(i)) try: group_data[key] = request.POST[key] emails.append(request.POST[key]) except: pass group_form = GroupForm(owner=user, data=group_data) if group_form.is_valid() and request.POST.get('currency'): group = group_form.save() quits_group_data = { 'currency': request.POST['currency'], 'group': group.id, } quits_group_form = QuitsGroupForm( owner=user, data=quits_group_data) if quits_group_form.is_valid(): quits_group_form.save() emails = [user.email for user in group.user_set.exclude(is_active=True)] send_invitations(request=request, user=user, emails=emails) return redirect('view_group', group.id) if not group_form: group_form = GroupForm(owner=user) if not quits_group_form: quits_group_form = QuitsGroupForm(owner=request.user) context = { 'group_form': group_form, 'quits_group_form': quits_group_form, } return render(request, 'quits/new_group.html', context)