From bb4e71c6726e2a775d759a2e5556dbce8ee674fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Tue, 10 Feb 2015 11:19:15 +0100 Subject: [PATCH 2/4] add combo services (#6461) --- hobo/environment/forms.py | 8 +++++++- hobo/environment/models.py | 16 +++++++++++++++- hobo/environment/views.py | 5 +++-- hobo/static/css/style.css | 5 ++++- hobo/static/img/icon-portal-hover.png | Bin 0 -> 2597 bytes hobo/static/img/icon-portal.png | Bin 0 -> 2571 bytes 6 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 hobo/static/img/icon-portal-hover.png create mode 100644 hobo/static/img/icon-portal.png diff --git a/hobo/environment/forms.py b/hobo/environment/forms.py index 804b96c..ca81df9 100644 --- a/hobo/environment/forms.py +++ b/hobo/environment/forms.py @@ -4,7 +4,7 @@ from django.template.defaultfilters import slugify from django.utils.crypto import get_random_string from django.utils.translation import ugettext_lazy as _ -from .models import Authentic, Wcs, Passerelle, Variable +from .models import Authentic, Wcs, Passerelle, Variable, Combo SECRET_CHARS = 'abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)' EXCLUDED_FIELDS = ('slug', 'last_operational_check_timestamp', @@ -74,6 +74,12 @@ class PasserelleForm(BaseForm): exclude = EXCLUDED_FIELDS +class ComboForm(BaseForm): + class Meta: + model = Combo + exclude = EXCLUDED_FIELDS + + class VariableForm(forms.ModelForm): class Meta: model = Variable diff --git a/hobo/environment/models.py b/hobo/environment/models.py index f32aeb9..f13b42b 100644 --- a/hobo/environment/models.py +++ b/hobo/environment/models.py @@ -167,7 +167,21 @@ class Passerelle(ServiceBase): Zone(self.title, 'webservices', self.base_url + '/manage/') ] -AVAILABLE_SERVICES = [Authentic, Wcs, Passerelle] + +class Combo(ServiceBase): + class Meta: + verbose_name = _('Combo Portal') + verbose_name_plural = _('Combo Portals') + + class Extra: + service_id = 'combo' + + def get_admin_zones(self): + return [ + Zone(self.title, 'portal', self.base_url + '/manage/') + ] + +AVAILABLE_SERVICES = [Authentic, Wcs, Passerelle, Combo] @receiver(post_save) diff --git a/hobo/environment/views.py b/hobo/environment/views.py index 334128f..ed85b61 100644 --- a/hobo/environment/views.py +++ b/hobo/environment/views.py @@ -8,7 +8,7 @@ from django.shortcuts import get_object_or_404 from django.views.generic.base import TemplateView from django.views.generic.edit import CreateView, UpdateView, DeleteView -from .models import Variable, Authentic, Wcs, Passerelle, AVAILABLE_SERVICES +from .models import Variable, Authentic, Wcs, Passerelle, Combo, AVAILABLE_SERVICES from . import forms, utils @@ -140,7 +140,8 @@ def operational_check_view(request, service, slug, **kwargs): klass = { 'wcs': Wcs, 'authentic': Authentic, - 'passerelle': Passerelle + 'passerelle': Passerelle, + 'combo': Combo, }.get(service) if klass is None: diff --git a/hobo/static/css/style.css b/hobo/static/css/style.css index 364e822..81af1ca 100644 --- a/hobo/static/css/style.css +++ b/hobo/static/css/style.css @@ -13,6 +13,9 @@ li.zone-webforms a:hover { background-image: url(../img/icon-webforms-hover.png) li.zone-webservices a { background-image: url(../img/icon-webservices.png); } li.zone-webservices a:hover { background-image: url(../img/icon-webservices-hover.png); } +li.zone-portal a { background-image: url(../img/icon-portal.png); } +li.zone-portal a:hover { background-image: url(../img/icon-portal-hover.png); } + p.being-deployed { background: url(indicator.gif) no-repeat; padding-left: 2em; @@ -55,4 +58,4 @@ ul.login li ul.errorlist { ul.login label { float: left; width: 10em; -} \ No newline at end of file +} diff --git a/hobo/static/img/icon-portal-hover.png b/hobo/static/img/icon-portal-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..67bebfd07e6a953c99d0e60732e52bf8525c6b8d GIT binary patch literal 2597 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 Hu0mjfYD&s| literal 0 HcmV?d00001 diff --git a/hobo/static/img/icon-portal.png b/hobo/static/img/icon-portal.png new file mode 100644 index 0000000000000000000000000000000000000000..a3b7c192c98c4469a627865965a41efcdaa20547 GIT binary patch literal 2571 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 literal 0 HcmV?d00001 -- 2.1.4