[copr] master: Start reworking the permission displaying (rewrite the forms and do a little fix in user model) (cb3649e)

bkabrda at fedoraproject.org bkabrda at fedoraproject.org
Fri Jan 11 10:21:12 UTC 2013


Repository : http://git.fedorahosted.org/cgit/copr.git

On branch  : master

>---------------------------------------------------------------

commit cb3649ebcf2bd5f14c4750064ad154c1e0211dab
Author: Bohuslav Kabrda <bkabrda at redhat.com>
Date:   Thu Jan 10 14:25:53 2013 +0100

    Start reworking the permission displaying (rewrite the forms and do a little fix in user model)


>---------------------------------------------------------------

 coprs_frontend/coprs/forms.py  |   40 +++++++++++++++-------------------------
 coprs_frontend/coprs/models.py |    4 ++--
 2 files changed, 17 insertions(+), 27 deletions(-)

diff --git a/coprs_frontend/coprs/forms.py b/coprs_frontend/coprs/forms.py
index 0010d72..d652844 100644
--- a/coprs_frontend/coprs/forms.py
+++ b/coprs_frontend/coprs/forms.py
@@ -116,30 +116,22 @@ class PermissionsApplierFormFactory(object):
         class F(wtf.Form):
             pass
 
-        approved_num = helpers.PermissionEnum.num('Approved')
-        build_without = approved_num
-        admin_without = approved_num
+        builder_default = False
+        admin_default = False
 
         if permission:
-            if permission.copr_builder == approved_num:
-                build_without = None
+            if permission.copr_builder != helpers.PermissionEnum.num('nothing'):
+                builder_default = True
+            if permission.copr_admin != helpers.PermissionEnum.num('nothing'):
+                admin_default = True
 
-            if permission.copr_admin == approved_num:
-                admin_without = None
-
-        builder_choices = helpers.PermissionEnum.choices_list(build_without)
-        admin_choices = helpers.PermissionEnum.choices_list(admin_without)
-
-        builder_default = permission.copr_builder if permission else helpers.PermissionEnum.num('No Action')
-        admin_default = permission.copr_admin if permission else helpers.PermissionEnum.num('No Action')
-
-        setattr(F, 'copr_builder', wtf.SelectField('Copr Builder', choices = builder_choices, default = builder_default))
-        setattr(F, 'copr_admin', wtf.SelectField('Copr Admin', choices = admin_choices, default = admin_default))
+        setattr(F, 'copr_builder', wtf.BooleanField(default = builder_default))
+        setattr(F, 'copr_admin', wtf.BooleanField(default = admin_default))
 
         return F
 
 
-class DynamicPermissionsFormFactory(object):
+class PermissionsFormFactory(object):
     """Creates a dynamic form for given set of copr permissions"""
     @staticmethod
     def create_form_cls(permissions):
@@ -147,15 +139,13 @@ class DynamicPermissionsFormFactory(object):
             pass
 
         for perm in permissions:
-            copr_builder_default = False
-            if perm.copr_builder == helpers.PermissionEnum.num('Approved'):
-                copr_builder_default = True
+            builder_choices = helpers.PermissionEnum.choices_list()
+            admin_choices = helpers.PermissionEnum.choices_list()
 
-            copr_admin_default = False
-            if perm.copr_admin == helpers.PermissionEnum.num('Approved'):
-                copr_admin_default = True
+            builder_default = perm.copr_builder
+            admin_default = perm.copr_admin
 
-            setattr(F, 'copr_builder_{0}'.format(perm.user.id), wtf.BooleanField(default = copr_builder_default))
-            setattr(F, 'copr_admin_{0}'.format(perm.user.id), wtf.BooleanField(default = copr_admin_default))
+            setattr(F, 'copr_builder_{0}'.format(perm.user.id), wtf.SelectField(choices = builder_choices, default = builder_default, coerce = int))
+            setattr(F, 'copr_admin_{0}'.format(perm.user.id), wtf.SelectField(choices = admin_choices, default = admin_default, coerce = int))
 
         return F
diff --git a/coprs_frontend/coprs/models.py b/coprs_frontend/coprs/models.py
index cf1397e..9393c5c 100644
--- a/coprs_frontend/coprs/models.py
+++ b/coprs_frontend/coprs/models.py
@@ -75,7 +75,7 @@ class User(db.Model, Serializer):
         can_build = False
         if copr.owner == self:
             can_build = True
-        if self.permissions_for_copr(copr) and self.permissions_for_copr(copr).copr_builder == helpers.PermissionEnum.num('Approved'):
+        if self.permissions_for_copr(copr) and self.permissions_for_copr(copr).copr_builder == helpers.PermissionEnum.num('approved'):
             can_build = True
 
         return can_build
@@ -84,7 +84,7 @@ class User(db.Model, Serializer):
         can_edit = False
         if copr.owner == self:
             can_edit = True
-        if self.permissions_for_copr(copr) and self.permissions_for_copr(copr).copr_admin == helpers.PermissionEnum.num('Approved'):
+        if self.permissions_for_copr(copr) and self.permissions_for_copr(copr).copr_admin == helpers.PermissionEnum.num('approved'):
             can_edit = True
 
         return can_edit



More information about the copr-devel mailing list