|
|
@ -1,7 +1,10 @@ |
|
|
|
import MySQLdb |
|
|
|
import member |
|
|
|
import group |
|
|
|
import event |
|
|
|
from exceptions import MemberNotFoundException |
|
|
|
from datetime import datetime |
|
|
|
from dateutil.relativedelta import relativedelta |
|
|
|
|
|
|
|
|
|
|
|
class Admidio: |
|
|
@ -14,15 +17,22 @@ class Admidio: |
|
|
|
self.members = dict() |
|
|
|
self.groups = dict() |
|
|
|
self.events = dict() |
|
|
|
self.event_confirmation_id = None |
|
|
|
sql = "SELECT usf_id,usf_name_intern FROM `adm_user_fields`" |
|
|
|
self.cursor.execute(sql) |
|
|
|
self.userfields = dict(self.cursor.fetchall()) |
|
|
|
|
|
|
|
sql = """SELECT usr_id, usr_login_name, usr_password |
|
|
|
FROM adm_users WHERE usr_valid = 1""" |
|
|
|
# Get the id for event confirmation role. |
|
|
|
# So it can exclude them from Groups |
|
|
|
sql = """SELECT cat_id |
|
|
|
FROM adm_categories |
|
|
|
WHERE cat_name_intern = 'CONFIRMATION_OF_PARTICIPATION'""" |
|
|
|
self.cursor.execute(sql) |
|
|
|
self.event_confirmation_id = self.cursor.fetchone()[0] |
|
|
|
|
|
|
|
self.initMembers() |
|
|
|
self.initGroups() |
|
|
|
self.initEvents() |
|
|
|
|
|
|
|
def __del__(self): |
|
|
|
self.db.close() |
|
|
@ -42,14 +52,33 @@ class Admidio: |
|
|
|
def initGroups(self): |
|
|
|
"""Initialises all groups in the Admidio installation""" |
|
|
|
|
|
|
|
sql = """SELECT rol_id, rol_name, rol_description |
|
|
|
sql = f"""SELECT rol_id, rol_name, rol_description |
|
|
|
FROM adm_roles |
|
|
|
WHERE rol_visible=1 AND rol_valid=1""" |
|
|
|
WHERE rol_valid = 1 |
|
|
|
AND rol_cat_id != {self.event_confirmation_id}""" |
|
|
|
self.cursor.execute(sql) |
|
|
|
|
|
|
|
for row in self.cursor.fetchall(): |
|
|
|
self.groups[row[0]] = group.Group(self.db, row[0], row[1], self) |
|
|
|
|
|
|
|
def initEvents(self): |
|
|
|
"""Initialises all comming events and passed events <3 months""" |
|
|
|
|
|
|
|
datestring = datetime.now() + relativedelta(months=-6) |
|
|
|
datestring = datestring.strftime("%Y-%m-%d %H:%M:%S") |
|
|
|
|
|
|
|
sql = f"""SELECT dat_id, dat_cat_id, dat_begin, dat_end, |
|
|
|
dat_headline, dat_description, |
|
|
|
dat_location, dat_country, dat_rol_id |
|
|
|
FROM adm_dates |
|
|
|
WHERE dat_begin >'{datestring}'""" |
|
|
|
self.cursor.execute(sql) |
|
|
|
|
|
|
|
for row in self.cursor.fetchall(): |
|
|
|
self.events[row[0]] = event.Event( |
|
|
|
self.db, row[0], row[8], row[4], row[2], row[3], row[5], |
|
|
|
row[6], row[7], self) |
|
|
|
|
|
|
|
def getMemberFromID(self, user_id): |
|
|
|
""" |
|
|
|
Returns Member object if user_id exists |
|
|
|