Skip to content

Commit fc79caf

Browse files
committed
feat(api): add script to update event source
1 parent 53cf51a commit fc79caf

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
from django.core.management.base import BaseCommand
2+
3+
from api.models import Event
4+
5+
6+
class Command(BaseCommand):
7+
help = "Update event sources based on name prefix and auto-generated status"
8+
9+
def handle(self, *args, **options):
10+
queryset = Event.objects.filter(auto_generated=True, source=0)
11+
self.stdout.write(
12+
self.style.NOTICE(
13+
f"{queryset.count()} events will be assigned a source (GDACS or Manual Input) based on name prefix."
14+
)
15+
)
16+
to_update = []
17+
for event in queryset.iterator():
18+
if event.name.startswith("GDACS"):
19+
event.source = Event.EventSource.GDACS
20+
self.stdout.write(self.style.NOTICE(f"Updating {event.name} source to {Event.EventSource.GDACS.label}"))
21+
else:
22+
event.source = Event.EventSource.Manual_Input
23+
self.stdout.write(self.style.NOTICE(f"Updating {event.name} source to {Event.EventSource.Manual_Input.label}"))
24+
event.auto_generated = False
25+
to_update.append(event)
26+
27+
updated_event = Event.objects.bulk_update(to_update, ["source", "auto_generated"])
28+
self.stdout.write(self.style.SUCCESS(f"Total {updated_event} Events source have been updated successfully."))

0 commit comments

Comments
 (0)