def guess_task_type(department_name, task_type_name): criterions = {"name": task_type_name} if len(department_name) > 0: criterions["department_id"] = Department.get_by( name=department_name).id return TaskType.get_by(**criterions)
def update_data(self, data): name = data.get("name", None) task_type = Department.get_by(name=name) if task_type is not None: raise ArgumentsException( "A department type with similar name already exists") return data
def update_data(self, data, instance_id): name = data.get("name", None) if name is not None: department = Department.get_by(name=name) if department is not None and instance_id != str(department.id): raise ArgumentsException( "A department with similar name already exists") return data
def get_or_create_department(name): departmemt = Department.get_by(name=name) if departmemt is None: departmemt = Department( name=name, color="#000000" ) departmemt.save() return departmemt
def get_or_create_department(name): """ Create a new department it doesn't exist. If it exists, it returns the department from database. """ department = Department.get_by(name=name) if department is None: department = Department(name=name, color="#000000") department.save() events.emit("department:new", {"department_id": department.id}) return department.serialize()
def save_department(self, data): department = Department.get_by(name=data["department_name"]) if department is None: department_data = { "name": data["department_name"], "color": data["color"], } department = Department(**department_data) department.save() current_app.logger.info("Department created: %s" % department) del data["department_name"] return department
def import_entry(self, data): # remove departments. It needs to be created using the DepartmentLink # table. imported_department = data.pop("department") if data["email"] != "*****@*****.**": person = Person.get_by(shotgun_id=data["shotgun_id"]) if person is None: person = Person.get_by(email=data["email"]) if person is None: data["password"] = auth.encrypt_password("default") person = Person(**data) person.save() current_app.logger.info("Person created: %s" % person) else: if person.password is None or len(person.password) == 0: data["password"] = auth.encrypt_password("default") # create or update a department/person link if needed if imported_department: department_person_link = ( db.session.query(DepartmentLink) .filter_by(person_id=person.id) .first() ) department = Department.get_by(id=imported_department["id"]) if department_person_link is None: person.departments.append(department) current_app.logger.info( "Department Person Link created: %s-%s" % (department.name, person.full_name()) ) elif person.departments != [ department, ]: person.departments = [ department, ] current_app.logger.info( "Department Person Link updated: %s-%s" % (department.name, person.full_name()) ) person.save() return person else: raise ShotgunEntryImportFailed("This entry is not a real person.")