Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
UCC
uccportal
Commits
d1b18c40
Commit
d1b18c40
authored
Mar 04, 2019
by
frekk
Browse files
fix creating duplicate records on OldMember import
parent
c46628bd
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/import_members/actions.py
View file @
d1b18c40
from
django.contrib
import
messages
from
django.core.exceptions
import
ValidationError
from
django.db
import
IntegrityError
from
django.db.models
import
Q
from
.models
import
OldMember
from
memberdb.models
import
Member
...
...
@@ -22,24 +23,30 @@ def import_old_member(modeladmin, request, queryset):
nm
.
display_name
=
om
.
real_name
nm
.
is_guild
=
om
.
guild_member
nm
.
phone_number
=
om
.
phone_number
nm
.
id_number
=
""
nm
.
id_number
=
om
.
student_no
nm
.
id_desc
=
"student"
nm
.
email_address
=
om
.
email_address
if
om
.
membership_type
==
1
:
# O'day special
# O'day special or student
#membership_type = 'oday'
nm
.
is_student
=
True
elif
om
.
membership_type
==
2
:
# student
#membership_type = 'student_and_guild' if nm.is_guild else 'student_only'
nm
.
is_student
=
True
else
:
# non-student
#membership_type = 'guild_only' if nm.is_guild else 'non_student'
nm
.
is_student
=
False
if
(
nm
.
username
==
''
or
nm
.
username
is
None
):
raise
ValidationError
(
"username cannot be blank"
)
# try to prevent creating duplicate records on import
is_dupe
=
Q
(
username
=
nm
.
username
)
|
(
Q
(
first_name
=
nm
.
first_name
)
&
Q
(
last_name
=
nm
.
last_name
))
|
Q
(
id_number
=
nm
.
id_number
)
dupes
=
Member
.
objects
.
filter
(
is_dupe
)
if
(
dupes
.
count
()
>
0
):
raise
ValidationError
(
"suspected duplicate member record"
)
nm
.
save
()
num_success
+=
1
except
BaseException
as
e
:
breakpoint
()
modeladmin
.
message_user
(
request
,
'Could not import record (%s): %s'
%
(
om
,
e
),
level
=
messages
.
ERROR
)
if
(
num_success
>
0
):
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment