From ac3b23b4d23e7943fbfe6bfc6529edbc0ca9c0f2 Mon Sep 17 00:00:00 2001 From: Wille Marcel Date: Mon, 15 Apr 2024 12:21:53 -0300 Subject: [PATCH 1/4] Set backfill_changesets default behaviour to backfill the last day changesets --- .../commands/backfill_changesets.py | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/osmchadjango/changeset/management/commands/backfill_changesets.py b/osmchadjango/changeset/management/commands/backfill_changesets.py index e4a626f3..180a84dc 100644 --- a/osmchadjango/changeset/management/commands/backfill_changesets.py +++ b/osmchadjango/changeset/management/commands/backfill_changesets.py @@ -1,4 +1,4 @@ -from datetime import date +from datetime import date, datetime, timedelta from django.core.management.base import BaseCommand @@ -11,19 +11,24 @@ class Command(BaseCommand): Start and end dates should be in YYYY-MM-DD format.""" def add_arguments(self, parser): - parser.add_argument("start_date", nargs=1, type=str) - parser.add_argument("end_date", nargs=1, type=str) + parser.add_argument("--start_date", type=str) + parser.add_argument("--end_date", type=str) def handle(self, *args, **options): + # if start_date is not defined, set it as yesterday try: - end_date = date.fromisoformat(options["end_date"][0]) + start_date = date.fromisoformat(options["start_date"][0]) except (ValueError, TypeError): - end_date = date.today() + start_date = date.today() - timedelta(days=1) + # if end_date is not defined, set it as today + try: + end_date = date.fromisoformat(options["start_date"][0]) + except (ValueError, TypeError): + end_date = datetime.now() cl = Changeset.objects.filter( - date__gte=date.fromisoformat(options["start_date"][0]), - date__lte=end_date - ).values_list('id') + date__gte=start_date, date__lte=end_date + ).values_list("id") cl = [c[0] for c in cl] id = cl[len(cl) - 1] From 71241f05be0f9f8a8bdb214418c14f772014b411 Mon Sep 17 00:00:00 2001 From: Wille Marcel Date: Mon, 15 Apr 2024 12:28:58 -0300 Subject: [PATCH 2/4] Fix test command arguments --- osmchadjango/changeset/tests/test_management_commands.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/osmchadjango/changeset/tests/test_management_commands.py b/osmchadjango/changeset/tests/test_management_commands.py index 9a06ff98..42c7cf87 100644 --- a/osmchadjango/changeset/tests/test_management_commands.py +++ b/osmchadjango/changeset/tests/test_management_commands.py @@ -111,7 +111,9 @@ def setUp(self): ChangesetFactory(id='1238', date=datetime(2021,1,3)) def test_backfill(self): - call_command("backfill_changesets", '2021-01-01', '2021-01-04') + call_command( + "backfill_changesets", "--start_date=2021-01-01", "--end_date=2021-01-04" + ) cl = [i[0] for i in Changeset.objects.all().values_list('id')] self.assertEqual(len(cl), 5) self.assertIn(1235, cl) From e2e3101982781589f8aee00da9f8cd24f22394b5 Mon Sep 17 00:00:00 2001 From: Wille Marcel Date: Mon, 15 Apr 2024 12:34:08 -0300 Subject: [PATCH 3/4] Fix typo --- .../changeset/management/commands/backfill_changesets.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osmchadjango/changeset/management/commands/backfill_changesets.py b/osmchadjango/changeset/management/commands/backfill_changesets.py index 180a84dc..6bea9682 100644 --- a/osmchadjango/changeset/management/commands/backfill_changesets.py +++ b/osmchadjango/changeset/management/commands/backfill_changesets.py @@ -22,7 +22,7 @@ def handle(self, *args, **options): start_date = date.today() - timedelta(days=1) # if end_date is not defined, set it as today try: - end_date = date.fromisoformat(options["start_date"][0]) + end_date = date.fromisoformat(options["end_date"][0]) except (ValueError, TypeError): end_date = datetime.now() From 1306c982823a63fc39c1364c772752aedd0cb042 Mon Sep 17 00:00:00 2001 From: Wille Marcel Date: Mon, 15 Apr 2024 13:38:10 -0300 Subject: [PATCH 4/4] Fix start_date and end_date access --- .../changeset/management/commands/backfill_changesets.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/osmchadjango/changeset/management/commands/backfill_changesets.py b/osmchadjango/changeset/management/commands/backfill_changesets.py index 6bea9682..51993c40 100644 --- a/osmchadjango/changeset/management/commands/backfill_changesets.py +++ b/osmchadjango/changeset/management/commands/backfill_changesets.py @@ -17,12 +17,12 @@ def add_arguments(self, parser): def handle(self, *args, **options): # if start_date is not defined, set it as yesterday try: - start_date = date.fromisoformat(options["start_date"][0]) + start_date = date.fromisoformat(options["start_date"]) except (ValueError, TypeError): start_date = date.today() - timedelta(days=1) # if end_date is not defined, set it as today try: - end_date = date.fromisoformat(options["end_date"][0]) + end_date = date.fromisoformat(options["end_date"]) except (ValueError, TypeError): end_date = datetime.now()