changeset 2401:e2af60e480ce beta

Removed hardcoded hooks names from settings. Added helper for getting repos_location
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 06 Jun 2012 19:19:21 +0200
parents e87c6aa9c5e7
children 2eeb2ed72e55
files rhodecode/controllers/admin/settings.py rhodecode/model/db.py
diffstat 2 files changed, 22 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/controllers/admin/settings.py	Wed Jun 06 18:03:53 2012 +0200
+++ b/rhodecode/controllers/admin/settings.py	Wed Jun 06 19:19:21 2012 +0200
@@ -174,7 +174,8 @@
             application_form = ApplicationUiSettingsForm()()
             try:
                 form_result = application_form.to_python(dict(request.POST))
-
+                # fix namespaces for hooks
+                _f = lambda s: s.replace('.', '_')
                 try:
 
                     hgsettings1 = self.sa.query(RhodeCodeUi)\
@@ -187,28 +188,28 @@
 
                     #HOOKS
                     hgsettings3 = self.sa.query(RhodeCodeUi)\
-                    .filter(RhodeCodeUi.ui_key == 'changegroup.update').one()
-                    hgsettings3.ui_active = \
-                        bool(form_result['hooks_changegroup_update'])
+                    .filter(RhodeCodeUi.ui_key == RhodeCodeUi.HOOK_UPDATE)\
+                    .one()
+                    hgsettings3.ui_active = bool(form_result[_f('hooks_%s' %
+                                                 RhodeCodeUi.HOOK_UPDATE)])
 
                     hgsettings4 = self.sa.query(RhodeCodeUi)\
-                    .filter(RhodeCodeUi.ui_key ==
-                            'changegroup.repo_size').one()
-                    hgsettings4.ui_active = \
-                        bool(form_result['hooks_changegroup_repo_size'])
+                    .filter(RhodeCodeUi.ui_key == RhodeCodeUi.HOOK_REPO_SIZE)\
+                    .one()
+                    hgsettings4.ui_active = bool(form_result[_f('hooks_%s' % 
+                                                 RhodeCodeUi.HOOK_REPO_SIZE)])
 
                     hgsettings5 = self.sa.query(RhodeCodeUi)\
-                    .filter(RhodeCodeUi.ui_key ==
-                            'pretxnchangegroup.push_logger').one()
-                    hgsettings5.ui_active = \
-                        bool(form_result['hooks_pretxnchangegroup'
-                                         '_push_logger'])
+                    .filter(RhodeCodeUi.ui_key == RhodeCodeUi.HOOK_PUSH)\
+                    .one()
+                    hgsettings5.ui_active = bool(form_result[_f('hooks_%s' % 
+                                                 RhodeCodeUi.HOOK_PUSH)])
 
                     hgsettings6 = self.sa.query(RhodeCodeUi)\
-                    .filter(RhodeCodeUi.ui_key ==
-                            'preoutgoing.pull_logger').one()
-                    hgsettings6.ui_active = \
-                        bool(form_result['hooks_preoutgoing_pull_logger'])
+                    .filter(RhodeCodeUi.ui_key == RhodeCodeUi.HOOK_PULL)\
+                    .one()
+                    hgsettings6.ui_active = bool(form_result[_f('hooks_%s' %
+                                                 RhodeCodeUi.HOOK_PULL)])
 
                     self.sa.add(hgsettings1)
                     self.sa.add(hgsettings2)
--- a/rhodecode/model/db.py	Wed Jun 06 18:03:53 2012 +0200
+++ b/rhodecode/model/db.py	Wed Jun 06 19:19:21 2012 +0200
@@ -269,6 +269,10 @@
         return q.all()
 
     @classmethod
+    def get_repos_location(cls):
+        return cls.get_by_key('/').one().ui_value
+
+    @classmethod
     def create_or_update_hook(cls, key, val):
         new_ui = cls.get_by_key(key).scalar() or cls()
         new_ui.ui_section = 'hooks'