Skip to content

Commit

Permalink
Merge pull request #63 from molgen/order-publications-v2
Browse files Browse the repository at this point in the history
Order publications v2
  • Loading branch information
donald authored Aug 3, 2021
2 parents 7182bb2 + 9c28f4d commit d13ff0f
Show file tree
Hide file tree
Showing 11 changed files with 946 additions and 266 deletions.
1 change: 1 addition & 0 deletions config/settings/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@
'wagtail.contrib.table_block',
'wagtail.contrib.modeladmin',
'wagtail.api.v2',
'wagtailorderable',

'wagtail_modeltranslation',
'wagtail_modeltranslation.makemigrations',
Expand Down
17 changes: 9 additions & 8 deletions locale/de/LC_MESSAGES/django.po
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-04-21 14:09+0200\n"
"POT-Creation-Date: 2021-08-02 10:50+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
Expand Down Expand Up @@ -699,6 +699,7 @@ msgstr[1] ""
#: bla/lib/python3.7/site-packages/django/forms/formsets.py:386
#: bla/lib/python3.7/site-packages/django/~orms/formsets.py:379
#: bla/lib/python3.7/site-packages/django/~orms/formsets.py:386
#: bla/lib/python3.7/site-packages/wagtailorderable/modeladmin/mixins.py:82
msgid "Order"
msgstr ""

Expand Down Expand Up @@ -1522,7 +1523,7 @@ msgid "Wagtail search tests"
msgstr ""

#: bla/lib/python3.7/site-packages/wagtail/tests/settings.py:239
#: config/settings/base.py:220
#: config/settings/base.py:221
msgid "English"
msgstr "Englisch"

Expand Down Expand Up @@ -1696,7 +1697,7 @@ msgstr ""

#: bla/lib/python3.7/site-packages/wagtailvideos/models.py:84
#: mpicms/base/models.py:46 mpicms/personal/models.py:68
#: mpicms/personal/models.py:95 mpicms/publications/models.py:15
#: mpicms/personal/models.py:95 mpicms/publications/models.py:23
msgid "title"
msgstr "Titel"

Expand Down Expand Up @@ -2000,7 +2001,7 @@ msgstr ""
msgid "Edit this video"
msgstr ""

#: config/settings/base.py:221
#: config/settings/base.py:222
msgid "German"
msgstr "Deutsch"

Expand Down Expand Up @@ -2191,7 +2192,7 @@ msgid "news entries"
msgstr "Neuigkeiten"

#: mpicms/personal/models.py:25 mpicms/personal/models.py:31
#: mpicms/publications/models.py:16
#: mpicms/publications/models.py:24
msgid "groups"
msgstr "Gruppen"

Expand Down Expand Up @@ -2258,15 +2259,15 @@ msgstr "Gruppen"
msgid "Positions"
msgstr "Positionen"

#: mpicms/publications/models.py:17
#: mpicms/publications/models.py:25
msgid "authors"
msgstr "Autoren"

#: mpicms/publications/models.py:18
#: mpicms/publications/models.py:26
msgid "source"
msgstr "Quellen"

#: mpicms/publications/wagtail_hooks.py:10
#: mpicms/publications/wagtail_hooks.py:11
#: mpicms/templates/publications/components/list.html:4
msgid "Publications"
msgstr "Publikationen"
Expand Down
22 changes: 22 additions & 0 deletions mpicms/publications/migrations/0004_publication_sort_order.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from django.db import migrations, models

def init_sort_order(apps, schema_editor):
Publication = apps.get_model('publications', 'Publication')
for publication in Publication.objects.all():
publication.sort_order = -publication.pk
publication.save(update_fields=['sort_order'])

class Migration(migrations.Migration):

dependencies = [
('publications', '0003_auto_20190905_1120'),
]

operations = [
migrations.AddField(
model_name='publication',
name='sort_order',
field=models.IntegerField(blank=True, editable=False, null=True),
),
migrations.RunPython(init_sort_order, reverse_code=migrations.RunPython.noop),
]
10 changes: 9 additions & 1 deletion mpicms/publications/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,20 @@
from wagtail.search import index
from wagtail.core.fields import RichTextField
from wagtail.snippets.models import register_snippet
from wagtailorderable.models import Orderable

