From c13195b306273bdad099e33988e67addf9dc0ca5 Mon Sep 17 00:00:00 2001 From: Fredrik Jonsson <frjo@xdeb.org> Date: Fri, 7 Sep 2018 14:45:28 +0200 Subject: [PATCH] Disable auto_* on date fields so imported dates are used. --- .../activity/management/commands/migrate_comments.py | 4 ++++ .../commands/migrate_concept_determinations.py | 7 +++++++ .../commands/migrate_proposal_determinations.py | 10 ++++++++++ .../apply/funds/management/commands/migration_base.py | 5 +++++ 4 files changed, 26 insertions(+) diff --git a/opentech/apply/activity/management/commands/migrate_comments.py b/opentech/apply/activity/management/commands/migrate_comments.py index 59bfd12b1..d03da81e7 100644 --- a/opentech/apply/activity/management/commands/migrate_comments.py +++ b/opentech/apply/activity/management/commands/migrate_comments.py @@ -39,6 +39,10 @@ class Command(BaseCommand): type='comment', visibility='internal', ) + # Disable auto_* on date fields so imported dates are used. + for field in activity._meta.local_fields: + if field.name == "timestamp": + field.auto_now_add = False try: activity.save() self.stdout.write(f"Processed \"{comment['subject']}\" ({comment['cid']})") diff --git a/opentech/apply/determinations/management/commands/migrate_concept_determinations.py b/opentech/apply/determinations/management/commands/migrate_concept_determinations.py index 7e61f0b05..ce73c9362 100644 --- a/opentech/apply/determinations/management/commands/migrate_concept_determinations.py +++ b/opentech/apply/determinations/management/commands/migrate_concept_determinations.py @@ -67,6 +67,13 @@ class Command(BaseCommand): except Determination.DoesNotExist: determination = Determination(drupal_id=node['nid']) + # Disable auto_* on date fields so imported dates are used. + for field in determination._meta.local_fields: + if field.name == "created_at": + field.auto_now_add = False + elif field.name == "updated_at": + field.auto_now = False + # TODO timezone? determination.created_at = datetime.fromtimestamp(int(node['created']), timezone.utc) determination.updated_at = datetime.fromtimestamp(int(node['changed']), timezone.utc) diff --git a/opentech/apply/determinations/management/commands/migrate_proposal_determinations.py b/opentech/apply/determinations/management/commands/migrate_proposal_determinations.py index b503d0ef7..d8afec47b 100644 --- a/opentech/apply/determinations/management/commands/migrate_proposal_determinations.py +++ b/opentech/apply/determinations/management/commands/migrate_proposal_determinations.py @@ -119,6 +119,13 @@ class Command(BaseCommand): except Determination.DoesNotExist: determination = Determination(drupal_id=node['nid']) + # Disable auto_* on date fields so imported dates are used. + for field in determination._meta.local_fields: + if field.name == "created_at": + field.auto_now_add = False + elif field.name == "updated_at": + field.auto_now = False + # TODO timezone? determination.created_at = datetime.fromtimestamp(int(node['created']), timezone.utc) determination.updated_at = datetime.fromtimestamp(int(node['changed']), timezone.utc) @@ -202,6 +209,9 @@ class Command(BaseCommand): return value def get_user(self, uid): + # Dan Blah hade one admin account uid 52, all should be set up uid 2 in new system. + if uid == '52': + uid = '2' try: User = get_user_model() return User.objects.get(drupal_id=uid) diff --git a/opentech/apply/funds/management/commands/migration_base.py b/opentech/apply/funds/management/commands/migration_base.py index d469324f5..547f8b205 100644 --- a/opentech/apply/funds/management/commands/migration_base.py +++ b/opentech/apply/funds/management/commands/migration_base.py @@ -80,6 +80,11 @@ class MigrateCommand(BaseCommand): except ApplicationSubmission.DoesNotExist: submission = ApplicationSubmission(drupal_id=node['nid']) + # Disable auto_* on date fields so imported dates are used. + for field in submission._meta.local_fields: + if field.name == "submit_time": + field.auto_now_add = False + # TODO timezone? submission.submit_time = datetime.fromtimestamp(int(node['created']), timezone.utc) submission.user = self.get_user(node['uid']) -- GitLab