예제 #1
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)