From f704453da87847c49b8c1ddef2170cb9cf391aa9 Mon Sep 17 00:00:00 2001 From: Serghei Mihai Date: Mon, 25 May 2015 16:53:13 +0200 Subject: [PATCH] federation files management (#7067) --- uauth/organization/forms.py | 4 ++ .../templates/organization/federations.html | 28 +++++++++++ .../templates/organization/manage.html | 1 + uauth/organization/urls.py | 3 ++ uauth/organization/views.py | 46 ++++++++++++++++++ uauth/static/css/icons/icon-grid-hover.png | Bin 0 -> 429 bytes uauth/static/css/icons/icon-grid.png | Bin 0 -> 246 bytes uauth/static/css/style.css | 3 +- 8 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 uauth/organization/templates/organization/federations.html create mode 100644 uauth/static/css/icons/icon-grid-hover.png create mode 100644 uauth/static/css/icons/icon-grid.png diff --git a/uauth/organization/forms.py b/uauth/organization/forms.py index 2c77f71..0090343 100644 --- a/uauth/organization/forms.py +++ b/uauth/organization/forms.py @@ -38,3 +38,7 @@ class TemplateForm(forms.Form): class StaticForm(forms.Form): static_file = forms.FileField(_('Static file')) + + +class FederationForm(forms.Form): + federation_file = forms.FileField(_('Federation file')) diff --git a/uauth/organization/templates/organization/federations.html b/uauth/organization/templates/organization/federations.html new file mode 100644 index 0000000..b3ae989 --- /dev/null +++ b/uauth/organization/templates/organization/federations.html @@ -0,0 +1,28 @@ +{% extends "organization/base.html" %} +{% load i18n %} + +{% block page-title %} +{% trans 'Federations management' %} +{% endblock %} + +{% block appbar %} +

{% trans "Federations" %}

+{% trans "Add federation" %} +{% endblock %} + +{% block content %} +
+ + + + + + {% for federation in federations %} + + {% empty %} + + {% endfor %} + +
{% trans "Filename" %}
{{ federation }}
{% trans "No federations uploaded yet" %}
+
+{% endblock %} diff --git a/uauth/organization/templates/organization/manage.html b/uauth/organization/templates/organization/manage.html index 6435f23..f6e9392 100644 --- a/uauth/organization/templates/organization/manage.html +++ b/uauth/organization/templates/organization/manage.html @@ -5,5 +5,6 @@ {% endblock %} diff --git a/uauth/organization/urls.py b/uauth/organization/urls.py index 7dd2f02..68ffa27 100644 --- a/uauth/organization/urls.py +++ b/uauth/organization/urls.py @@ -14,4 +14,7 @@ urlpatterns = patterns('', url(r'^theme/template/delete$', template_delete, name='template-delete'), url(r'^theme/static/upload$', static_upload, name='static-upload'), url(r'^theme/static/delete$', static_delete, name='static-delete'), + url(r'^federations/$', federations, name='manage-federations'), + url(r'^federations/add$', federations_add, name='federations-add'), + url(r'^federations/delete$', federations_delete, name='federations-delete') ) diff --git a/uauth/organization/views.py b/uauth/organization/views.py index 911a7d8..93dcda0 100644 --- a/uauth/organization/views.py +++ b/uauth/organization/views.py @@ -263,3 +263,49 @@ class StaticDelete(ThemeView): return redirect(self.get_success_url()) static_delete = StaticDelete.as_view() + + +class FederationsView(OrganizationMixin, TemplateView): + template_name = 'organization/federations.html' + + def get_success_url(self): + return reverse_lazy('manage-federations', kwargs={'organization_slug': self.kwargs['organization_slug']}) + + def get_context_data(self, **kwargs): + ctx = super(FederationsView, self).get_context_data(**kwargs) + org = ctx['organization'] + federations_dir = os.path.join(settings.ORGANIZATIONS_DIR, + org.slug, 'federations') + ctx['federations_dir'] = federations_dir + if os.path.exists(federations_dir): + ctx['federations'] = os.listdir(federations_dir) + else: + ctx['federations'] = [] + return ctx + +federations = FederationsView.as_view() + + +class FederationsAdd(UploadMixin, FederationsView): + form_class = FederationForm + filename_param = 'federation_file' + upload_dir = 'federations' + +federations_add = FederationsAdd.as_view() + + +class FederationsDelete(TemplateView): + def get(self, request, *args, **kwargs): + ctx = self.get_context_data(**kwargs) + s = request.GET.get('federation') + if os.path.exists(os.path.join(ctx['federations_dir'], f)): + try: + os.remove(os.path.join(ctx['federations_dir'], f)) + messages.info(request, _('Federation file %s successfully removed') % f) + except IOError: + messages.error(request, _('An error occured while removing file %s') % f) + else: + messages.error(request, _('Unknown federation file %s') % f) + return redirect(self.get_success_url()) + +federations_delete = FederationsDelete.as_view() diff --git a/uauth/static/css/icons/icon-grid-hover.png b/uauth/static/css/icons/icon-grid-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..c574806ee87e2536e867742f4d55f028ce3f8196 GIT binary patch literal 429 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51|<6gKdl8)Y)RhkE)4%caKYZ?lYt_f1s;*b zKpodXn9)gNb_Gz7y~NYkmHi%*5RbJb-`v*w3=E7`o-U3d6}R5rHuO5;Aad;EdtN0L zZE3?3?=*`VHEkNUU+@yMY3rRDc5C@3hLfplVgy%j-6WyCTf#X_-*nIuPXWp0>R6{qM|~cRiwNj6bEMO*cH|&R^;56!trwYH92_W>mdZxi=pioYu=F(!%*Apjhof%tkk{M`f!+*us^F6MYE>~>H z?)_i9qsy>N?o->F)V&_<9~54uq&zWLTB4u%QgQu{<1O-e?@k{IjQhw`F2@?A07B=! zn5%yzpzOX+IBFx{H;s=x<=+(pb>I0mMN0 zGl^(^b literal 0 HcmV?d00001 diff --git a/uauth/static/css/style.css b/uauth/static/css/style.css index 24d40ce..f58db0a 100644 --- a/uauth/static/css/style.css +++ b/uauth/static/css/style.css @@ -75,4 +75,5 @@ div.example { /* icons */ li.users a {background-image: url(icons/icon-personnes.png);} -li.theme a {background-image: url(icons/icon-ressources.png);} \ No newline at end of file +li.theme a {background-image: url(icons/icon-ressources.png);} +li.federations a {background-image: url(icons/icon-grid.png);} \ No newline at end of file