from admidio_python_api.exceptions import MemberNotFoundException
|
|
|
|
|
|
class Event():
|
|
def __init__(self, db, event_id, rol_id, name, start_time, end_time,
|
|
description, location, country, admidio):
|
|
self.__c = db.cursor()
|
|
self.id = event_id
|
|
self.rol_id = rol_id
|
|
self.name = name
|
|
self.start_time = start_time
|
|
self.end_time = end_time
|
|
self.description = description
|
|
self.location = location
|
|
self.country = country
|
|
self.admidio = admidio
|
|
self.participants = list()
|
|
self.leaders = list()
|
|
self.number_of_guests = 0
|
|
|
|
sql = f"""SELECT mem_usr_id, mem_leader, mem_count_guests, mem_approved
|
|
FROM {self.admidio.prefix}_members
|
|
WHERE mem_rol_id = {self.rol_id}
|
|
AND mem_end = '9999-12-31'"""
|
|
self.__c.execute(sql)
|
|
|
|
for row in self.__c.fetchall():
|
|
try:
|
|
self.number_of_guests += row[2]
|
|
|
|
# Distinguish between members that will attend, not
|
|
# attend, or will maybe attend.
|
|
if row[1] == 1:
|
|
self.leaders.append(
|
|
[row[3], self.admidio.getMemberFromID(row[0])])
|
|
else:
|
|
self.participants.append(
|
|
[row[3], self.admidio.getMemberFromID(row[0])])
|
|
|
|
except MemberNotFoundException:
|
|
print(
|
|
f"Member with id {row[0]} not found, group id: {self.id}")
|
|
|
|
def getAllMembers(self):
|
|
"""Return leaders and members in group, combined"""
|
|
return self.leaders + self.participants
|
|
|
|
|
|
def getAllAttend(self):
|
|
"""Return leaders and members which actually attend"""
|
|
members = list()
|
|
|
|
for i in (self.leaders + self.participants):
|
|
if (i[0] == 2):
|
|
members.append(i)
|
|
|
|
return members
|
|
|
|
|
|
def getAllMaybe(self):
|
|
"""Return leaders and members which will maybe attend"""
|
|
members = list()
|
|
|
|
for i in (self.leaders + self.participants):
|
|
if (i[0] == 1):
|
|
members.append(i)
|
|
|
|
return members
|
|
|
|
def getAllNotAttend(self):
|
|
"""Return leaders and members which will not attend"""
|
|
members = list()
|
|
|
|
for i in (self.leaders + self.participants):
|
|
if (i[0] == 3):
|
|
members.append(i)
|
|
|
|
return members
|
|
|
|
def getNumberMembers(self):
|
|
"""Return the total number of members"""
|
|
return len(self.leaders) + len(self.participants)
|