Пример #1
0
def add_user_to_sheet(request, slug):
    sheet = get_object_or_404(Sheet, slug=slug)
    form_by_username = AddUserForm(request.POST or None)
    groups = UserAPI.get_groups_and_users_dict().keys()

    by_username_valid = form_by_username.is_valid()

    if by_username_valid:
        users = list()
        username = form_by_username.cleaned_data['username']
        if username:
            users.append(get_object_or_404(User, username=username))
        for group in groups:
            selected_users_pk = form_by_username.cleaned_data[group]
            for pk in selected_users_pk:
                users.append(get_object_or_404(User, pk=pk))

        for user in users:
            if user != request.user:
                remove_perm('sheets.change_sheet', user, sheet)
            assign_perm('sheets.view_sheet', user, sheet)
            if form_by_username.cleaned_data['role'] == 'T':
                assign_perm('sheets.change_sheet', user, sheet)
            else:
                MarkAPI.create_marks_for_student(sheet, user)

        return redirect('sheet_detail', slug=slug)

    return render(request, 'add_user_to_sheet.html', {
        'form_by_username': form_by_username,
        'sheet': sheet
    })