fix unique constraint check for project perm
This commit is contained in:
parent
5e6bd1a4ef
commit
c394bc17d9
4 changed files with 9 additions and 6 deletions
|
@ -62,7 +62,9 @@ class ProjectPermissionForm(PermissionForm):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = ProjectPermission
|
model = ProjectPermission
|
||||||
fields = [ 'grantee_type', 'grantee_id' ]
|
# project is required for the unicity check
|
||||||
|
fields = [ 'project', 'grantee_type', 'grantee_id' ]
|
||||||
widgets = {
|
widgets = {
|
||||||
|
'project': HiddenInput,
|
||||||
'grantee_id': HiddenInput,
|
'grantee_id': HiddenInput,
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,7 +82,7 @@ class PermissionModel(models.Model):
|
||||||
class GlobalPermission(PermissionModel):
|
class GlobalPermission(PermissionModel):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
unique_together = [ 'grantee_type', 'grantee_id' ]
|
unique_together = ( 'grantee_type', 'grantee_id' )
|
||||||
|
|
||||||
# Global permissions
|
# Global permissions
|
||||||
|
|
||||||
|
@ -120,10 +120,9 @@ class GlobalPermission(PermissionModel):
|
||||||
class ProjectPermission(PermissionModel):
|
class ProjectPermission(PermissionModel):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
unique_together = [ 'project', 'grantee_type', 'grantee_id' ]
|
unique_together = ( 'project', 'grantee_type', 'grantee_id' )
|
||||||
|
|
||||||
project = models.ForeignKey(Project, editable=False,
|
project = models.ForeignKey(Project, related_name='permissions')
|
||||||
related_name='permissions')
|
|
||||||
|
|
||||||
manage_project_permission = models.BooleanField(default=False)
|
manage_project_permission = models.BooleanField(default=False)
|
||||||
|
|
||||||
|
|
|
@ -82,7 +82,8 @@ def project_perm_edit(request, project, id=None):
|
||||||
perm = get_object_or_404(ProjectPermission, project=project, id=id)
|
perm = get_object_or_404(ProjectPermission, project=project, id=id)
|
||||||
else:
|
else:
|
||||||
perm = None
|
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 request.method == 'POST' and form.is_valid():
|
||||||
if id:
|
if id:
|
||||||
form.save()
|
form.save()
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
<form method="post" role="form">
|
<form method="post" role="form">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{% bootstrap_form_errors form %}
|
{% bootstrap_form_errors form %}
|
||||||
|
{% bootstrap_field form.project %}
|
||||||
{% bootstrap_field form.grantee_type %}
|
{% bootstrap_field form.grantee_type %}
|
||||||
{% bootstrap_field form.grantee_id %}
|
{% bootstrap_field form.grantee_id %}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue