sync-tabellio: add a bunch of comments
This commit is contained in:
parent
89a8a7e9d7
commit
03a7b1415f
|
@ -34,6 +34,7 @@ class Command(BaseCommand):
|
|||
|
||||
comppols = {}
|
||||
|
||||
# connect to tabellio database
|
||||
conn = psycopg2.connect("host=%s dbname=%s user=%s password=%s" % (
|
||||
settings.TABELLIO_DBHOST,
|
||||
settings.TABELLIO_DBNAME,
|
||||
|
@ -41,6 +42,8 @@ class Command(BaseCommand):
|
|||
settings.TABELLIO_DBPASSWORD))
|
||||
cur = conn.cursor()
|
||||
|
||||
# get list of persons that are neither deputy or ministre so they can
|
||||
# be disabled if they exists in docbow
|
||||
cur.execute('''SELECT t_pers.nom, t_pers.prenom
|
||||
FROM t_pers
|
||||
WHERE t_pers.st != 'S_PARL'
|
||||
|
@ -58,17 +61,21 @@ class Command(BaseCommand):
|
|||
try:
|
||||
user = User.objects.get(username=username)
|
||||
except User.DoesNotExist:
|
||||
# a user didn't exist for that person, fine.
|
||||
continue
|
||||
|
||||
if not user.is_active:
|
||||
# the user was already disabled, ok.
|
||||
continue
|
||||
|
||||
if verbose:
|
||||
print 'disabling', username
|
||||
user.is_active = False
|
||||
|
||||
# disable the user
|
||||
user.is_active = False
|
||||
user.save()
|
||||
|
||||
# remove the user from lists
|
||||
if user in parl_list.members.all():
|
||||
parl_list.members.remove(user)
|
||||
parl_list.save()
|
||||
|
@ -76,6 +83,8 @@ class Command(BaseCommand):
|
|||
ministres_list.members.remove(user)
|
||||
ministres_list.save()
|
||||
|
||||
|
||||
# get current deputies
|
||||
cur.execute('''SELECT t_pers.nom, t_pers.prenom, t_adresse.email, t_comppol.abbr
|
||||
FROM t_pers, t_pershistoline, t_adresse, t_comppol
|
||||
WHERE t_pers.st = 'S_PARL'
|
||||
|
@ -105,6 +114,8 @@ class Command(BaseCommand):
|
|||
user.is_active = True
|
||||
|
||||
if created:
|
||||
# this is a new user, assign a password and print the info on
|
||||
# stdout
|
||||
pw = create_password()
|
||||
user.set_password(pw)
|
||||
if verbose:
|
||||
|
@ -112,9 +123,11 @@ class Command(BaseCommand):
|
|||
|
||||
user.save()
|
||||
|
||||
# create/update matching docbow profile
|
||||
profile, created = DocbowProfile.objects.get_or_create(user=user)
|
||||
profile.personal_email = email
|
||||
|
||||
# update mailing lists
|
||||
if not user in parl_list.members.all():
|
||||
parl_list.members.add(user)
|
||||
parl_list.save()
|
||||
|
@ -122,20 +135,25 @@ class Command(BaseCommand):
|
|||
ministres_list.members.remove(user)
|
||||
ministres_list.save()
|
||||
|
||||
# keep track of its political group, to be used later
|
||||
if not comppol in comppols:
|
||||
comppols[comppol] = []
|
||||
comppols[comppol].append(user)
|
||||
|
||||
# create mailing lists for political groups
|
||||
for comppol, members in comppols.items():
|
||||
maillist, created = MailingList.objects.get_or_create(
|
||||
name=u'Appartenance politique - %s' % comppol)
|
||||
# remove members of the list that should no longer be in there
|
||||
for member in maillist.members.all():
|
||||
if member not in members:
|
||||
maillist.members.remove(member)
|
||||
# add new members
|
||||
for member in members:
|
||||
if member not in maillist.members.all():
|
||||
maillist.members.add(member)
|
||||
|
||||
# get current ministres
|
||||
cur.execute('''SELECT t_pers.nom, t_pers.prenom, t_adresse.email
|
||||
FROM t_pers, t_pershistoline, t_adresse
|
||||
WHERE t_pers.st = 'S_MINISTRE'
|
||||
|
@ -164,6 +182,8 @@ class Command(BaseCommand):
|
|||
user.is_active = True
|
||||
|
||||
if created:
|
||||
# this is a new user, assign a password and print the info on
|
||||
# stdout
|
||||
pw = create_password()
|
||||
user.set_password(pw)
|
||||
if verbose:
|
||||
|
@ -171,9 +191,11 @@ class Command(BaseCommand):
|
|||
|
||||
user.save()
|
||||
|
||||
# create/update matching docbow profile
|
||||
profile, created = DocbowProfile.objects.get_or_create(user=user)
|
||||
profile.personal_email = email
|
||||
|
||||
# update mailing lists
|
||||
if user in parl_list.members.all():
|
||||
parl_list.members.remove(user)
|
||||
parl_list.save()
|
||||
|
|
Loading…
Reference in New Issue