def put(self, id): """Projekt wird aktualisiert""" adm = ProjectAdministration() project = Project.from_dict(api.payload) if project is None: return "Projekt konnte nicht geändert werden", 500 else: project.set_id(id) adm.save_project(project) return "Projekt wurde erfolgreich geändert", 200
def put(self, id): """Update eines bestimmten Projekts. """ adm = ProjectAdministration() p = Project.from_dict(api.payload) if p is not None: p.set_id(id) adm.save_project(p) return '', 200 else: return '', 500
def post(self): """Anlegen eines neuen Projekt-Objekts. """ adm = ProjectAdministration() proj = Project.from_dict(api.payload) if proj is not None: pro = adm.create_project( proj.get_id(), proj.get_creation_time(), proj.get_semester(), proj.get_module(), proj.get_short_description(), proj.get_external_partner_list(), proj.get_capacity(), proj.get_bd_during_exam_period(), proj.get_bd_before_lecture_period(), proj.get_bd_during_lecture_period(), proj.get_preferred_bd_during_lecture_period(), proj.get_language(), proj.get_room(), proj.get_special_room(), proj.get_flag(), proj.get_name(), proj.get_status(), proj.get_project_type(), proj.get_owner()) return pro, 200 else: # Wenn irgendetwas schiefgeht, dann geben wir nichts zurück und werfen einen Server-Fehler. return '', 500
def post(self): """Ein neues Projekt in der DB anlegen""" adm = ProjectAdministration() pan = Project.from_dict(api.payload) if pan is not None: project_list = adm.create_project(pan.get_name(), pan.get_user_id(), pan.get_project_type_id(), pan.get_semester_id(), pan.get_assignment_id(), pan.get_project_description(), pan.get_partners(), pan.get_capacity(), pan.get_preferred_room(), pan.get_b_days_pre_schedule(), pan.get_b_days_finale(), pan.get_b_days_saturdays(), pan.get_preferred_b_days(), pan.get_additional_lecturer(), pan.get_weekly()) return project_list else: return "Automat not found", 500
def find_all(self): result = [] cursor = self._cnx.cursor() cursor.execute("SELECT id, creation_time, semester, module, short_description, external_partner_list, capacity, bd_during_exam_period, bd_before_lecture_period, bd_during_lecture_period, preferred_bd_during_lecture_period, language, room, special_room, flag, name, status, project_type, owner FROM project") tuples = cursor.fetchall() for (id, creation_time, semester, module, short_description, external_partner_list, capacity, bd_during_exam_period, bd_before_lecture_period, bd_during_lecture_period, preferred_bd_during_lecture_period, language, room, special_room, flag, name, status, project_type, owner) in tuples: project = Project() project.set_id(id) project.set_creation_time(creation_time) project.set_name(name) project.set_owner(owner) project.set_module(module) project.set_language(language) project.set_project_type(project_type) project.set_semester(semester) project.set_capacity(capacity) project.set_external_partner_list(external_partner_list) project.set_short_description(short_description) project.set_flag(flag) project.set_bd_before_lecture_period(bd_before_lecture_period) project.set_bd_during_lecture_period(bd_during_lecture_period) project.set_bd_during_exam_period(bd_during_exam_period) project.set_preferred_bd_during_lecture_period(preferred_bd_during_lecture_period) project.set_status(status) project.set_room(room) project.set_special_room(special_room) result.append(project) self._cnx.commit() cursor.close() return result
def find_projects_by_student(self, student): result = [] cursor = self._cnx.cursor() command = "SELECT project.id, project.creation_time, semester, module, short_description, external_partner_list, capacity, " \ "bd_during_exam_period, bd_before_lecture_period, bd_during_lecture_period, " \ "preferred_bd_during_lecture_period, language, room, special_room, flag, name, status, " \ "project_type, owner FROM project INNER JOIN participation ON participation.project = project.id " \ "WHERE participation.student = {}".format(student) print(command) cursor.execute(command) tuples = cursor.fetchall() for (id, creation_time, semester, module, short_description, external_partner_list, capacity, bd_during_exam_period, bd_before_lecture_period, bd_during_lecture_period, preferred_bd_during_lecture_period, language, room, special_room, flag, name, status, project_type, owner) in tuples: project = Project() project.set_id(id) project.set_creation_time(creation_time) project.set_semester(semester) project.set_module(module) project.set_short_description(short_description) project.set_external_partner_list(external_partner_list) project.set_capacity(capacity) project.set_bd_during_exam_period(bd_during_exam_period) project.set_bd_before_lecture_period(bd_before_lecture_period) project.set_bd_during_lecture_period(bd_during_lecture_period) project.set_preferred_bd_during_lecture_period(preferred_bd_during_lecture_period) project.set_language(language) project.set_room(room) project.set_special_room(special_room) project.set_flag(flag) project.set_name(name) project.set_status(status) project.set_project_type(project_type) project.set_owner(owner) result.append(project) self._cnx.commit() cursor.close() return result
def find_by_name(self, name): result = [] cursor = self._cnx.cursor() command = "SELECT id, creation_time, semester, module, short_description, external_partner_list, capacity, bd_during_exam_period, bd_before_lecture_period, bd_during_lecture_period, preferred_bd_during_lecture_period, language, room, special_room, flag, name, status, project_type, owner FROM project WHERE name LIKE '%{}%'".format(name) cursor.execute(command) tuples = cursor.fetchall() try: (id, creation_time, semester, module, short_description, external_partner_list, capacity, bd_during_exam_period, bd_before_lecture_period, bd_during_lecture_period, preferred_bd_during_lecture_period, language, room, special_room, flag, name, status, project_type, owner) = tuples[0] project = Project() project.set_id(id) project.set_creation_time(creation_time) project.set_semester(semester) project.set_module(module) project.set_short_description(short_description) project.set_external_partner_list(external_partner_list) project.set_capacity(capacity) project.set_bd_during_exam_period(bd_during_exam_period) project.set_bd_before_lecture_period(bd_before_lecture_period) project.set_bd_during_lecture_period(bd_during_lecture_period) project.set_preferred_bd_during_lecture_period(preferred_bd_during_lecture_period) project.set_language(language) project.set_room(room) project.set_special_room(special_room) project.set_flag(flag) project.set_name(name) project.set_status(status) project.set_project_type(project_type) project.set_owner(owner) result.append(project) except IndexError: """Der IndexError wird oben beim Zugriff auf tuples[0] auftreten, wenn der vorherige SELECT-Aufruf keine Tupel liefert, sondern tuples = cursor.fetchall() eine leere Sequenz zurück gibt.""" result = None self._cnx.commit() cursor.close() return result
def find_by_key(self, id): """Suchen eines Projektes mit vorgegebener user ID""" result = [] cursor = self._cnx.cursor() command = "SELECT * FROM project WHERE id like '{}'".format(id) cursor.execute(command) tuples = cursor.fetchall() if len(tuples) != 0: for (id, name, user_id, project_type_id, state_id, semester_id, assignment_id, project_description, partners, capacity, preferred_room, b_days_pre_schedule, b_days_finale, b_days_saturdays, preferred_b_days, additional_lecturer, weekly, create_time) in tuples: project = Project() project.set_id(id) project.set_name(name) project.set_user_id(user_id) project.set_project_type_id(project_type_id) project.set_state_id(state_id) project.set_semester_id(semester_id) project.set_assignment_id(assignment_id) project.set_project_description(project_description) project.set_partners(partners) project.set_capacity(capacity) project.set_preferred_room(preferred_room) project.set_b_days_pre_schedule(b_days_pre_schedule) project.set_b_days_finale(b_days_finale) project.set_b_days_saturdays(b_days_saturdays) project.set_preferred_b_days(preferred_b_days) project.set_additional_lecturer(additional_lecturer) project.set_weekly(weekly) project.set_create_time(create_time) result.append(project) result = project else: result = None self._cnx.commit() cursor.close() return result
def find_all(self): """Auslesen aller Projekte""" result = [] cursor = self._cnx.cursor() command = "SELECT * FROM project" cursor.execute(command) tuples = cursor.fetchall() for (id, name, user_id, project_type_id, state_id, semester_id, assignment_id, project_description, partners, capacity, preferred_room, b_days_pre_schedule, b_days_finale, b_days_saturdays, preferred_b_days, additional_lecturer, weekly, create_time) in tuples: project = Project() project.set_id(id) project.set_name(name) project.set_user_id(user_id) project.set_project_type_id(project_type_id) project.set_state_id(state_id) project.set_semester_id(semester_id) project.set_assignment_id(assignment_id) project.set_project_description(project_description) project.set_partners(partners) project.set_capacity(capacity) project.set_preferred_room(preferred_room) project.set_b_days_pre_schedule(b_days_pre_schedule) project.set_b_days_finale(b_days_finale) project.set_b_days_saturdays(b_days_saturdays) project.set_preferred_b_days(preferred_b_days) project.set_additional_lecturer(additional_lecturer) project.set_weekly(weekly) project.set_create_time(create_time) result.append(project) self._cnx.commit() cursor.close() return result
def create_project(self, name, user_id, project_type_id, semester_id, assignment_id, project_description, partners, capacity, preferred_room, b_days_pre_schedule, b_days_finale, b_days_saturdays, preferred_b_days, additional_lecturer, weekly): """Neues Projekt anlegen""" project = Project() project.set_name(name) project.set_user_id(user_id) project.set_project_type_id(project_type_id) project.set_semester_id(semester_id) project.set_assignment_id(assignment_id) project.set_project_description(project_description) project.set_partners(partners) project.set_capacity(capacity) project.set_preferred_room(preferred_room) project.set_b_days_pre_schedule(b_days_pre_schedule) project.set_b_days_finale(b_days_finale) project.set_b_days_saturdays(b_days_saturdays) project.set_preferred_b_days(preferred_b_days) project.set_additional_lecturer(additional_lecturer) project.set_weekly(weekly) project.set_id(1) with ProjectMapper() as mapper: return mapper.insert(project)
def create_project(self, id, creation_time, semester, module, short_description, external_partner_list, capacity, bd_during_exam_period, bd_before_lecture_period, bd_during_lecture_period, preferred_bd_during_lecture_period, language, room, special_room, flag, name, status, project_type, owner): """Ein Projekt anlegen""" project = Project() project.set_id(id) project.set_creation_time(creation_time) project.set_semester(semester) project.set_module(module) project.set_short_description(short_description) project.set_external_partner_list(external_partner_list) project.set_capacity(capacity) project.set_bd_during_exam_period(bd_during_exam_period) project.set_bd_before_lecture_period(bd_before_lecture_period) project.set_bd_during_lecture_period(bd_during_lecture_period) project.set_preferred_bd_during_lecture_period( preferred_bd_during_lecture_period) project.set_language(language) project.set_room(room) project.set_special_room(special_room) project.set_flag(flag) project.set_name(name) project.set_status(status) project.set_project_type(project_type) project.set_owner(owner) project.set_id(1) with ProjectMapper() as mapper: return mapper.insert(project)