From 8bde958828c5c7a7a6ecd95212c944a0806871c8 Mon Sep 17 00:00:00 2001 From: Rick Date: Sat, 12 Jan 2019 22:29:12 +0100 Subject: [PATCH] Add custom admidio db prefixes --- README.md | 4 ++-- admidio.py | 18 ++++++++++-------- event.py | 6 +++--- group.py | 5 +++-- member.py | 3 ++- 5 files changed, 20 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 7686c27..b177770 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,6 @@ It will initialise all groups and users that are in the admidio installation. ## Todo -* [ ] Integrate custom admidio prefixes. -* [ ] Add events to the API. +* [x] Add events to the API. +* [x] Integrate custom admidio prefixes. * [ ] Multiple admidio organisations. diff --git a/admidio.py b/admidio.py index da52ef5..5b06cda 100644 --- a/admidio.py +++ b/admidio.py @@ -10,23 +10,25 @@ from dateutil.relativedelta import relativedelta class Admidio: """Creates the Admidio Class""" - def __init__(self, mysql_host, mysql_user, mysql_pass, mysql_db): + def __init__(self, mysql_host, mysql_user, mysql_pass, mysql_db, + db_prefix): self.db = MySQLdb.connect( host=mysql_host, user=mysql_user, passwd=mysql_pass, db=mysql_db) self.cursor = self.db.cursor() + self.prefix = db_prefix 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`" + sql = f"SELECT usf_id,usf_name_intern FROM {self.prefix}_user_fields" self.cursor.execute(sql) self.userfields = dict(self.cursor.fetchall()) # Get the id for event confirmation role. # So it can exclude them from Groups - sql = """SELECT cat_id - FROM adm_categories + sql = f"""SELECT cat_id + FROM {self.prefix}_categories WHERE cat_name_intern = 'CONFIRMATION_OF_PARTICIPATION'""" self.cursor.execute(sql) self.event_confirmation_id = self.cursor.fetchone()[0] @@ -41,8 +43,8 @@ class Admidio: def initMembers(self): """Initialises all members in the Admidio installation""" - sql = """SELECT usr_id, usr_login_name, usr_password - FROM adm_users WHERE usr_valid = 1""" + sql = f"""SELECT usr_id, usr_login_name, usr_password + FROM {self.prefix}_users WHERE usr_valid = 1""" self.cursor.execute(sql) for row in self.cursor.fetchall(): @@ -54,7 +56,7 @@ class Admidio: """Initialises all groups in the Admidio installation""" sql = f"""SELECT rol_id, rol_name, rol_description - FROM adm_roles + FROM {self.prefix}_roles WHERE rol_valid = 1 AND rol_cat_id != {self.event_confirmation_id}""" self.cursor.execute(sql) @@ -71,7 +73,7 @@ class Admidio: 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 + FROM {self.prefix}_dates WHERE dat_begin >'{datestring}'""" self.cursor.execute(sql) diff --git a/event.py b/event.py index a424db5..f211c50 100644 --- a/event.py +++ b/event.py @@ -18,9 +18,9 @@ class Event(): self.leaders = list() self.number_of_guests = 0 - sql = ("""SELECT mem_usr_id, mem_leader, mem_count_guests - FROM adm_members""" - f""" WHERE mem_rol_id = {self.rol_id}""") + sql = f"""SELECT mem_usr_id, mem_leader, mem_count_guests + FROM {self.admidio.prefix}_members + WHERE mem_rol_id = {self.rol_id}""" self.__c.execute(sql) for row in self.__c.fetchall(): diff --git a/group.py b/group.py index 7e68186..faf01e3 100644 --- a/group.py +++ b/group.py @@ -9,8 +9,9 @@ class Group: self.admidio = admidio self.members = list() self.leaders = list() - sql = ("""SELECT mem_usr_id, mem_leader FROM adm_members""" - f""" WHERE mem_rol_id = {self.id}""") + sql = f"""SELECT mem_usr_id, mem_leader + FROM {self.admidio.prefix}_members + WHERE mem_rol_id = {self.id}""" self.__c.execute(sql) for row in self.__c.fetchall(): diff --git a/member.py b/member.py index f844ee8..4fba2c6 100644 --- a/member.py +++ b/member.py @@ -11,7 +11,8 @@ class Member(): self.password = password self.userdata = dict() self.admidio = admidio - sql = f"""SELECT usd_usf_id, usd_value FROM adm_user_data + sql = f"""SELECT usd_usf_id, usd_value + FROM {self.admidio.prefix}_user_data WHERE usd_usr_id = {self.user_id!s}""" self.__c.execute(sql) for row in self.__c.fetchall():