return res
-class PersonAutocompleteInline(TabularDynamicInlineAdmin):
+class PersonListBlockInlineAdmin(TabularDynamicInlineAdmin):
- model = PersonAutocomplete
- form = PersonAutocompleteForm
+ model = PersonListBlockInline
+ form = PersonListBlockInlineForm
class PersonListBlockAdmin(admin.ModelAdmin):
- inlines = [PersonAutocompleteInline,]
+ inlines = [PersonListBlockInlineAdmin,]
admin.site.register(Organization, OrganizationAdmin)
from django.forms.widgets import HiddenInput
from django.forms import ModelForm
from mezzanine.core.models import Orderable
-from organization.network.models import Person, PersonListBlock, DynamicPersonList, PersonAutocomplete #DynamicContentPersonList,
-from organization.pages.models import DynamicPersonListBlockPage, Page
+from organization.network.models import Person, PersonListBlock, PersonListBlockInline, PageCustomPersonListBlockInline
+from organization.pages.models import Page, CustomPage
-class PagePersonListForm(forms.ModelForm):
+class PageCustomPersonListForm(forms.ModelForm):
person_list_block = forms.ModelChoiceField(
queryset=PersonListBlock.objects.all(),
)
class Meta:
- model = Page
- fields = ('person_list_block',)
+ model = PageCustomPersonListBlockInline #CustomPage
+ fields = ('person_list_block',) #person_list_block
-class PersonAutocompleteForm(forms.ModelForm):
+class PersonListBlockInlineForm(forms.ModelForm):
person = forms.ModelChoiceField(
queryset=Person.objects.all(),
)
class Meta:
- model = PersonAutocomplete
+ model = PersonListBlockInline
fields = ('__all__')
--- /dev/null
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-09-19 16:29
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('organization-pages', '0002_auto_20160914_1838'),
+ ('organization-network', '0012_auto_20160916_1423'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='PageCustomPersonListBlockInline',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('title', models.CharField(max_length=1024, verbose_name='title')),
+ ('description', models.TextField(blank=True, verbose_name='description')),
+ ('page', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='person_list_block', to='organization-pages.CustomPage', verbose_name='Page')),
+ ],
+ options={
+ 'verbose_name': 'Person List',
+ },
+ ),
+ migrations.CreateModel(
+ name='PersonListBlock',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('title', models.CharField(max_length=1024, verbose_name='title')),
+ ('description', models.TextField(blank=True, verbose_name='description')),
+ ('style', models.CharField(choices=[('square', 'square'), ('circle', 'circle')], max_length=16, verbose_name='style')),
+ ],
+ options={
+ 'verbose_name': 'Person List',
+ },
+ ),
+ migrations.CreateModel(
+ name='PersonListBlockInline',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('person', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='person_list_block', to='organization-network.Person', verbose_name='Person')),
+ ('person_list_block', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='person_autocomplete', to='organization-network.PersonListBlock', verbose_name='Person List Block')),
+ ],
+ options={
+ 'verbose_name': 'Person autocomplete',
+ },
+ ),
+ migrations.AddField(
+ model_name='pagecustompersonlistblockinline',
+ name='person_list_block',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='page_custom', to='organization-network.PersonListBlock', verbose_name='Person List Block'),
+ ),
+ ]
--- /dev/null
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-09-19 17:12
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('organization-network', '0013_auto_20160919_1829'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='personlistblockinline',
+ name='person',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='person_list_block_inline', to='organization-network.Person', verbose_name='Person'),
+ ),
+ migrations.AlterField(
+ model_name='personlistblockinline',
+ name='person_list_block',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='person_list_block_inline', to='organization-network.PersonListBlock', verbose_name='Person List Block'),
+ ),
+ ]
--- /dev/null
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-09-19 17:14
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('organization-network', '0014_auto_20160919_1912'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='personlistblockinline',
+ name='person',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='person_list', to='organization-network.Person', verbose_name='Person'),
+ ),
+ ]
--- /dev/null
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-09-19 17:23
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('organization-network', '0015_auto_20160919_1914'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='personlistblockinline',
+ name='person',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='coucou', to='organization-network.Person', verbose_name='Person'),
+ ),
+ ]
--- /dev/null
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-09-19 17:27
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('organization-network', '0016_auto_20160919_1923'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='pagecustompersonlistblockinline',
+ name='page',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='page_custom_person_list_block_inline', to='organization-pages.CustomPage', verbose_name='Page'),
+ ),
+ migrations.AlterField(
+ model_name='pagecustompersonlistblockinline',
+ name='person_list_block',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='page_custom_person_list_block_inline', to='organization-network.PersonListBlock', verbose_name='Person List Block'),
+ ),
+ migrations.AlterField(
+ model_name='personlistblockinline',
+ name='person',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='person_list_block_inline', to='organization-network.Person', verbose_name='Person'),
+ ),
+ ]
from organization.core.models import *
from organization.media.models import *
+from organization.pages.models import CustomPage
from django_countries.fields import CountryField
# from .nationalities.fields import NationalityField
('female', _('female')),
]
+PERSON_LIST_STYLE_CHOICES = [
+ ('square', _('square')),
+ ('circle', _('circle')),
+]
+
TITLE_CHOICES = [
('Dr', _('Dr')),
('Prof', _('Prof')),
person = models.ForeignKey(Person, verbose_name=_('person'), related_name='blocks', blank=True, null=True, on_delete=models.SET_NULL)
-class PersonListBlock(Titled):
+class PageCustomPersonListBlockInline(Titled):
- page = models.ForeignKey(Page, verbose_name=_('Page'), related_name='person_list_block', blank=True, null=True, on_delete=models.SET_NULL)
+ page = models.ForeignKey(CustomPage, verbose_name=_('Page'), related_name='page_custom_person_list_block_inline', blank=True, null=True, on_delete=models.SET_NULL)
+ person_list_block = models.ForeignKey("PersonListBlock", verbose_name=_('Person List Block'), related_name='page_custom_person_list_block_inline', blank=True, null=True)
class Meta:
verbose_name = _('Person List')
return self.title
-class PersonAutocomplete(models.Model):
+class PersonListBlock(Titled):
- person_list_block = models.ForeignKey(PersonListBlock, verbose_name=_('Person List Block'), related_name='person_autocomplete', blank=True, null=True, on_delete=models.SET_NULL)
- person = models.ForeignKey(Person, verbose_name=_('Person'), related_name='person_list_block', blank=True, null=True, on_delete=models.SET_NULL)
+ style = models.CharField(_('style'), max_length=16, choices=PERSON_LIST_STYLE_CHOICES)
class Meta:
- verbose_name = _('Person autocomplete')
+ verbose_name = _('Person List')
+
+ def __str__(self):
+ return self.title
-class DynamicPersonList(DynamicContent, Orderable):
+class PersonListBlockInline(models.Model):
- person_list_block = models.ForeignKey("PersonListBlock", verbose_name=_('Person List Block'), related_name='dynamic_person_list', blank=True, null=True, on_delete=models.SET_NULL)
+ person_list_block = models.ForeignKey(PersonListBlock, verbose_name=_('Person List Block'), related_name='person_list_block_inline', blank=True, null=True, on_delete=models.SET_NULL)
+ person = models.ForeignKey(Person, verbose_name=_('Person'), related_name='person_list_block_inline', blank=True, null=True, on_delete=models.SET_NULL)
class Meta:
- verbose_name = 'Dynamic Content Person List'
+ verbose_name = _('Person autocomplete')
+
class ActivityStatus(Named):
pass
-@register(DynamicPersonList)
-class DynamicPersonListTranslationOptions(TranslationOptions):
+@register(PersonListBlock)
+class PersonListBlockTranslationOptions(TranslationOptions):
pass
-@register(PersonListBlock)
-class PersonListBlockTranslationOptions(TranslationOptions):
+@register(PersonListBlockInline)
+class PersonListBlockInlineTranslationOptions(TranslationOptions):
pass
-@register(PersonAutocomplete)
-class PersonListBlockTranslationOptions(TranslationOptions):
+@register(PageCustomPersonListBlockInline)
+class PageCustomPersonListBlockInlineTranslationOptions(TranslationOptions):
pass
)
from organization.pages.forms import *
from organization.network.forms import *
+from organization.network.models import PageCustomPersonListBlockInline
class PageBlockInline(StackedDynamicInlineAdmin):
model = PageLink
-class PersonListBlockAutocompleteInline(TabularDynamicInlineAdmin):
+class PersonListBlockAutocompleteInlineAdmin(TabularDynamicInlineAdmin):
- model = PersonListBlock
- form = PagePersonListForm
+ model = PageCustomPersonListBlockInline
+ form = PageCustomPersonListForm
class CustomPageAdmin(PageAdmin):
- inlines = [PageBlockInline, PageImageInline,
+ inlines = [PageBlockInline,
+ PageImageInline,
PageAudioInline,
PageVideoInline,
PageLinkInline,
- PersonListBlockAutocompleteInline,
+ PersonListBlockAutocompleteInlineAdmin,
]
+++ /dev/null
-# -*- coding: utf-8 -*-
-# Generated by Django 1.9.7 on 2016-09-16 09:29
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-import django.db.models.deletion
-import mezzanine.core.fields
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('contenttypes', '0002_remove_content_type_name'),
- ('pages', '0004_auto_20160804_1547'),
- ('organization-pages', '0002_auto_20160914_1838'),
- ]
-
- operations = [
- migrations.CreateModel(
- name='DynamicPersonListBlockPage',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('_order', mezzanine.core.fields.OrderField(null=True, verbose_name='Order')),
- ('object_id', models.PositiveIntegerField(editable=False, null=True, verbose_name='related object')),
- ('content_type', models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType', verbose_name='content type')),
- ('page', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='person_list_blocks', to='pages.Page', verbose_name='Page')),
- ],
- options={
- 'ordering': ('_order',),
- 'verbose_name': 'Person List',
- },
- ),
- ]
return reverse("organization-home")
verbose_name = _('Person List')
-
-
-class DynamicPersonListBlockPage(DynamicContent, Orderable):
-
- page = models.ForeignKey(Page, verbose_name=_('Page'), related_name='person_list_blocks', blank=True, null=True, on_delete=models.SET_NULL)
-
- class Meta:
- verbose_name = _('Person List')
class PageLinkTranslationOptions(TranslationOptions):
pass
-
-@register(DynamicPersonListBlockPage)
-class DynamicPersonListBlockPageTranslationOptions(TranslationOptions):
-
- pass
--- /dev/null
+<h3>{{ person_list_block.title }}</h3>
+<p>{{ person_list_block.description }}</p>
+{{ person_list_block.persons.all }}
+{% for person in person_list_block.person %}
+-----------{{person}}---------
+ <h4>{{ person.person_title }}</h4>
+{% endfor %}
--- /dev/null
+<h3>{{ person_list_block.title }}</h3>
+<p>{{ person_list_block.description }}</p>
+{% for person in person_list_block.person %}
+-----------{{person}}---------
+ <h4>{{ person.person_title }}</h4>
+{% endfor %}
{% endwith %}
{% endblock %}
+{% block page_person_list %}
+{% with page.custompage.person_list_block.all as person_list_blocks %}
+ {% for person_list_block in person_list_blocks %}
+ {% with person_list_block.person_list_block as person_list_block %}
+ {% with "network/inc/person/list_"|add:person_list_block.style|add:"_style.html" as template %}
+ {% include template %}
+ {% endwith %}
+
+ {% endwith %}
+ {% endfor %}
+{% endwith %}
+
+{% endblock %}
+
{% block page_sub_content %}
{% with page.custompage.blocks.all as blocks %}
{% include "core/inc/block.html" %}
{% endblock %}
{% block page_link %}
{% endblock %}
+ {% block page_person_list %}
+ {% endblock %}
{% block page_sub_content %}
{% endblock %}
{% block page_related_content %}