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)
Beispiel #9
0
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)