Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
N
nk20-scripts
Manage
Activity
Members
Labels
Plan
Issues
1
Issue boards
Milestones
Wiki
Code
Merge requests
1
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
BDE
nk20-scripts
Commits
d6e9097d
Commit
d6e9097d
authored
4 years ago
by
Pierre-antoine Comby
Browse files
Options
Downloads
Patches
Plain Diff
Import membership with transactions
parent
6f0bfb17
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
management/commands/import_nk15.py
+30
-36
30 additions, 36 deletions
management/commands/import_nk15.py
with
30 additions
and
36 deletions
management/commands/import_nk15.py
+
30
−
36
View file @
d6e9097d
...
...
@@ -220,13 +220,41 @@ def import_transaction(cur):
obj_dict
[
"
first_name
"
]
=
actor
.
club
.
name
obj_dict
[
"
last_name
"
]
=
actor
.
club
.
name
else
:
raise
Exception
(
"
You should
'
nt be there
"
)
raise
Exception
(
"
Badly formatted Special Transaction
You should
'
nt be there
.
"
)
tr
=
SpecialTransaction
.
objects
.
create
(
**
obj_dict
)
if
"
cheques
"
in
row
[
"
description
"
]:
MAP_IDSPECIALTRANSACTION
[
row
[
"
id
"
]]
=
tr
elif
ttype
==
"
adhésion
"
:
montant
=
row
[
"
montant
"
]
m
=
re
.
search
(
"
Adhésion (\d\d\d\d)( \+ WEI)?
"
,
row
[
"
description
"
])
year
=
m
.
group
(
1
)
wei
=
m
.
group
(
2
)
if
montant
==
0
:
# old format for SoGé registration (before )
montant
=
400
# Since BDE and Kfet are distinct, don't import membership transaction and use our custom transactions.
pass
bde_dict
=
{
"
user
"
:
MAP_IDBDE
[
row
[
"
idbde
"
]],
"
club
"
:
bde
,
"
date_start
"
:
row
[
"
date
"
].
date
(),
# Only date, not time
"
fee
"
:
500
,
}
kfet_dict
=
{
"
user
"
:
MAP_IDBDE
[
row
[
"
idbde
"
]],
"
club
"
:
kfet
,
"
date_start
"
:
row
[
"
date
"
].
date
(),
# Only date, not time
"
fee
"
:
montant
-
500
}
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
elif
ttype
==
"
invitation
"
:
m
=
re
.
search
(
"
Invitation (.*?) \((.*?)\)
"
,
row
[
"
description
"
])
if
m
is
None
:
...
...
@@ -370,37 +398,6 @@ def import_activity_entries(cur):
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
@transaction.atomic
def
import_remittances
(
cur
):
...
...
@@ -507,9 +504,6 @@ class Command(BaseCommand):
if
kwargs
[
"
transactions
"
]:
import_transaction
(
cur
)
self
.
print_success
(
"
transaction imported
\n
"
)
if
kwargs
[
"
memberships
"
]:
import_memberships
(
cur
)
self
.
print_success
(
"
memberships imported
\n
"
)
if
kwargs
[
"
remittances
"
]:
import_remittances
(
cur
)
self
.
print_success
(
"
remittances imported
\n
"
)
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment