diff --git a/permissions/forms.py b/permissions/forms.py index 0de7d13..3ee46e2 100644 --- a/permissions/forms.py +++ b/permissions/forms.py @@ -62,7 +62,9 @@ class ProjectPermissionForm(PermissionForm): class Meta: model = ProjectPermission - fields = [ 'grantee_type', 'grantee_id' ] + # project is required for the unicity check + fields = [ 'project', 'grantee_type', 'grantee_id' ] widgets = { + 'project': HiddenInput, 'grantee_id': HiddenInput, } diff --git a/permissions/models.py b/permissions/models.py index be11fcb..6061012 100644 --- a/permissions/models.py +++ b/permissions/models.py @@ -82,7 +82,7 @@ class PermissionModel(models.Model): class GlobalPermission(PermissionModel): class Meta: - unique_together = [ 'grantee_type', 'grantee_id' ] + unique_together = ( 'grantee_type', 'grantee_id' ) # Global permissions @@ -120,10 +120,9 @@ class GlobalPermission(PermissionModel): class ProjectPermission(PermissionModel): class Meta: - unique_together = [ 'project', 'grantee_type', 'grantee_id' ] + unique_together = ( 'project', 'grantee_type', 'grantee_id' ) - project = models.ForeignKey(Project, editable=False, - related_name='permissions') + project = models.ForeignKey(Project, related_name='permissions') manage_project_permission = models.BooleanField(default=False) diff --git a/permissions/views.py b/permissions/views.py index 1250690..556a791 100644 --- a/permissions/views.py +++ b/permissions/views.py @@ -82,7 +82,8 @@ def project_perm_edit(request, project, id=None): perm = get_object_or_404(ProjectPermission, project=project, id=id) else: perm = None - form = ProjectPermissionForm(request.POST or None, instance=perm) + form = ProjectPermissionForm(request.POST or None, instance=perm, + initial={'project': project.id}) if request.method == 'POST' and form.is_valid(): if id: form.save() diff --git a/templates/permissions/project_perm_edit.html b/templates/permissions/project_perm_edit.html index 88b346f..935340f 100644 --- a/templates/permissions/project_perm_edit.html +++ b/templates/permissions/project_perm_edit.html @@ -32,6 +32,7 @@