mirror of
https://gitlab.crans.org/bde/nk20
synced 2024-11-30 04:13:01 +00:00
add boutons import
This commit is contained in:
parent
126686ab03
commit
b18e5b03a4
@ -5,10 +5,11 @@ from django.utils import timezone
|
|||||||
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 collections
|
|
||||||
from django.core.exceptions import ValidationError
|
|
||||||
|
|
||||||
|
import collections
|
||||||
|
|
||||||
|
from django.core.exceptions import ValidationError
|
||||||
|
from django.db import IntegrityError
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from note.models import Note, NoteSpecial, NoteUser, NoteClub
|
from note.models import Note, NoteSpecial, NoteUser, NoteClub
|
||||||
from note.models import Transaction, TransactionTemplate, TransactionCategory, TransactionType
|
from note.models import Transaction, TransactionTemplate, TransactionCategory, TransactionType
|
||||||
@ -64,46 +65,44 @@ def import_comptes(cur,map_idbde):
|
|||||||
else:
|
else:
|
||||||
passwd_nk15 = ''
|
passwd_nk15 = ''
|
||||||
try:
|
try:
|
||||||
user = User.objects.create(
|
obj_dict = {
|
||||||
username =row["pseudo"],
|
"username": row["pseudo"],
|
||||||
password = passwd_nk15,
|
"password": passwd_nk15,
|
||||||
first_name = row["nom"],
|
"first_name": row["nom"],
|
||||||
last_name = row["prenom"],
|
"last_name": row["prenom"],
|
||||||
email = row["mail"],
|
"email": row["mail"],
|
||||||
)
|
}
|
||||||
|
user = User.objects.create(**obj_dict)
|
||||||
#sanitize duplicate aliases (nk12)
|
#sanitize duplicate aliases (nk12)
|
||||||
except ValidationError as e:
|
except ValidationError as e:
|
||||||
if e.code == 'same_alias':
|
if e.code == 'same_alias':
|
||||||
user = User.objects.create(
|
obj_dict["username"] = row["pseudo"]+str(row["idbde"])
|
||||||
username = row["pseudo"]+str(row["idbde"]),
|
user = User.objects.create(**obj_dict)
|
||||||
password = row["passwd"] if row["passwd"] != '*|*' else '',
|
|
||||||
first_name = row["nom"],
|
|
||||||
last_name = row["prenom"],
|
|
||||||
email = row["mail"],
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
raise(e)
|
raise(e)
|
||||||
else:
|
else:
|
||||||
pass
|
pass
|
||||||
profile = Profile.objects.create(
|
obj_dict ={
|
||||||
phone_number = row["tel"],
|
"phone_number": row["tel"],
|
||||||
address = row["adresse"],
|
"address": row["adresse"],
|
||||||
paid = row["normalien"],
|
"paid": row["normalien"],
|
||||||
user = user,
|
"user": user,
|
||||||
)
|
}
|
||||||
|
profile = Profile.objects.create(**obj_dict)
|
||||||
note = user.note
|
note = user.note
|
||||||
note.balance = row["solde"]
|
note.balance = row["solde"]
|
||||||
|
|
||||||
obj_list =[user, profile, note]
|
obj_list =[user, profile, note]
|
||||||
else: # club
|
else: # club
|
||||||
club,c = Club.objects.get_or_create(pk=pkclub,
|
obj_dict = {
|
||||||
name = row["pseudo"],
|
"pk":pkclub,
|
||||||
email = row["mail"],
|
"name": row["pseudo"],
|
||||||
membership_duration = "396 00:00:00",
|
"email": row["mail"],
|
||||||
membership_start = "213 00:00:00",
|
"membership_duration": "396 00:00:00",
|
||||||
membership_end = "273 00:00:00",
|
"membership_start": "213 00:00:00",
|
||||||
membership_fee =0,
|
"membership_end": "273 00:00:00",
|
||||||
)
|
"membership_fee": 0,
|
||||||
|
}
|
||||||
|
club,c = Club.objects.get_or_create(**obj_dict)
|
||||||
pkclub +=1
|
pkclub +=1
|
||||||
note = club.note
|
note = club.note
|
||||||
note.balance = row["solde"]
|
note.balance = row["solde"]
|
||||||
@ -111,27 +110,46 @@ def import_comptes(cur,map_idbde):
|
|||||||
for obj in obj_list:
|
for obj in obj_list:
|
||||||
obj.save()
|
obj.save()
|
||||||
map_idbde[row["idbde"]] = note.pk
|
map_idbde[row["idbde"]] = note.pk
|
||||||
#
|
|
||||||
return map_idbde
|
return map_idbde
|
||||||
|
|
||||||
|
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def import_boutons(cur,map_idbde):
|
def import_boutons(cur,map_idbde):
|
||||||
cur.execute("SELECT * FROM boutons;")
|
cur.execute("SELECT * FROM boutons;")
|
||||||
for row in cur:
|
for row in cur:
|
||||||
cat, created = TransactionCategory.objects.get_or_create(name=row["categorie"])
|
cat, created = TransactionCategory.objects.get_or_create(name=row["categorie"])
|
||||||
|
try:
|
||||||
button = TransactionTemplate.objects.create(pk=row["id"],
|
obj_dict = {
|
||||||
name=row["label"],
|
"pk": row["id"],
|
||||||
amount=row["montant"],
|
"name": row["label"],
|
||||||
destination_id=map_idbde[row["destinataire"]],
|
"amount": row["montant"],
|
||||||
category = cat,
|
"destination_id": map_idbde[row["destinataire"]],
|
||||||
display = row["affiche"],
|
"category": cat,
|
||||||
description = row["description"],
|
"display" : row["affiche"],
|
||||||
)
|
"description": row["description"],
|
||||||
|
}
|
||||||
|
with transaction.atomic(): # required for error management
|
||||||
|
button = TransactionTemplate.objects.create(**obj_dict)
|
||||||
|
except IntegrityError as e:
|
||||||
|
if "unique" in e.args[0]:
|
||||||
|
qs = Club.objects.filter(note__id=map_idbde[row["destinataire"]]).values('name')
|
||||||
|
note_name = qs[0]["name"]
|
||||||
|
obj_dict["name"] = ' '.join([obj_dict["name"],note_name])
|
||||||
|
button = TransactionTemplate.objects.create(**obj_dict)
|
||||||
|
else:
|
||||||
|
raise(e)
|
||||||
if created:
|
if created:
|
||||||
cat.save()
|
cat.save()
|
||||||
button.save()
|
button.save()
|
||||||
|
|
||||||
|
@transaction.atomic
|
||||||
|
def import_transaction(cur, map_idbde):
|
||||||
|
cur.execute("SELECT * FROM transactions;")
|
||||||
|
for row in cur:
|
||||||
|
obj_dict = {
|
||||||
|
"pk":row["id"],
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
class Command(BaseCommand):
|
class Command(BaseCommand):
|
||||||
"""
|
"""
|
||||||
@ -142,7 +160,7 @@ class Command(BaseCommand):
|
|||||||
parser.add_argument('-s', '--special', action = 'store_true')
|
parser.add_argument('-s', '--special', action = 'store_true')
|
||||||
parser.add_argument('-c', '--comptes', action = 'store_true')
|
parser.add_argument('-c', '--comptes', action = 'store_true')
|
||||||
parser.add_argument('-b', '--boutons', action = 'store_true')
|
parser.add_argument('-b', '--boutons', action = 'store_true')
|
||||||
|
parser.add_argument('-t', '--transactions', action = 'store_true')
|
||||||
|
|
||||||
def handle(self, *args, **kwargs):
|
def handle(self, *args, **kwargs):
|
||||||
conn = pg.connect(database="nk15",user="nk15_user")
|
conn = pg.connect(database="nk15",user="nk15_user")
|
||||||
@ -159,5 +177,5 @@ class Command(BaseCommand):
|
|||||||
if kwargs["boutons"]:
|
if kwargs["boutons"]:
|
||||||
import_boutons(cur,map_idbde)
|
import_boutons(cur,map_idbde)
|
||||||
print("boutons table imported")
|
print("boutons table imported")
|
||||||
if kwargs["transaction"]:
|
if kwargs["transactions"]:
|
||||||
import_transaction(cur)
|
import_transaction(cur)
|
||||||
|
@ -43,6 +43,7 @@ class TransactionTemplate(models.Model):
|
|||||||
verbose_name=_('name'),
|
verbose_name=_('name'),
|
||||||
max_length=255,
|
max_length=255,
|
||||||
unique=True,
|
unique=True,
|
||||||
|
error_messages={'unique':_("A template with this name already exist")},
|
||||||
)
|
)
|
||||||
destination = models.ForeignKey(
|
destination = models.ForeignKey(
|
||||||
NoteClub,
|
NoteClub,
|
||||||
|
Loading…
Reference in New Issue
Block a user