From 78f0823a50d021bf9c4dcf1869e0a7e51b085f51 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Fri, 16 Sep 2016 18:38:20 +0200 Subject: [PATCH] Add project topics --- .../migrations/0008_auto_20160916_1835.py | 48 +++++++++++++++++++ app/organization/projects/models.py | 14 ++++++ 2 files changed, 62 insertions(+) create mode 100644 app/organization/projects/migrations/0008_auto_20160916_1835.py diff --git a/app/organization/projects/migrations/0008_auto_20160916_1835.py b/app/organization/projects/migrations/0008_auto_20160916_1835.py new file mode 100644 index 00000000..20c285fa --- /dev/null +++ b/app/organization/projects/migrations/0008_auto_20160916_1835.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-09-16 16:35 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-projects', '0007_auto_20160907_1718'), + ] + + operations = [ + migrations.CreateModel( + name='ProjectSubTopic', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=512, verbose_name='name')), + ('description', models.TextField(blank=True, verbose_name='description')), + ], + options={ + 'verbose_name': 'project sub topic', + }, + ), + migrations.CreateModel( + name='ProjectTopic', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=512, verbose_name='name')), + ('description', models.TextField(blank=True, verbose_name='description')), + ], + options={ + 'verbose_name': 'project topic', + }, + ), + migrations.AddField( + model_name='project', + name='sub_topic', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='projects', to='organization-projects.ProjectSubTopic', verbose_name='sub topic'), + ), + migrations.AddField( + model_name='project', + name='topic', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='projects', to='organization-projects.ProjectTopic', verbose_name='topic'), + ), + ] diff --git a/app/organization/projects/models.py b/app/organization/projects/models.py index 6d9e8d17..49bfbfeb 100644 --- a/app/organization/projects/models.py +++ b/app/organization/projects/models.py @@ -24,6 +24,8 @@ class Project(Displayable, Period, RichText): teams = models.ManyToManyField('organization-network.Team', verbose_name=_('teams'), related_name='partner_projects', blank=True) organizations = models.ManyToManyField('organization-network.Organization', verbose_name=_('organizations'), blank=True) website = models.URLField(_('website'), max_length=512, blank=True) + topic = models.ForeignKey('ProjectTopic', verbose_name=_('topic'), related_name='projects', blank=True, null=True) + sub_topic = models.ForeignKey('ProjectSubTopic', verbose_name=_('sub topic'), related_name='projects', blank=True, null=True) class Meta: verbose_name = _('project') @@ -35,6 +37,18 @@ class Project(Displayable, Period, RichText): return reverse("organization-project-detail", kwargs={"slug": self.slug}) +class ProjectTopic(Named): + + class Meta: + verbose_name = _('project topic') + + +class ProjectSubTopic(Named): + + class Meta: + verbose_name = _('project sub topic') + + class ProjectProgram(Named): class Meta: -- 2.39.5