From 308953b92af5f2ac0c65ac4819df9267dff63bbd Mon Sep 17 00:00:00 2001 From: Josue Kouka Date: Thu, 3 Mar 2016 11:25:42 +0100 Subject: [PATCH] add piwik service (#10157) --- hobo/environment/forms.py | 16 +++++++++++++- hobo/environment/migrations/0014_piwik.py | 35 +++++++++++++++++++++++++++++++ hobo/environment/models.py | 13 +++++++++++- 3 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 hobo/environment/migrations/0014_piwik.py diff --git a/hobo/environment/forms.py b/hobo/environment/forms.py index 1b86f1a..650f9a2 100644 --- a/hobo/environment/forms.py +++ b/hobo/environment/forms.py @@ -2,9 +2,10 @@ from django import forms from django.conf import settings from django.template.defaultfilters import slugify from django.utils.translation import ugettext_lazy as _ +from django.core.validators import validate_email from .models import (Authentic, Wcs, Passerelle, Variable, Combo, Fargo, Welco, - MandayeJS, Chrono) + MandayeJS, Chrono, Piwik) EXCLUDED_FIELDS = ('last_operational_check_timestamp', 'last_operational_success_timestamp', 'secret_key') @@ -115,6 +116,19 @@ class ChronoForm(BaseForm): model = Chrono exclude = EXCLUDED_FIELDS +class PiwikForm(BaseForm): + class Meta: + model = Piwik + exclude = EXCLUDED_FIELDS + + def clean(self): + cleaned_data = super(PiwikForm, self).clean() + emails = cleaned_data.get('admin_emails',None) + if emails: + for email in emails.split(','): + validate_email(email.strip()) + return cleaned_data + class VariableForm(forms.ModelForm): class Meta: diff --git a/hobo/environment/migrations/0014_piwik.py b/hobo/environment/migrations/0014_piwik.py new file mode 100644 index 0000000..6e48f3a --- /dev/null +++ b/hobo/environment/migrations/0014_piwik.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('environment', '0013_auto_20160226_1633'), + ] + + operations = [ + migrations.CreateModel( + name='Piwik', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('title', models.CharField(max_length=50, verbose_name='Title')), + ('slug', models.SlugField(verbose_name='Slug')), + ('base_url', models.CharField(max_length=200, verbose_name='Base URL')), + ('secret_key', models.CharField(max_length=60, verbose_name='Secret Key')), + ('template_name', models.CharField(max_length=60, verbose_name='Template', blank=True)), + ('last_operational_check_timestamp', models.DateTimeField(null=True)), + ('last_operational_success_timestamp', models.DateTimeField(null=True)), + ('last_update_timestamp', models.DateTimeField(auto_now=True, null=True)), + ('admin_emails', models.TextField(verbose_name='Admins Emails')), + ], + options={ + 'ordering': ['title'], + 'verbose_name': 'Piwik', + 'verbose_name_plural': 'Piwik', + }, + bases=(models.Model,), + ), + ] diff --git a/hobo/environment/models.py b/hobo/environment/models.py index 19dd063..e0eafea 100644 --- a/hobo/environment/models.py +++ b/hobo/environment/models.py @@ -326,5 +326,16 @@ class Chrono(ServiceBase): return self.get_base_url_path() + 'manage/menu.json' +class Piwik(ServiceBase): + admin_emails = models.TextField(_('Admins Emails')) + class Meta: + verbose_name = _('Piwik') + verbose_name_plural = _('Piwik') + ordering = ['title'] + + class Extra: + service_id = 'piwik' + service_label = _('piwik') + AVAILABLE_SERVICES = [Authentic, Wcs, Passerelle, Combo, Fargo, Welco, - MandayeJS, Chrono] + MandayeJS, Chrono, Piwik] -- 2.7.0