14 changed files with 51 additions and 103 deletions
@ -1,83 +0,0 @@
|
||||
# -*- coding: utf-8 -*- |
||||
# Generated by Django 1.11.5 on 2017-09-28 18:50 |
||||
from __future__ import unicode_literals |
||||
|
||||
from django.db import migrations, models |
||||
import django.db.models.deletion |
||||
import people.controllers |
||||
import shared.utils.fields |
||||
|
||||
|
||||
class Migration(migrations.Migration): |
||||
|
||||
initial = True |
||||
|
||||
dependencies = [ |
||||
('contenttypes', '0002_remove_content_type_name'), |
||||
] |
||||
|
||||
operations = [ |
||||
migrations.CreateModel( |
||||
name='GenericParticipationRel', |
||||
fields=[ |
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||
('object_id', models.PositiveIntegerField()), |
||||
('order_index', models.IntegerField(default=0, verbose_name='Sortierung')), |
||||
('label', models.CharField(blank=True, max_length=2000, null=True, verbose_name='Weitere Angaben')), |
||||
('content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType')), |
||||
], |
||||
options={ |
||||
'verbose_name': 'Rolle/Funktion', |
||||
'verbose_name_plural': 'Rollen/Funktionen', |
||||
'ordering': ['role', 'order_index', 'person__sort_name'], |
||||
}, |
||||
), |
||||
migrations.CreateModel( |
||||
name='Person', |
||||
fields=[ |
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||
('is_group', models.BooleanField(default=False, help_text='Bitte ankreuzen, wenn es sich um eine Gruppe handelt, und unten die Gruppenmitglieder auswählen', verbose_name='Gruppe')), |
||||
('_is_main_person', models.BooleanField(default=False, editable=False, verbose_name='Haupteintrag')), |
||||
('name', models.CharField(max_length=200, unique=True, verbose_name='Name')), |
||||
('slug', shared.utils.fields.AutoSlugField(help_text='Kurzfassung des Namens für die Adresszeile im Browser. Vorzugsweise englisch, keine Umlaute, nur Bindestrich als Sonderzeichen.', max_length=200, verbose_name='URL-Name')), |
||||
('sort_name', models.CharField(blank=True, max_length=200, verbose_name='Name sortierbar')), |
||||
('main_person', models.ForeignKey(blank=True, help_text='Wenn es sich um eine alternative Schreibweise oder ein Pseudonym handelt, hier den Hauptpersoneneintrag auswählen.', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='pseudonym_set', to='people.Person', verbose_name='Haupteintrag')), |
||||
('members', models.ManyToManyField(blank=True, related_name='groups', to='people.Person', verbose_name='Gruppenmitglieder')), |
||||
('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_people.person_set+', to='contenttypes.ContentType')), |
||||
], |
||||
options={ |
||||
'verbose_name': 'Person', |
||||
'verbose_name_plural': 'Personen', |
||||
'ordering': ['sort_name', 'name'], |
||||
'abstract': False, |
||||
}, |
||||
bases=(people.controllers.PersonController, models.Model), |
||||
), |
||||
migrations.CreateModel( |
||||
name='PersonRole', |
||||
fields=[ |
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||
('id_text', models.CharField(max_length=20, verbose_name='Bezeichner (intern)')), |
||||
('name_de', models.CharField(max_length=50, verbose_name='Bezeichnung (de)')), |
||||
('name_en', models.CharField(blank=True, max_length=50, null=True, verbose_name='Bezeichnung (en)')), |
||||
('label_de', models.CharField(blank=True, help_text='In der Bibliografie', max_length=200, null=True, verbose_name='Ausgabetext (de)')), |
||||
('label_en', models.CharField(blank=True, max_length=200, null=True, verbose_name='Ausgabetext (en)')), |
||||
('order_index', models.IntegerField(default=0, verbose_name='Sortierung')), |
||||
], |
||||
options={ |
||||
'verbose_name': 'Funktion', |
||||
'verbose_name_plural': 'Funktionen', |
||||
'ordering': ['order_index', 'name_de', 'name_en'], |
||||
}, |
||||
), |
||||
migrations.AddField( |
||||
model_name='genericparticipationrel', |
||||
name='person', |
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='participations', related_query_name='participations', to='people.Person', verbose_name='Person'), |
||||
), |
||||
migrations.AddField( |
||||
model_name='genericparticipationrel', |
||||
name='role', |
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='people.PersonRole', verbose_name='Funktion'), |
||||
), |
||||
] |
@ -0,0 +1,2 @@
|
||||
__import__('pkg_resources').declare_namespace(__name__) |
||||
|
@ -0,0 +1,30 @@
|
||||
from django.core.urlresolvers import reverse |
||||
from django.utils.translation import ugettext_lazy as _ |
||||
|
||||
from shared.utils.translation import get_translated_field |
||||
|
||||
from .controllers import PersonController |
||||
from .models import PseudonymMixin, GroupMixin, BasePerson, PersonRoleBase, GenericParticipationRelBase |
||||
|
||||
|
||||
class Person(PersonController, PseudonymMixin, GroupMixin, BasePerson): |
||||
class Meta(BasePerson.Meta): |
||||
app_label = 'people' |
||||
|
||||
def get_absolute_url(self): |
||||
return reverse('person-detail', kwargs={'slug': self.slug}) |
||||
|
||||
|
||||
class PersonRole(PersonRoleBase): |
||||
class Meta(PersonRoleBase.Meta): |
||||
verbose_name = _("Funktion") |
||||
verbose_name_plural = _("Funktionen") |
||||
ordering = ['order_index', 'name_de', 'name_en'] |
||||
|
||||
def __str__(self): |
||||
return self.name |
||||
|
||||
|
||||
class GenericParticipationRel(GenericParticipationRelBase): |
||||
class Meta(GenericParticipationRelBase.Meta): |
||||
app_label = 'people' |
Loading…
Reference in new issue