Import memberships
This commit is contained in:
parent
4ce9aa0d4a
commit
60a6b3c704
|
@ -1,15 +1,14 @@
|
||||||
#!/usr/env/bin python3
|
#!/usr/env/bin python3
|
||||||
|
|
||||||
|
import json
|
||||||
|
import datetime
|
||||||
|
import re
|
||||||
|
|
||||||
from django.core.management.base import BaseCommand
|
from django.core.management.base import BaseCommand
|
||||||
from django.core.management import call_command
|
from django.core.management import call_command
|
||||||
import psycopg2 as pg
|
import psycopg2 as pg
|
||||||
import psycopg2.extras as pge
|
import psycopg2.extras as pge
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
|
|
||||||
import json
|
|
||||||
import datetime
|
|
||||||
import re
|
|
||||||
|
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from django.utils.timezone import make_aware
|
from django.utils.timezone import make_aware
|
||||||
from django.db import IntegrityError
|
from django.db import IntegrityError
|
||||||
|
@ -19,7 +18,7 @@ from note.models import Note
|
||||||
from note.models import Alias
|
from note.models import Alias
|
||||||
from note.models import TemplateCategory, TransactionTemplate, \
|
from note.models import TemplateCategory, TransactionTemplate, \
|
||||||
Transaction, RecurrentTransaction, SpecialTransaction
|
Transaction, RecurrentTransaction, SpecialTransaction
|
||||||
from member.models import Club
|
from member.models import Club, Membership
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Script d'import de la nk15:
|
Script d'import de la nk15:
|
||||||
|
@ -213,7 +212,8 @@ def import_transaction(cur):
|
||||||
raise Exception("You should'nt be there")
|
raise Exception("You should'nt be there")
|
||||||
SpecialTransaction.objects.create(**obj_dict)
|
SpecialTransaction.objects.create(**obj_dict)
|
||||||
elif ttype == "adhésion":
|
elif ttype == "adhésion":
|
||||||
print("adhesion not supported yet")
|
# Since BDE and Kfet are distinct, don't import membership transaction and use our custom transactions.
|
||||||
|
pass
|
||||||
elif ttype == "invitation":
|
elif ttype == "invitation":
|
||||||
m = re.search("Invitation (.*?) \((.*?)\)", row["description"])
|
m = re.search("Invitation (.*?) \((.*?)\)", row["description"])
|
||||||
if m is None:
|
if m is None:
|
||||||
|
@ -357,6 +357,38 @@ def import_activity_entries(cur):
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
|
|
||||||
|
@transaction.atomic
|
||||||
|
def import_memberships(cur):
|
||||||
|
cur.execute("SELECT * FROM adhesions ORDER by id")
|
||||||
|
n = cur.rowcount
|
||||||
|
bde = Club.objects.get(name="BDE")
|
||||||
|
kfet = Club.objects.get(name="Kfet")
|
||||||
|
for idx, row in enumerate(cur):
|
||||||
|
update_line(idx, n, MAP_IDBDE[row["idbde"]].username)
|
||||||
|
bde_dict = {
|
||||||
|
"user": MAP_IDBDE[row["idbde"]],
|
||||||
|
"club": bde,
|
||||||
|
"date_start": row["date"][10:], # Only date, not time
|
||||||
|
"fee": 500,
|
||||||
|
}
|
||||||
|
kfet_dict = {
|
||||||
|
"user": MAP_IDBDE[row["idbde"]],
|
||||||
|
"club": kfet,
|
||||||
|
"date_start": row["date"][:10], # Only date, not time
|
||||||
|
"fee": 1500 if row["date"].month in [3, 4, 5, 6, 7] else 3500,
|
||||||
|
}
|
||||||
|
try:
|
||||||
|
with transaction.atomic():
|
||||||
|
bde_membership = Membership.objects.get_or_create(**bde_dict)
|
||||||
|
kfet_membership = Membership.objects.get_or_create(**kfet_dict)
|
||||||
|
bde_membership.transaction.created_at = row["date"]
|
||||||
|
bde_membership.transaction.save()
|
||||||
|
kfet_membership.transaction.created_at = row["date"]
|
||||||
|
kfet_membership.transaction.save()
|
||||||
|
except IntegrityError as e:
|
||||||
|
raise e
|
||||||
|
|
||||||
|
|
||||||
class Command(BaseCommand):
|
class Command(BaseCommand):
|
||||||
"""
|
"""
|
||||||
Command for importing the database of NK15.
|
Command for importing the database of NK15.
|
||||||
|
@ -372,6 +404,7 @@ class Command(BaseCommand):
|
||||||
parser.add_argument('-t', '--transactions', action='store_true', help="import transaction")
|
parser.add_argument('-t', '--transactions', action='store_true', help="import transaction")
|
||||||
parser.add_argument('-al', '--aliases', action='store_true', help="import aliases")
|
parser.add_argument('-al', '--aliases', action='store_true', help="import aliases")
|
||||||
parser.add_argument('-ac', '--activities', action='store_true', help="import activities")
|
parser.add_argument('-ac', '--activities', action='store_true', help="import activities")
|
||||||
|
parser.add_argument('-M', '--memberships', action='store_true', help="import memberships")
|
||||||
parser.add_argument('-s', '--save', action='store', help="save mapping of idbde")
|
parser.add_argument('-s', '--save', action='store', help="save mapping of idbde")
|
||||||
parser.add_argument('-m', '--map', action='store', help="import mapping of idbde")
|
parser.add_argument('-m', '--map', action='store', help="import mapping of idbde")
|
||||||
parser.add_argument('-d', '--nk15db', action='store', default='nk15', help='NK15 database name')
|
parser.add_argument('-d', '--nk15db', action='store', default='nk15', help='NK15 database name')
|
||||||
|
@ -408,9 +441,14 @@ class Command(BaseCommand):
|
||||||
if kwargs["activities"]:
|
if kwargs["activities"]:
|
||||||
import_activities(cur)
|
import_activities(cur)
|
||||||
self.print_success("activities imported\n")
|
self.print_success("activities imported\n")
|
||||||
|
import_activity_entries(cur)
|
||||||
|
self.print_success("activity entries imported\n")
|
||||||
if kwargs["aliases"]:
|
if kwargs["aliases"]:
|
||||||
import_aliases(cur)
|
import_aliases(cur)
|
||||||
self.print_success("aliases imported\n")
|
self.print_success("aliases imported\n")
|
||||||
if kwargs["transactions"]:
|
if kwargs["transactions"]:
|
||||||
import_transaction(cur)
|
import_transaction(cur)
|
||||||
self.print_success("transaction imported\n")
|
self.print_success("transaction imported\n")
|
||||||
|
if kwargs["memberships"]:
|
||||||
|
import_memberships(cur)
|
||||||
|
self.print_success("memberships imported\n")
|
||||||
|
|
Loading…
Reference in New Issue