from modelcluster.models import ClusterableModel

class LatestFirstOrderable(Orderable):
def save(self, *args, **kwargs):
if self.pk is None:
self.sort_order = self.__class__.objects.aggregate(models.Min('sort_order'))['sort_order__min'] - 1
super(Orderable, self).save(*args, **kwargs)
class Meta:
abstract = True

@register_snippet
class Publication(index.Indexed, ClusterableModel):
class Publication(index.Indexed, ClusterableModel, LatestFirstOrderable):
title = RichTextField(_('title'), features=['bold', 'italic', 'link'])
groups = RichTextField(_('groups'), features=['bold', 'italic', 'link'], blank=True)
authors = RichTextField(_('authors'), features=['bold', 'italic', 'link'], blank=True)
Expand Down
2 changes: 1 addition & 1 deletion mpicms/publications/templatetags/publication_tags.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@
@register.inclusion_tag('publications/components/list.html', takes_context=True)
def publication_list(context):
return {
'publications': Publication.objects.order_by('-pk')[:5],
'publications': Publication.objects.order_by('sort_order')[:5],
'request': context['request'],
}
4 changes: 3 additions & 1 deletion mpicms/publications/wagtail_hooks.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
from django.utils.translation import gettext_lazy as _

from wagtail.contrib.modeladmin.options import ModelAdmin, modeladmin_register
from wagtailorderable.modeladmin.mixins import OrderableMixin

from .models import Publication


class PublicationAdmin(ModelAdmin):
class PublicationAdmin(OrderableMixin, ModelAdmin):
model = Publication
menu_label = _('Publications')
menu_icon = 'doc-full'
search_fields = ['title', 'authors', 'source', 'doi', 'groups']
ordering = ['sort_order']


modeladmin_register(PublicationAdmin)
1 change: 1 addition & 0 deletions requirements/base.in
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ psycopg2-binary
# Wagtail
wagtail
wagtail-modeltranslation
wagtail-orderable

