Eine Menge Aufräumarbeiten.
* Eine Testsuite um Mahrjong Ranking Berechnungen zu testen * Erste Arbeiten um die Workarounds aus dem "utils" Paket los zu werden. * Vieles am Code umformatiert für PEP8 conformität
This commit is contained in:
@@ -13,10 +13,10 @@ def upcoming_events(request):
|
||||
next_event = cache.get('next_event', False)
|
||||
upcoming_events = cache.get('upcoming_events', False)
|
||||
|
||||
if current_event == False:
|
||||
if not current_event:
|
||||
current_event = Event.objects.current_event()
|
||||
cache.set('current_event', current_event, 360)
|
||||
if next_event == False:
|
||||
if not next_event:
|
||||
next_event = Event.objects.next_event()
|
||||
cache.set('next_event', next_event, 360)
|
||||
|
||||
|
||||
1291
src/events/fixtures/test_events.json
Normal file
1291
src/events/fixtures/test_events.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,6 @@ from django.utils.translation import ugettext as _
|
||||
from django.contrib.auth import get_user_model
|
||||
|
||||
from . import models
|
||||
from utils.html5.widgets import DateTimeInput
|
||||
|
||||
|
||||
user_query = get_user_model().objects.all()
|
||||
@@ -47,16 +46,17 @@ class EventForm(forms.ModelForm):
|
||||
|
||||
start = forms.DateTimeField(
|
||||
label=_('start'), required=True,
|
||||
widget=DateTimeInput() # widget=SplitDateTimeWidget()
|
||||
widget=forms.SplitHiddenDateTimeWidget()
|
||||
)
|
||||
end = forms.DateTimeField(
|
||||
label=_('end'), required=False,
|
||||
widget=DateTimeInput() # widget=SplitDateTimeWidget()
|
||||
widget=forms.SplitDateTimeWidget()
|
||||
)
|
||||
|
||||
class Meta(object):
|
||||
model = models.Event
|
||||
exclude = ('event_count', 'event_series', )
|
||||
|
||||
|
||||
EventSeriesFormset = forms.inlineformset_factory(
|
||||
models.Event, models.Event, fields=('start', 'end'), form=EventForm)
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: kasu.events\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-09-28 00:25+0200\n"
|
||||
"POT-Creation-Date: 2017-05-10 23:16+0200\n"
|
||||
"PO-Revision-Date: 2016-09-28 00:24+0200\n"
|
||||
"Last-Translator: Christian Berg <xeniac@posteo.at>\n"
|
||||
"Language-Team: Kasu <verein@kasu.at>\n"
|
||||
@@ -19,58 +19,58 @@ msgstr ""
|
||||
"X-Generator: Poedit 1.8.9\n"
|
||||
"X-Translated-Using: django-rosetta 0.7.6\n"
|
||||
|
||||
#: src/events/admin.py:16 src/events/models.py:109
|
||||
#: events/admin.py:16 events/models.py:114
|
||||
msgid "Event Series"
|
||||
msgstr "Veranstaltungsreihen"
|
||||
|
||||
#: src/events/forms.py:23
|
||||
#: events/forms.py:23
|
||||
msgid "Images"
|
||||
msgstr "Bilder"
|
||||
|
||||
#: src/events/forms.py:49
|
||||
#: events/forms.py:49
|
||||
msgid "start"
|
||||
msgstr "Beginn"
|
||||
|
||||
#: src/events/forms.py:53
|
||||
#: events/forms.py:53
|
||||
msgid "end"
|
||||
msgstr "Ende"
|
||||
|
||||
#: src/events/models.py:82 src/events/models.py:186 src/events/models.py:228
|
||||
#: events/models.py:84 events/models.py:207 events/models.py:260
|
||||
msgid "Name"
|
||||
msgstr "Name"
|
||||
|
||||
#: src/events/models.py:83 src/events/models.py:187 src/events/models.py:233
|
||||
#: events/models.py:85 events/models.py:208 events/models.py:268
|
||||
msgid "Description"
|
||||
msgstr "Beschreibung"
|
||||
|
||||
#: src/events/models.py:85 src/events/templates/events/event_detail.html:31
|
||||
#: src/events/templates/events/event_detail.html:74
|
||||
#: src/events/templates/events/event_list.html:28
|
||||
#: src/events/templates/events/photo_upload.html:13
|
||||
#: events/models.py:87 events/templates/events/event_detail.html:29
|
||||
#: events/templates/events/event_detail.html:87
|
||||
#: events/templates/events/event_list.html:28
|
||||
#: events/templates/events/photo_upload.html:13
|
||||
msgid "Start"
|
||||
msgstr "Beginn"
|
||||
|
||||
#: src/events/models.py:86 src/events/templates/events/event_detail.html:32
|
||||
#: src/events/templates/events/event_detail.html:75
|
||||
#: events/models.py:88 events/templates/events/event_detail.html:30
|
||||
#: events/templates/events/event_detail.html:89
|
||||
msgid "End"
|
||||
msgstr "Ende"
|
||||
|
||||
#: src/events/models.py:87 src/events/models.py:195
|
||||
#: src/events/templates/events/event_detail.html:36
|
||||
#: src/events/templates/events/event_detail.html:70
|
||||
#: src/events/templates/events/event_detail.html:76
|
||||
#: events/models.py:89 events/models.py:216
|
||||
#: events/templates/events/event_detail.html:34
|
||||
#: events/templates/events/event_detail.html:80
|
||||
#: events/templates/events/event_detail.html:92
|
||||
msgid "Homepage"
|
||||
msgstr "Homepage"
|
||||
|
||||
#: src/events/models.py:89 src/events/models.py:189 src/events/models.py:229
|
||||
#: events/models.py:91 events/models.py:210 events/models.py:262
|
||||
msgid "Image"
|
||||
msgstr "Bild"
|
||||
|
||||
#: src/events/models.py:96
|
||||
#: events/models.py:98
|
||||
msgid "Mahjong Tournament"
|
||||
msgstr "Mahjong Turnier"
|
||||
|
||||
#: src/events/models.py:98
|
||||
#: events/models.py:100
|
||||
msgid ""
|
||||
"This event is a tournament, different rules apply for the kyu "
|
||||
"ranking."
|
||||
@@ -78,11 +78,11 @@ msgstr ""
|
||||
"Diese Veranstaltung ist ein Turnier, es gelten andere Regeln für das Kyu "
|
||||
"Ranking."
|
||||
|
||||
#: src/events/models.py:102
|
||||
#: events/models.py:104
|
||||
msgid "Mahjong Season"
|
||||
msgstr "Mahjong Saison"
|
||||
|
||||
#: src/events/models.py:110
|
||||
#: events/models.py:115
|
||||
msgid ""
|
||||
"Wenn dieser Event zu einer Veranstaltungsreihe gehört werden Ort, "
|
||||
"Beschreibung, Bild und Homepage von dem hier angegebenen Event "
|
||||
@@ -91,236 +91,244 @@ msgstr ""
|
||||
"Wenn dieser Termin zu einer Veranstaltungsreihe gehört werden Ort, "
|
||||
"Beschreibung, Bild und Homepage von dem hier angegebenen Event übernommen."
|
||||
|
||||
#: src/events/models.py:117
|
||||
#: events/models.py:124 events/models.py:226 events/models.py:290
|
||||
msgid "first created at"
|
||||
msgstr ""
|
||||
|
||||
#: events/models.py:129 events/models.py:231 events/models.py:295
|
||||
msgid "latest updated at"
|
||||
msgstr ""
|
||||
|
||||
#: events/models.py:134
|
||||
msgid "Event"
|
||||
msgstr "Termin"
|
||||
|
||||
#: src/events/models.py:118
|
||||
#: events/models.py:135
|
||||
msgid "Events"
|
||||
msgstr "Termine"
|
||||
|
||||
#: src/events/models.py:131
|
||||
#: events/models.py:148
|
||||
msgid "A event can't end before it had started"
|
||||
msgstr "Eine Veranstaltung kann nicht enden bevor sie begonnen hat"
|
||||
|
||||
#: src/events/models.py:196
|
||||
#: events/models.py:217
|
||||
msgid "Postal Code"
|
||||
msgstr "Postleitzahl"
|
||||
|
||||
#: src/events/models.py:197
|
||||
#: events/models.py:218
|
||||
msgid "Street Address"
|
||||
msgstr "Straße"
|
||||
|
||||
#: src/events/models.py:198
|
||||
#: events/models.py:219
|
||||
msgid "Locality"
|
||||
msgstr "Ort"
|
||||
|
||||
#: src/events/models.py:199
|
||||
#: events/models.py:220
|
||||
msgid "Country"
|
||||
msgstr "Land"
|
||||
|
||||
#: src/events/models.py:202
|
||||
#: events/models.py:235
|
||||
msgid "Venue"
|
||||
msgstr "Veranstaltungsort"
|
||||
|
||||
#: src/events/models.py:203
|
||||
#: events/models.py:236
|
||||
msgid "Venues"
|
||||
msgstr "Veranstaltungsorte"
|
||||
|
||||
#: src/events/models.py:239
|
||||
#: events/models.py:274
|
||||
msgid "Startpage"
|
||||
msgstr "Startseite"
|
||||
|
||||
#: src/events/models.py:242
|
||||
#: events/models.py:277
|
||||
msgid "Display this Photo on the Startpage Teaser"
|
||||
msgstr "Foto als Teaser auf der Startseite verwenden."
|
||||
|
||||
#: src/events/models.py:244
|
||||
#: events/models.py:279
|
||||
msgid "Published on"
|
||||
msgstr "Veröffentlicht am"
|
||||
|
||||
#: src/events/models.py:246
|
||||
#: events/models.py:281
|
||||
msgid "Number of views"
|
||||
msgstr "Wie oft gesehen"
|
||||
|
||||
#: src/events/models.py:258 src/events/templates/events/event_archive.html:38
|
||||
#: src/events/templates/events/event_list.html:18
|
||||
#: events/models.py:306 events/templates/events/event_archive.html:38
|
||||
#: events/templates/events/event_list.html:18
|
||||
msgid "Event Image"
|
||||
msgstr "Veranstaltungsbild"
|
||||
|
||||
#: src/events/models.py:259
|
||||
#: events/models.py:307
|
||||
msgid "Event Images"
|
||||
msgstr "Veranstaltungsbilder"
|
||||
|
||||
#: src/events/templates/events/event_archive.html:5
|
||||
#: src/events/templates/events/event_archive.html:9
|
||||
#: events/templates/events/event_archive.html:5
|
||||
#: events/templates/events/event_archive.html:9
|
||||
msgid "Event Archive"
|
||||
msgstr "Veranstaltungsarchiv"
|
||||
|
||||
#: src/events/templates/events/event_archive.html:42
|
||||
#: src/events/templates/events/event_detail.html:72
|
||||
#: src/events/templates/events/event_list.html:22
|
||||
#: src/events/templates/events/photo_detail.html:48
|
||||
#: events/templates/events/event_archive.html:42
|
||||
#: events/templates/events/event_detail.html:85
|
||||
#: events/templates/events/event_list.html:22
|
||||
#: events/templates/events/photo_detail.html:53
|
||||
msgid "Date"
|
||||
msgstr "Datum"
|
||||
|
||||
#: src/events/templates/events/event_archive.html:47
|
||||
#: events/templates/events/event_archive.html:47
|
||||
msgid "Time"
|
||||
msgstr "Zeit"
|
||||
|
||||
#: src/events/templates/events/event_archive.html:49
|
||||
#: src/events/templates/events/photo_upload.html:16
|
||||
#: events/templates/events/event_archive.html:49
|
||||
#: events/templates/events/photo_upload.html:16
|
||||
msgid "from"
|
||||
msgstr "von"
|
||||
|
||||
#: src/events/templates/events/event_archive.html:49
|
||||
#: src/events/templates/events/photo_upload.html:16
|
||||
#: events/templates/events/event_archive.html:49
|
||||
#: events/templates/events/photo_upload.html:16
|
||||
msgid "to"
|
||||
msgstr "bis"
|
||||
|
||||
#: src/events/templates/events/event_archive.html:57
|
||||
#: src/events/templates/events/event_detail.html:33
|
||||
#: src/events/templates/events/event_detail.html:62
|
||||
#: src/events/templates/events/event_list.html:32
|
||||
#: src/events/templates/events/photo_upload.html:23
|
||||
#: events/templates/events/event_archive.html:57
|
||||
#: events/templates/events/event_detail.html:31
|
||||
#: events/templates/events/event_detail.html:72
|
||||
#: events/templates/events/event_list.html:32
|
||||
#: events/templates/events/photo_upload.html:23
|
||||
msgid "Location"
|
||||
msgstr "Ort"
|
||||
|
||||
#: src/events/templates/events/event_archive.html:58
|
||||
#: src/events/templates/events/event_list.html:35
|
||||
#: src/events/templates/events/photo_upload.html:25
|
||||
#: src/events/templates/events/photo_upload.html:26
|
||||
#: events/templates/events/event_archive.html:58
|
||||
#: events/templates/events/event_list.html:35
|
||||
#: events/templates/events/photo_upload.html:25
|
||||
#: events/templates/events/photo_upload.html:26
|
||||
msgid "Comments"
|
||||
msgstr "Kommentare"
|
||||
|
||||
#: src/events/templates/events/event_archive.html:59
|
||||
#: src/events/templates/events/event_detail.html:38
|
||||
#: src/events/templates/events/event_detail.html:48
|
||||
#: src/events/templates/events/photo_upload.html:28
|
||||
#: src/events/templates/events/photo_upload.html:29
|
||||
#: events/templates/events/event_archive.html:59
|
||||
#: events/templates/events/event_detail.html:36
|
||||
#: events/templates/events/event_detail.html:48
|
||||
#: events/templates/events/photo_upload.html:28
|
||||
#: events/templates/events/photo_upload.html:29
|
||||
msgid "Photos"
|
||||
msgstr "Fotos"
|
||||
|
||||
#: src/events/templates/events/event_archive.html:60
|
||||
#: src/events/templates/events/event_archive.html:61
|
||||
#: src/events/templates/events/event_detail.html:37
|
||||
#: src/events/templates/events/event_detail.html:49
|
||||
#: events/templates/events/event_archive.html:60
|
||||
#: events/templates/events/event_archive.html:61
|
||||
#: events/templates/events/event_detail.html:35
|
||||
#: events/templates/events/event_detail.html:51
|
||||
msgid "Hanchans"
|
||||
msgstr "Hanchans"
|
||||
|
||||
#: src/events/templates/events/event_detail.html:39
|
||||
#: events/templates/events/event_detail.html:37
|
||||
msgid "tourney"
|
||||
msgstr "Turnier"
|
||||
|
||||
#: src/events/templates/events/event_detail.html:39
|
||||
#: events/templates/events/event_detail.html:37
|
||||
msgid "other rules apply here"
|
||||
msgstr "hier gelten andere Regeln"
|
||||
|
||||
#: src/events/templates/events/event_detail.html:47
|
||||
#: events/templates/events/event_detail.html:45
|
||||
msgid "Info"
|
||||
msgstr "Info"
|
||||
|
||||
#: src/events/templates/events/event_detail.html:50
|
||||
#: events/templates/events/event_detail.html:54
|
||||
msgid "Mai-Star Games"
|
||||
msgstr "Mai-Star Spiele"
|
||||
|
||||
#: src/events/templates/events/event_detail.html:52
|
||||
#: events/templates/events/event_detail.html:57
|
||||
msgid "Event Ranking"
|
||||
msgstr "Veranstaltungs Wertung"
|
||||
|
||||
#: src/events/templates/events/event_detail.html:90
|
||||
#: events/templates/events/event_detail.html:100
|
||||
msgid "Share on Facebook"
|
||||
msgstr "Auf Facebook teilen"
|
||||
|
||||
#: src/events/templates/events/event_detail.html:96
|
||||
#: events/templates/events/event_detail.html:104
|
||||
msgid "Share on Google+"
|
||||
msgstr "Auf Google+ teilen"
|
||||
|
||||
#: src/events/templates/events/event_detail.html:100
|
||||
#: events/templates/events/event_detail.html:109
|
||||
msgid "Share on Twitter"
|
||||
msgstr "Auf Twitter teilen"
|
||||
|
||||
#: src/events/templates/events/event_detail.html:104
|
||||
#: events/templates/events/event_detail.html:113
|
||||
msgid "Show on Google Maps"
|
||||
msgstr "Auf Google Maps zeigen"
|
||||
|
||||
#: src/events/templates/events/event_detail.html:121
|
||||
#: src/events/templates/events/event_form.html:9 src/events/views.py:106
|
||||
#: events/templates/events/event_detail.html:127
|
||||
#: events/templates/events/event_form.html:9 events/views.py:106
|
||||
msgid "Edit Event"
|
||||
msgstr "Termin bearbeiten"
|
||||
|
||||
#: src/events/templates/events/event_detail.html:124
|
||||
#: events/templates/events/event_detail.html:131
|
||||
msgid "Add Dates"
|
||||
msgstr "Termine hinzufügen"
|
||||
|
||||
#: src/events/templates/events/event_form.html:9
|
||||
#: src/events/templates/events/page.html:9 src/events/views.py:108
|
||||
#: events/templates/events/event_form.html:9
|
||||
#: events/templates/events/page.html:9 events/views.py:108
|
||||
msgid "Add Event"
|
||||
msgstr "Neuer Termin"
|
||||
|
||||
#: src/events/templates/events/event_form.html:19
|
||||
#: src/events/templates/events/photo_list.html:35
|
||||
#: events/templates/events/event_form.html:19
|
||||
#: events/templates/events/photo_list.html:35
|
||||
msgid "reset"
|
||||
msgstr "Zurücksetzen"
|
||||
|
||||
#: src/events/templates/events/event_form.html:20
|
||||
#: src/events/templates/events/eventseries_form.html:23
|
||||
#: events/templates/events/event_form.html:20
|
||||
#: events/templates/events/eventseries_form.html:25
|
||||
msgid "save"
|
||||
msgstr "Speichern"
|
||||
|
||||
#: src/events/templates/events/event_list.html:4
|
||||
#: src/events/templates/events/event_list.html:5
|
||||
#: events/templates/events/event_list.html:4
|
||||
#: events/templates/events/event_list.html:5
|
||||
msgid "Upcoming Events"
|
||||
msgstr "Bevorstehende Veranstaltungen"
|
||||
|
||||
#: src/events/templates/events/eventseries_form.html:22
|
||||
#: events/templates/events/eventseries_form.html:24
|
||||
msgid "back"
|
||||
msgstr "Zurück"
|
||||
|
||||
#: src/events/templates/events/photo_confirm_delete.html:17
|
||||
#: events/templates/events/photo_confirm_delete.html:17
|
||||
msgid "Cancel"
|
||||
msgstr "Abbrechen"
|
||||
|
||||
#: src/events/templates/events/photo_confirm_delete.html:21
|
||||
#: src/events/templates/events/photo_list.html:21
|
||||
#: events/templates/events/photo_confirm_delete.html:21
|
||||
#: events/templates/events/photo_list.html:21
|
||||
msgid "Delete"
|
||||
msgstr "Löschen"
|
||||
|
||||
#: src/events/templates/events/photo_detail.html:39
|
||||
#: events/templates/events/photo_detail.html:44
|
||||
msgid "previous"
|
||||
msgstr "Zurück"
|
||||
|
||||
#: src/events/templates/events/photo_detail.html:47
|
||||
#: events/templates/events/photo_detail.html:52
|
||||
msgid "Photographer"
|
||||
msgstr "Fotograf"
|
||||
|
||||
#: src/events/templates/events/photo_detail.html:53
|
||||
#: events/templates/events/photo_detail.html:58
|
||||
msgid "share on"
|
||||
msgstr "Teile auf"
|
||||
|
||||
#: src/events/templates/events/photo_detail.html:76
|
||||
#: events/templates/events/photo_detail.html:81
|
||||
msgid "download"
|
||||
msgstr "Herunterladen"
|
||||
|
||||
#: src/events/templates/events/photo_detail.html:77
|
||||
#: events/templates/events/photo_detail.html:82
|
||||
msgid "Rotate counter clockwise"
|
||||
msgstr "mit dem Uhrzeiger drehen"
|
||||
|
||||
#: src/events/templates/events/photo_detail.html:78
|
||||
#: events/templates/events/photo_detail.html:83
|
||||
msgid "Rotate clockwise"
|
||||
msgstr "gegen den Uhrzeiger drehen"
|
||||
|
||||
#: src/events/templates/events/photo_detail.html:79
|
||||
#: events/templates/events/photo_detail.html:84
|
||||
msgid "Save"
|
||||
msgstr "Speichern"
|
||||
|
||||
#: src/events/templates/events/photo_list.html:36
|
||||
#: src/events/templates/events/photo_upload.html:35
|
||||
#: src/events/templates/events/photo_upload.html:49
|
||||
#: events/templates/events/photo_list.html:36
|
||||
#: events/templates/events/photo_upload.html:35
|
||||
#: events/templates/events/photo_upload.html:49
|
||||
msgid "Upload"
|
||||
msgstr "Hochladen"
|
||||
|
||||
#: src/events/views.py:209
|
||||
#: events/views.py:209
|
||||
msgid "Event does not exist"
|
||||
msgstr "Veranstaltung gibt es nicht"
|
||||
|
||||
|
||||
@@ -13,12 +13,14 @@ class Migration(migrations.Migration):
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name='photo',
|
||||
options={'ordering': ['created_date'], 'get_latest_by': 'created_date', 'verbose_name': 'Veranstaltungsbild', 'verbose_name_plural': 'Veranstaltungsbilder'},
|
||||
options={'ordering': ['created_date'], 'get_latest_by': 'created_date',
|
||||
'verbose_name': 'Veranstaltungsbild', 'verbose_name_plural': 'Veranstaltungsbilder'},
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='event',
|
||||
name='mahjong_season',
|
||||
field=models.PositiveSmallIntegerField(null=True, verbose_name='Mahjong Saison', blank=True),
|
||||
field=models.PositiveSmallIntegerField(
|
||||
null=True, verbose_name='Mahjong Saison', blank=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='photo',
|
||||
@@ -28,11 +30,13 @@ class Migration(migrations.Migration):
|
||||
migrations.AlterField(
|
||||
model_name='photo',
|
||||
name='on_startpage',
|
||||
field=models.BooleanField(default=False, help_text='Foto als Teaser auf der Startseite verwenden.', db_index=True, verbose_name='Startseite'),
|
||||
field=models.BooleanField(
|
||||
default=False, help_text='Foto als Teaser auf der Startseite verwenden.', db_index=True, verbose_name='Startseite'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='photo',
|
||||
name='views',
|
||||
field=models.PositiveIntegerField(default=0, verbose_name='Wie oft gesehen', editable=False),
|
||||
field=models.PositiveIntegerField(
|
||||
default=0, verbose_name='Wie oft gesehen', editable=False),
|
||||
),
|
||||
]
|
||||
|
||||
@@ -16,34 +16,40 @@ class Migration(migrations.Migration):
|
||||
migrations.AddField(
|
||||
model_name='event',
|
||||
name='date_created',
|
||||
field=models.DateTimeField(auto_now_add=True, null=True, verbose_name='first created at', db_index=True),
|
||||
field=models.DateTimeField(
|
||||
auto_now_add=True, null=True, verbose_name='first created at', db_index=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='event',
|
||||
name='date_modified',
|
||||
field=models.DateTimeField(default=datetime.datetime(2016, 10, 12, 20, 24, 39, 910492, tzinfo=utc), verbose_name='latest updated at', auto_now=True),
|
||||
field=models.DateTimeField(default=datetime.datetime(
|
||||
2016, 10, 12, 20, 24, 39, 910492, tzinfo=utc), verbose_name='latest updated at', auto_now=True),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='location',
|
||||
name='date_created',
|
||||
field=models.DateTimeField(auto_now_add=True, null=True, verbose_name='first created at', db_index=True),
|
||||
field=models.DateTimeField(
|
||||
auto_now_add=True, null=True, verbose_name='first created at', db_index=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='location',
|
||||
name='date_modified',
|
||||
field=models.DateTimeField(default=datetime.datetime(2016, 10, 12, 20, 24, 44, 566305, tzinfo=utc), verbose_name='latest updated at', auto_now=True),
|
||||
field=models.DateTimeField(default=datetime.datetime(
|
||||
2016, 10, 12, 20, 24, 44, 566305, tzinfo=utc), verbose_name='latest updated at', auto_now=True),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='photo',
|
||||
name='date_created',
|
||||
field=models.DateTimeField(auto_now_add=True, null=True, verbose_name='first created at', db_index=True),
|
||||
field=models.DateTimeField(
|
||||
auto_now_add=True, null=True, verbose_name='first created at', db_index=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='photo',
|
||||
name='date_modified',
|
||||
field=models.DateTimeField(default=datetime.datetime(2016, 10, 12, 20, 24, 50, 509970, tzinfo=utc), verbose_name='latest updated at', auto_now=True),
|
||||
field=models.DateTimeField(default=datetime.datetime(
|
||||
2016, 10, 12, 20, 24, 50, 509970, tzinfo=utc), verbose_name='latest updated at', auto_now=True),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
|
||||
@@ -346,7 +346,6 @@ class Photo(models.Model):
|
||||
)[0]
|
||||
except IndexError:
|
||||
return None
|
||||
return self.get_next_by_created_date(event=self.event)
|
||||
|
||||
@property
|
||||
def previous_photo(self):
|
||||
@@ -366,4 +365,3 @@ class Photo(models.Model):
|
||||
)[0]
|
||||
except IndexError:
|
||||
return None
|
||||
return self.get_previous_by_created_date(event=self.event)
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
from django.contrib.sitemaps import Sitemap
|
||||
from django.utils import timezone
|
||||
from .models import Event, Photo
|
||||
from .models import Event
|
||||
from .models import Photo
|
||||
|
||||
|
||||
class EventSitemap(Sitemap):
|
||||
changefreq = "never"
|
||||
priority = 0.6
|
||||
protocol = 'https'
|
||||
|
||||
def items(self):
|
||||
@@ -13,9 +13,8 @@ class EventSitemap(Sitemap):
|
||||
|
||||
def priority(self, event):
|
||||
delta = timezone.now() - event.start
|
||||
delta = abs(delta.days / 300.0 )
|
||||
delta = abs(delta.days / 300.0)
|
||||
return max(1 - delta, 0.1)
|
||||
|
||||
def lastmod(self, event):
|
||||
return event.date_modified
|
||||
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
<p class="warning">
|
||||
<strong>Achtung! Das ist eine Veranstaltungsreihe!</strong> Diese kann man im Moment nur im Admin-Interface vernünfig bearbeiten.<br />
|
||||
Du bearbeitest hier den "Hauptevent" der Reihe ({{event.event_set.count}}). Alle Änderungen (abgesehen von Name, Start und Ende) werden von den darauf folgendem Veranstaltungen übernommen.
|
||||
</strong>
|
||||
</p>
|
||||
{% endif %}
|
||||
<p class="buttonbar">
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
{%trans "Upload" %}</a>
|
||||
{% endif %}
|
||||
</p>
|
||||
</div></div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
<form method="post" enctype="multipart/form-data">
|
||||
|
||||
@@ -6,7 +6,8 @@ from django.db.models import Q
|
||||
from django.contrib.auth.decorators import permission_required
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.core.urlresolvers import reverse
|
||||
from extra_views import ModelFormSetView, InlineFormSetView
|
||||
from extra_views import InlineFormSetView
|
||||
from extra_views import ModelFormSetView
|
||||
from django.http import HttpResponse, Http404
|
||||
from django.shortcuts import redirect
|
||||
from django.utils import timezone
|
||||
|
||||
Reference in New Issue
Block a user