From e07c142e554f19f5d3d5cc136761816fe2ca7345 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Sun, 13 Nov 2016 22:43:20 +0100 Subject: [PATCH] Add additional organization data, simplify verbose names --- .../migrations/0059_auto_20161113_2236.py | 111 ++++++++++++++++++ app/organization/network/models.py | 43 ++++--- app/organization/network/translation.py | 10 +- app/settings.py | 3 - 4 files changed, 148 insertions(+), 19 deletions(-) create mode 100644 app/organization/network/migrations/0059_auto_20161113_2236.py diff --git a/app/organization/network/migrations/0059_auto_20161113_2236.py b/app/organization/network/migrations/0059_auto_20161113_2236.py new file mode 100644 index 00000000..ea4703b0 --- /dev/null +++ b/app/organization/network/migrations/0059_auto_20161113_2236.py @@ -0,0 +1,111 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.10 on 2016-11-13 21:36 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-network', '0058_auto_20161109_1218'), + ] + + operations = [ + migrations.CreateModel( + name='ActivityStatusFamily', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=512, verbose_name='name')), + ('name_fr', models.CharField(max_length=512, null=True, verbose_name='name')), + ('name_en', models.CharField(max_length=512, null=True, verbose_name='name')), + ('description', models.TextField(blank=True, verbose_name='description')), + ('description_fr', models.TextField(blank=True, null=True, verbose_name='description')), + ('description_en', models.TextField(blank=True, null=True, verbose_name='description')), + ('order', models.IntegerField(default=100, verbose_name='order number')), + ('display', models.BooleanField(default=True, verbose_name='display on team page')), + ], + options={ + 'ordering': ['order'], + 'verbose_name': 'Status family', + }, + ), + migrations.AlterModelOptions( + name='activityframework', + options={'verbose_name': 'framework', 'verbose_name_plural': 'frameworks'}, + ), + migrations.AlterModelOptions( + name='activityfunction', + options={'verbose_name': 'function', 'verbose_name_plural': 'functions'}, + ), + migrations.AlterModelOptions( + name='activitygrade', + options={'verbose_name': 'grade', 'verbose_name_plural': 'grades'}, + ), + migrations.AlterModelOptions( + name='activitystatus', + options={'ordering': ['order'], 'verbose_name': 'status'}, + ), + migrations.AlterModelOptions( + name='budgetcode', + options={'verbose_name': 'budget code', 'verbose_name_plural': 'budget codes'}, + ), + migrations.AlterModelOptions( + name='recordpiece', + options={'verbose_name': 'record piece', 'verbose_name_plural': 'record pieces'}, + ), + migrations.AlterModelOptions( + name='traininglevel', + options={'verbose_name': 'training level', 'verbose_name_plural': 'training levels'}, + ), + migrations.AlterModelOptions( + name='trainingspeciality', + options={'verbose_name': 'training speciality', 'verbose_name_plural': 'training specialities'}, + ), + migrations.AlterModelOptions( + name='trainingtopic', + options={'verbose_name': 'training topic', 'verbose_name_plural': 'training topics'}, + ), + migrations.AlterModelOptions( + name='trainingtype', + options={'verbose_name': 'training type', 'verbose_name_plural': 'training types'}, + ), + migrations.RemoveField( + model_name='activitystatus', + name='display_text', + ), + migrations.RemoveField( + model_name='activitystatus', + name='display_text_en', + ), + migrations.RemoveField( + model_name='activitystatus', + name='display_text_fr', + ), + migrations.AddField( + model_name='organization', + name='opening_times', + field=models.TextField(blank=True, verbose_name='opening times'), + ), + migrations.AddField( + model_name='organization', + name='subway_access', + field=models.TextField(blank=True, verbose_name='subway access'), + ), + migrations.AddField( + model_name='organization', + name='telephone', + field=models.CharField(blank=True, max_length=64, null=True, verbose_name='telephone'), + ), + migrations.AddField( + model_name='person', + name='telephone', + field=models.CharField(blank=True, max_length=64, null=True, verbose_name='telephone'), + ), + migrations.AddField( + model_name='activitystatus', + name='family', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='activity_statuses', to='organization-network.ActivityStatusFamily', verbose_name='family'), + ), + ] diff --git a/app/organization/network/models.py b/app/organization/network/models.py index 26626fce..c1595695 100644 --- a/app/organization/network/models.py +++ b/app/organization/network/models.py @@ -70,7 +70,10 @@ class Organization(Named, Address, URL, AdminThumbRelatedMixin): initials = models.CharField(_('initials'), max_length=128, blank=True, null=True) is_on_map = models.BooleanField(_('is on map'), default=False, blank=True) is_host = models.BooleanField(_('is host'), default=False, blank=True) - + telephone = models.CharField(_('telephone'), max_length=64, blank=True, null=True) + opening_times = models.TextField(_('opening times'), blank=True) + subway_access = models.TextField(_('subway access'), blank=True) + admin_thumb_type = 'logo' class Meta: @@ -225,6 +228,7 @@ class Person(Displayable, AdminThumbMixin): first_name = models.CharField(_('first name'), max_length=255, blank=True, null=True) last_name = models.CharField(_('last name'), max_length=255, blank=True, null=True) email = models.EmailField(_('email'), blank=True, null=True) + telephone = models.CharField(_('telephone'), max_length=64, blank=True, null=True) birthday = models.DateField(_('birthday'), blank=True, null=True) bio = RichTextField(_('biography'), blank=True) external_id = models.CharField(_('external ID'), blank=True, null=True, max_length=128) @@ -317,70 +321,81 @@ class PersonListBlockInline(models.Model): verbose_name = _('Person autocomplete') +class ActivityStatusFamily(Named): + + order = models.IntegerField(_('order number'), default=100) + display = models.BooleanField(_('display on team page'), blank=True, default=True) + + class Meta: + verbose_name = _('Status family') + ordering = ['order'] + + class ActivityStatus(Named): order = models.IntegerField(_('order number'), default=100) display = models.BooleanField(_('display on team page'), blank=True, default=True) - display_text = models.CharField(_('display text'), max_length=128, blank=True, null=True) + family = models.ForeignKey(ActivityStatusFamily, verbose_name=_('family'), related_name='activity_statuses', blank=True, null=True, on_delete=models.SET_NULL) class Meta: - verbose_name = _('activity status') + verbose_name = _('status') ordering = ['order'] class ActivityGrade(Named): class Meta: - verbose_name = _('activity grade') + verbose_name = _('grade') + verbose_name_plural = _('grades') class ActivityFramework(Named): class Meta: - verbose_name = _('activity framework') - + verbose_name = _('framework') + verbose_name_plural = _('frameworks') class ActivityFunction(Named): class Meta: - verbose_name = _('activity function') - + verbose_name = _('function') + verbose_name_plural = _('functions') class BudgetCode(Named): class Meta: verbose_name = _('budget code') - + verbose_name_plural = _('budget codes') class RecordPiece(Named): class Meta: verbose_name = _('record piece') - + verbose_name_plural = _('record pieces') class TrainingType(Named): class Meta: verbose_name = _('training type') - + verbose_name_plural = _('training types') class TrainingLevel(Named): class Meta: verbose_name = _('training level') - + verbose_name_plural = _('training levels') class TrainingTopic(Named): class Meta: verbose_name = _('training topic') - + verbose_name_plural = _('training topics') class TrainingSpeciality(Named): class Meta: verbose_name = _('training speciality') - + verbose_name_plural = _('training specialities') class UMR(Named): diff --git a/app/organization/network/translation.py b/app/organization/network/translation.py index f7d3879e..1c81f19f 100644 --- a/app/organization/network/translation.py +++ b/app/organization/network/translation.py @@ -141,10 +141,16 @@ class ActivityFrameworkTranslationOptions(TranslationOptions): fields = ['name', 'description'] +@register(ActivityStatusFamily) +class ActivityStatusFamilyTranslationOptions(TranslationOptions): + + fields = ['name', 'description',] + + @register(ActivityStatus) -class ActivityGradeTranslationOptions(TranslationOptions): +class ActivityStatusTranslationOptions(TranslationOptions): - fields = ['name', 'description', 'display_text'] + fields = ['name', 'description',] @register(TrainingTopic) diff --git a/app/settings.py b/app/settings.py index 77679367..4683ad6e 100644 --- a/app/settings.py +++ b/app/settings.py @@ -353,9 +353,6 @@ except ImportError as e: if "local_settings" not in str(e): raise e - - - #################### # DYNAMIC S ETTINGS # #################### -- 2.39.5