Skip to content

Commit c1ddf36

Browse files
committed
use update_or_create for meeting rejected additional tops
1 parent e19a584 commit c1ddf36

File tree

1 file changed

+31
-17
lines changed

1 file changed

+31
-17
lines changed

ecs/meetings/triggers.py

+31-17
Original file line numberDiff line numberDiff line change
@@ -9,60 +9,74 @@
99

1010
def _flush_cache(meeting):
1111
from ecs.meetings.views import submission_list
12+
1213
flush_meeting_page_cache(meeting, submission_list)
1314

15+
1416
@receiver(signals.on_meeting_start)
1517
def on_meeting_start(sender, **kwargs):
16-
meeting = kwargs['meeting']
18+
meeting = kwargs["meeting"]
1719
_flush_cache(meeting)
1820

21+
1922
@receiver(signals.on_meeting_end)
2023
def on_meeting_end(sender, **kwargs):
21-
meeting = kwargs['meeting']
24+
meeting = kwargs["meeting"]
2225

2326
for vote in Vote.objects.filter(top__meeting=meeting):
24-
vote.save() # trigger post_save for all votes
27+
vote.save() # trigger post_save for all votes
2528

26-
for top in meeting.additional_entries.exclude(pk__in=Vote.objects.exclude(top=None).values('top__pk').query):
27-
vote = Vote.objects.create(top=top, result='3a',
28-
submission_form=top.submission.current_submission_form)
29+
for top in meeting.additional_entries.exclude(
30+
pk__in=Vote.objects.exclude(top=None).values("top__pk").query
31+
):
32+
# update eventual existing vote from vote preperation
33+
vote, created = Vote.objects.update_or_create(
34+
submission_form=top.submission.current_submission_form,
35+
defaults={"top": top, "result": "3a", "is_draft": False},
36+
)
2937
top.is_open = False
3038
top.save()
3139

3240
_flush_cache(meeting)
3341

42+
3443
@receiver(signals.on_meeting_date_changed)
3544
def on_meeting_date_changed(sender, **kwargs):
36-
meeting = kwargs['meeting']
45+
meeting = kwargs["meeting"]
3746
_flush_cache(meeting)
3847

48+
3949
@receiver(signals.on_meeting_top_jump)
4050
def on_meeting_top_jump(sender, **kwargs):
41-
meeting = kwargs['meeting']
42-
timetable_entry = kwargs['timetable_entry']
51+
meeting = kwargs["meeting"]
52+
timetable_entry = kwargs["timetable_entry"]
4353
_flush_cache(meeting)
4454

55+
4556
@receiver(signals.on_meeting_top_add)
4657
def on_meeting_top_add(sender, **kwargs):
47-
meeting = kwargs['meeting']
48-
timetable_entry = kwargs['timetable_entry']
58+
meeting = kwargs["meeting"]
59+
timetable_entry = kwargs["timetable_entry"]
4960
_flush_cache(meeting)
5061

62+
5163
@receiver(signals.on_meeting_top_delete)
5264
def on_meeting_top_delete(sender, **kwargs):
53-
meeting = kwargs['meeting']
54-
timetable_entry = kwargs['timetable_entry']
65+
meeting = kwargs["meeting"]
66+
timetable_entry = kwargs["timetable_entry"]
5567
_flush_cache(meeting)
5668

69+
5770
@receiver(signals.on_meeting_top_index_change)
5871
def on_meeting_top_index_change(sender, **kwargs):
59-
meeting = kwargs['meeting']
60-
timetable_entry = kwargs['timetable_entry']
72+
meeting = kwargs["meeting"]
73+
timetable_entry = kwargs["timetable_entry"]
6174
_flush_cache(meeting)
6275

6376

6477
@receiver(token_marked_deleted)
6578
def workflow_token_marked_deleted(sender, **kwargs):
6679
if sender.task:
67-
Participation.objects.filter(entry__meeting__started=None,
68-
task=sender.task).delete()
80+
Participation.objects.filter(
81+
entry__meeting__started=None, task=sender.task
82+
).delete()

0 commit comments

Comments
 (0)