コード例 #1
0
ファイル: views.py プロジェクト: anton-bryukhov/gradebook
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
    })
コード例 #2
0
ファイル: forms.py プロジェクト: anton-bryukhov/gradebook
 def __init__(self, *args, **kwargs):
     super(AddUserForm, self).__init__(*args, **kwargs)
     groups_and_user = UserAPI.get_groups_and_users_dict()
     for group, users in groups_and_user.items():
         self.fields[group] = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple,
                                                        choices=[(user.pk, user) for user in users], required=False)