markdown
pygments
Expand Down
175 changes: 126 additions & 49 deletions requirements/base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,52 +4,129 @@
#
# pip-compile --output-file=base.txt base.in
#
anyascii==0.1.7 # via wagtail
arrow==0.14.7 # via ics
asgiref==3.3.1 # via django
beautifulsoup4==4.8.2 # via wagtail
certifi==2020.12.5 # via requests
chardet==4.0.0 # via requests
django-auth-ldap==2.3.0 # via -r base.in
django-enumchoicefield==2.0.0 # via wagtailvideos
django-filter==2.4.0 # via wagtail
django-modelcluster==5.1 # via wagtail
django-modeltranslation==0.16.2 # via wagtail-modeltranslation
django-taggit==1.3.0 # via wagtail
django-treebeard==4.5.1 # via wagtail
django==3.1.7 # via -r base.in, django-auth-ldap, django-enumchoicefield, django-filter, django-modeltranslation, django-taggit, django-treebeard, djangorestframework, wagtail, wagtailvideos
djangorestframework==3.12.2 # via wagtail
draftjs-exporter==2.1.7 # via wagtail
et-xmlfile==1.0.1 # via openpyxl
html5lib==1.1 # via wagtail
ics==0.7 # via -r base.in
idna==2.10 # via requests
importlib-metadata==3.7.3 # via markdown
l18n==2020.6.1 # via wagtail
markdown==3.3.4 # via -r base.in
openpyxl==3.0.7 # via tablib
pillow==8.1.2 # via wagtail
psycopg2-binary==2.8.6 # via -r base.in
pyasn1-modules==0.2.8 # via python-ldap
pyasn1==0.4.8 # via pyasn1-modules, python-ldap
pygments==2.8.1 # via -r base.in
python-dateutil==2.8.1 # via arrow, ics
python-ldap==3.3.1 # via django-auth-ldap
pytz==2021.1 # via django, django-modelcluster, l18n
requests==2.25.1 # via wagtail
six==1.15.0 # via django-modeltranslation, html5lib, ics, l18n, python-dateutil
soupsieve==2.2.1 # via beautifulsoup4
sqlparse==0.4.1 # via django
tablib[xls,xlsx]==3.0.0 # via wagtail
tatsu==4.4.0 # via ics
typing-extensions==3.7.4.3 # via importlib-metadata
urllib3==1.26.4 # via requests
wagtail-modeltranslation==0.10.17 # via -r base.in
wagtail==2.12.3 # via -r base.in, wagtail-modeltranslation, wagtailvideos
git+https://github.com/neon-jungle/wagtailvideos@3cd93351b67c7d72a0b6b4ac74a62410d5e6bccb # via -r base.in
webencodings==0.5.1 # via html5lib
willow==1.4 # via wagtail
xlrd==2.0.1 # via tablib
xlsxwriter==1.3.7 # via wagtail
xlwt==1.3.0 # via tablib
zipp==3.4.1 # via importlib-metadata
anyascii==0.1.7
# via wagtail
arrow==0.14.7
# via ics
asgiref==3.3.1
# via django
beautifulsoup4==4.8.2
# via wagtail
certifi==2020.12.5
# via requests
chardet==4.0.0
# via requests
django-auth-ldap==2.3.0
# via -r base.in
django-enumchoicefield==2.0.0
# via wagtailvideos
django-filter==2.4.0
# via wagtail
django-modelcluster==5.1
# via wagtail
django-modeltranslation==0.16.2
# via wagtail-modeltranslation
django-taggit==1.3.0
# via wagtail
django-treebeard==4.5.1
# via wagtail
django==3.1.7
# via
# -r base.in
# django-auth-ldap
# django-enumchoicefield
# django-filter
# django-modeltranslation
# django-taggit
# django-treebeard
# djangorestframework
# wagtail
# wagtailvideos
djangorestframework==3.12.2
# via wagtail
draftjs-exporter==2.1.7
# via wagtail
et-xmlfile==1.0.1
# via openpyxl
html5lib==1.1
# via wagtail
ics==0.7
# via -r base.in
idna==2.10
# via requests
importlib-metadata==3.7.3
# via markdown
l18n==2020.6.1
# via wagtail
markdown==3.3.4
# via -r base.in
openpyxl==3.0.7
# via tablib
pillow==8.1.2
# via wagtail
psycopg2-binary==2.8.6
# via -r base.in
pyasn1-modules==0.2.8
# via python-ldap
pyasn1==0.4.8
# via
# pyasn1-modules
# python-ldap
pygments==2.8.1
# via -r base.in
python-dateutil==2.8.1
# via
# arrow
# ics
python-ldap==3.3.1
# via django-auth-ldap
pytz==2021.1
# via
# django
# django-modelcluster
# l18n
requests==2.25.1
# via wagtail
six==1.15.0
# via
# django-modeltranslation
# html5lib
# ics
# l18n
# python-dateutil
soupsieve==2.2.1
# via beautifulsoup4
sqlparse==0.4.1
# via django
tablib[xls,xlsx]==3.0.0
# via wagtail
tatsu==4.4.0
# via ics
typing-extensions==3.7.4.3
# via importlib-metadata
urllib3==1.26.4
# via requests
wagtail-modeltranslation==0.10.17
# via -r base.in
wagtail-orderable==1.0.3
# via -r base.in
wagtail==2.12.3
# via
# -r base.in
# wagtail-modeltranslation
# wagtail-orderable
# wagtailvideos
git+https://github.com/neon-jungle/wagtailvideos@3cd93351b67c7d72a0b6b4ac74a62410d5e6bccb
# via -r base.in
webencodings==0.5.1
# via html5lib
willow==1.4
# via wagtail
xlrd==2.0.1
# via tablib
xlsxwriter==1.3.7
# via wagtail
xlwt==1.3.0
# via tablib
zipp==3.4.1
# via importlib-metadata
Loading

0 comments on commit d13ff0f

Please sign in to comment.