Commit e8f3a873ca7e70fd09b9ccf1bd52328304ab462b

Authored by Gustavo Jaruga Cruz
2 parents 8b909d60 52742a46

Merge pull request #100 from colab/removing_namespace

Removing namespace
colab/plugins/utils/apps.py
1 1
2 from django.apps import AppConfig 2 from django.apps import AppConfig
  3 +from ..conf import get_plugin_config
3 4
4 5
5 class ColabPluginAppConfig(AppConfig): 6 class ColabPluginAppConfig(AppConfig):
6 colab_proxied_app = True 7 colab_proxied_app = True
  8 + namespace = None
  9 +
  10 + def __init__(self, app_name, app_module):
  11 + super(ColabPluginAppConfig, self).__init__(app_name, app_module)
  12 + self.set_namespace()
  13 +
  14 + def set_namespace(self):
  15 + config = get_plugin_config(self.name)
  16 + config['urls']['namespace'] = self.namespace
7 17
8 def register_signal(self): 18 def register_signal(self):
9 pass 19 pass
colab/plugins/utils/tests/test_apps.py 0 → 100644
@@ -0,0 +1,23 @@ @@ -0,0 +1,23 @@
  1 +from mock import patch
  2 +
  3 +from django.test import TestCase
  4 +from django.apps import AppConfig
  5 +
  6 +from colab.plugins.utils.apps import ColabPluginAppConfig
  7 +
  8 +
  9 +class AppsTest(TestCase):
  10 +
  11 + @patch.object(AppConfig, '_path_from_module')
  12 + @patch('colab.plugins.utils.apps.get_plugin_config')
  13 + def test_set_namespace(self, get_plugin_config_mock,
  14 + path_from_module_mock):
  15 + path_from_module_mock.return_value = "/fake/path"
  16 +
  17 + get_plugin_config_mock.return_value = {'urls': {}}
  18 + conf = get_plugin_config_mock()
  19 +
  20 + ColabPluginAppConfig("test", "test_app")
  21 +
  22 + self.assertIn('namespace', conf['urls'])
  23 + self.assertEquals(None, conf['urls']['namespace'])
docs/source/plugindev.rst
@@ -23,6 +23,8 @@ signals structure, some steps are required: @@ -23,6 +23,8 @@ signals structure, some steps are required:
23 contain any special character, such as dot or comma. It is suggested to name 23 contain any special character, such as dot or comma. It is suggested to name
24 the variable "short_name", but that nomenclature is not strictly 24 the variable "short_name", but that nomenclature is not strictly
25 necessary. 25 necessary.
  26 +* Finally, the variable namespace should also be defined. This variable is the
  27 + url namespace for django reverse.
26 * In order to actually register the signals, it is necessary to implement the 28 * In order to actually register the signals, it is necessary to implement the
27 method register_signal, which require the name of the plugin that is 29 method register_signal, which require the name of the plugin that is
28 registering the signals and a list of signals to be registered as parameters. 30 registering the signals and a list of signals to be registered as parameters.
@@ -57,6 +59,7 @@ signals structure, some steps are required: @@ -57,6 +59,7 @@ signals structure, some steps are required:
57 class PluginApps(ColabPluginAppConfig): 59 class PluginApps(ColabPluginAppConfig):
58 short_name = PLUGIN_NAME 60 short_name = PLUGIN_NAME
59 signals_list = [SIGNAL1, SIGNAL2] 61 signals_list = [SIGNAL1, SIGNAL2]
  62 + namespace = PLUGIN_NAMESPACE
60 63
61 def registered_signal(self): 64 def registered_signal(self):
62 register_signal(self.short_name, self.signals_list) 65 register_signal(self.short_name, self.signals_list)
docs/source/user.rst
@@ -118,7 +118,6 @@ Use this template for the plugin configuration file @@ -118,7 +118,6 @@ Use this template for the plugin configuration file
118 118
119 urls = { 119 urls = {
120 'include': '[plugin_module_path].urls', 120 'include': '[plugin_module_path].urls',
121 - 'namespace': '[plugin_name]',  
122 'prefix': '[application_prefix]/', # Exemple: http://site.com/[application_prefix]/ 121 'prefix': '[application_prefix]/', # Exemple: http://site.com/[application_prefix]/
123 } 122 }
124 123
@@ -177,9 +176,6 @@ urls @@ -177,9 +176,6 @@ urls
177 Declares the prefix for the url. 176 Declares the prefix for the url.
178 177
179 - Atention: Any URL used in the plugins' settings should not be preceded by "/" 178 - Atention: Any URL used in the plugins' settings should not be preceded by "/"
180 -.. attribute:: namespace  
181 -  
182 - Declares the namespace for the url.  
183 179
184 menu 180 menu
185 ++++ 181 ++++