parent
3b6f15accd
commit
e1ad30e481
5 changed files with 119 additions and 29 deletions
@ -1,20 +1,36 @@ |
||||
from datetime import date |
||||
from django.db import models |
||||
from django.contrib.auth.models import User |
||||
from django.utils.timezone import now |
||||
|
||||
from . import old_models |
||||
|
||||
class Member(models.Model): |
||||
user = models.OneToOneField(User, on_delete=models.PROTECT) |
||||
user = models.OneToOneField(User, blank=True, null=True, on_delete=models.PROTECT) |
||||
first_name = models.CharField(max_length=32) |
||||
last_name = models.CharField(max_length=32) |
||||
old_member_id = models.IntegerField(null=True, blank=True) |
||||
|
||||
set_details = models.BooleanField(default=False) |
||||
preferred_name = models.CharField(max_length=32, blank=True) |
||||
phone = models.CharField(max_length=32, blank=True) |
||||
current_start_date = models.DateField(auto_now_add=True, blank=True, null=True) |
||||
application_date = models.DateField(auto_now_add=True, blank=True, null=True) |
||||
current_start_date = models.DateField(default=date.today, blank=True, null=True) |
||||
application_date = models.DateField(default=date.today, blank=True, null=True) |
||||
vetted_date = models.DateField(blank=True, null=True) |
||||
monthly_fees = models.IntegerField(default=55, blank=True, null=True) |
||||
emergency_contact_name = models.CharField(max_length=64, blank=True) |
||||
emergency_contact_phone = models.CharField(max_length=32, blank=True) |
||||
|
||||
class Transaction(models.Model): |
||||
user = models.ForeignKey(User, related_name='transactions', blank=True, null=True, on_delete=models.PROTECT) |
||||
recorder = models.ForeignKey(User, related_name='+', blank=True, null=True, on_delete=models.PROTECT) |
||||
|
||||
member_id = models.IntegerField(blank=True, null=True) |
||||
date = models.DateTimeField(default=now) |
||||
amount = models.DecimalField(max_digits=7, decimal_places=2) |
||||
reference_number = models.CharField(max_length=32, blank=True, null=True) |
||||
memo = models.TextField(blank=True, null=True) |
||||
number_of_membership_months = models.TextField(blank=True, null=True) |
||||
payment_method = models.TextField(blank=True, null=True) |
||||
category = models.TextField(blank=True, null=True) |
||||
account_type = models.TextField(blank=True, null=True) |
||||
info_source = models.TextField(blank=True, null=True) |
||||
|
@ -0,0 +1,69 @@ |
||||
import django, sys, os |
||||
os.environ['DJANGO_SETTINGS_MODULE'] = 'apiserver.settings' |
||||
django.setup() |
||||
|
||||
from apiserver.api import models, old_models |
||||
|
||||
MEMBER_FIELDS = [ |
||||
'id', |
||||
'preferred_name', |
||||
'phone', |
||||
'current_start_date', |
||||
'application_date', |
||||
'vetted_date', |
||||
'monthly_fees', |
||||
'emergency_contact_name', |
||||
'emergency_contact_phone', |
||||
] |
||||
|
||||
TRANSACTION_FIELDS = [ |
||||
'id', |
||||
'member_id', |
||||
'date', |
||||
'amount', |
||||
'reference_number', |
||||
'memo', |
||||
'number_of_membership_months', |
||||
'payment_method', |
||||
'category', |
||||
'account_type', |
||||
'info_source', |
||||
] |
||||
|
||||
print('Deleting all members...') |
||||
models.Member.objects.all().delete() |
||||
|
||||
print('Importing old members...') |
||||
old_members = old_models.Members.objects.using('old_portal').all() |
||||
|
||||
for m in old_members: |
||||
new_member = {} |
||||
|
||||
for f in MEMBER_FIELDS: |
||||
new_member[f] = m.__dict__.get(f, None) |
||||
|
||||
models.Member.objects.create(**new_member) |
||||
print('Imported #{} - {} {}'.format( |
||||
m.id, m.first_name, m.last_name |
||||
)) |
||||
|
||||
|
||||
print('Deleting all transactions...') |
||||
models.Transaction.objects.all().delete() |
||||
|
||||
print('Importing old transactions...') |
||||
old_transactions = old_models.Transactions.objects.using('old_portal').all() |
||||
|
||||
for t in old_transactions: |
||||
new_transaction = {} |
||||
|
||||
for f in TRANSACTION_FIELDS: |
||||
new_transaction[f] = t.__dict__.get(f, None) |
||||
|
||||
models.Transaction.objects.create(**new_transaction) |
||||
print('Imported #{} - {} {}'.format( |
||||
t.id, t.member_id, t.category |
||||
)) |
||||
|
||||
|
||||
print('Done.') |
Loading…
Reference in new issue