Update smart settings app

Sort arguments. Add keyword arguments.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
This commit is contained in:
Roberto Rosario
2019-01-21 04:06:31 -04:00
parent ad7c77b4f3
commit 50333d1326
7 changed files with 38 additions and 38 deletions

View File

@@ -28,19 +28,19 @@ class SmartSettingsApp(MayanAppConfig):
Namespace.initialize()
SourceColumn(
source=Namespace, label=_('Setting count'),
func=lambda context: len(context['object'].settings)
func=lambda context: len(context['object'].settings),
label=_('Setting count'), source=Namespace
)
SourceColumn(
source=Setting, label=_('Name'),
func=lambda context: setting_widget(context['object'])
func=lambda context: setting_widget(context['object']),
label=_('Name'), source=Setting
)
SourceColumn(
source=Setting, label=_('Value'), attribute='serialized_value'
attribute='serialized_value', label=_('Value'), source=Setting
)
SourceColumn(
source=Setting, label=_('Overrided by environment variable?'),
func=lambda context: _('Yes') if context['object'].environment_variable else _('No')
func=lambda context: _('Yes') if context['object'].environment_variable else _('No'),
label=_('Overrided by environment variable?'), source=Setting
)
menu_secondary.bind_links(

View File

@@ -34,14 +34,14 @@ class Namespace(object):
exception
)
@classmethod
def get_all(cls):
return sorted(cls._registry.values(), key=lambda x: x.label)
@classmethod
def get(cls, name):
return cls._registry[name]
@classmethod
def get_all(cls):
return sorted(cls._registry.values(), key=lambda x: x.label)
@classmethod
def invalidate_cache_all(cls):
for namespace in cls.get_all():

View File

@@ -12,8 +12,9 @@ link_namespace_list = Link(
text=_('Settings'), view='settings:namespace_list'
)
link_namespace_detail = Link(
args='resolved_object.name', permissions=(permission_settings_view,),
text=_('Settings'), view='settings:namespace_detail',
kwargs={'namespace_name': 'resolved_object.name'},
permissions=(permission_settings_view,), text=_('Settings'),
view='settings:namespace_detail'
)
# Duplicate the link to use a different name
link_namespace_root_list = Link(
@@ -21,6 +22,7 @@ link_namespace_root_list = Link(
text=_('Namespaces'), view='settings:namespace_list'
)
link_setting_edit = Link(
args='resolved_object.global_name', permissions=(permission_settings_edit,),
text=_('Edit'), view='settings:setting_edit_view',
kwargs={'setting_global_name': 'resolved_object.global_name'},
permissions=(permission_settings_edit,), text=_('Edit'),
view='settings:setting_edit_view'
)

View File

@@ -7,8 +7,8 @@ from mayan.apps.permissions import PermissionNamespace
namespace = PermissionNamespace(label=_('Smart settings'), name='smart_settings')
permission_settings_edit = namespace.add_permission(
name='permission_settings_edit', label=_('Edit settings')
label=_('Edit settings'), name='permission_settings_edit'
)
permission_settings_view = namespace.add_permission(
name='permission_settings_view', label=_('View settings')
label=_('View settings'), name='permission_settings_view'
)

View File

@@ -6,27 +6,25 @@ from ..permissions import permission_settings_view
class SmartSettingViewPermissionsTestCase(GenericViewTestCase):
def setUp(self):
super(SmartSettingViewPermissionsTestCase, self).setUp()
self.login_user()
def test_view_access_denied(self):
response = self.get('settings:namespace_list')
response = self.get(viewname='settings:namespace_list')
self.assertEqual(response.status_code, 403)
response = self.get(
'settings:namespace_detail', args=('common',)
viewname='settings:namespace_detail',
kwargs={'namespace_name': 'common'}
)
self.assertEqual(response.status_code, 403)
def test_view_access_permitted(self):
self.grant_permission(permission=permission_settings_view)
response = self.get('settings:namespace_list')
response = self.get(viewname='settings:namespace_list')
self.assertEqual(response.status_code, 200)
response = self.get(
'settings:namespace_detail', args=('common',)
viewname='settings:namespace_detail',
kwargs={'namespace_name': 'common'}
)
self.assertEqual(response.status_code, 200)

View File

@@ -6,15 +6,15 @@ from .views import NamespaceDetailView, NamespaceListView, SettingEditView
urlpatterns = [
url(
r'^namespace/all/$', NamespaceListView.as_view(),
name='namespace_list'
regex=r'^namespaces/$', name='namespace_list',
view=NamespaceListView.as_view()
),
url(
r'^namespace/(?P<namespace_name>\w+)/$',
NamespaceDetailView.as_view(), name='namespace_detail'
regex=r'^namespaces/(?P<namespace_name>\w+)/$',
name='namespace_detail', view=NamespaceDetailView.as_view()
),
url(
r'^edit/(?P<setting_global_name>\w+)/$',
SettingEditView.as_view(), name='setting_edit_view'
),
regex=r'^settings/(?P<setting_global_name>\w+)/edit/$',
name='setting_edit_view', view=SettingEditView.as_view()
)
]

View File

@@ -39,7 +39,7 @@ class NamespaceDetailView(SingleObjectListView):
def get_namespace(self):
try:
return Namespace.get(self.kwargs['namespace_name'])
return Namespace.get(name=self.kwargs['namespace_name'])
except KeyError:
raise Http404(
_('Namespace: %s, not found') % self.kwargs['namespace_name']
@@ -57,7 +57,7 @@ class SettingEditView(FormView):
self.get_object().value = form.cleaned_data['value']
Setting.save_configuration()
messages.success(
self.request, _('Setting updated successfully.')
message=_('Setting updated successfully.'), request=self.request
)
return super(SettingEditView, self).form_valid(form=form)
@@ -72,11 +72,11 @@ class SettingEditView(FormView):
return {'setting': self.get_object()}
def get_object(self):
return Setting.get(self.kwargs['setting_global_name'])
return Setting.get(global_name=self.kwargs['setting_global_name'])
def get_post_action_redirect(self):
return reverse(
'settings:namespace_detail', args=(
self.get_object().namespace.name,
)
viewname='settings:namespace_detail', kwargs={
'namespace_name': self.get_object().namespace.name
}
)