def _working_units_from_json(app, content=''): if 'working_units' in content: for obj in content['working_units']: user = User.query.filter_by(email=obj['user']).first() if user is None: app.logger.error('Working Unit, Unknown user: %s' % (obj['user'])) break company = Company.query.filter_by(user=user, name=obj['company']).first() if company is None: app.logger.error('Working Unit, Unknown company: %s' % (obj['company'])) break project = Project.query.filter_by(user=user, company=company, name=obj['project']).first() if project is None: app.logger.error('Working Unit, Unknown project: %s' % (obj['project'])) break task = Task.query.filter_by(user=user, name=obj['task']).first() if task is None: app.logger.error('Working Unit, Unknown task: %s' % (obj['task'])) break d = convert_date(obj['date']) working_unit = WorkingUnit.query.filter_by( user=user, date=d, project=project, task=task ).first() if working_unit is None: working_unit = WorkingUnit() working_unit.user = user working_unit.date = d working_unit.project = project working_unit.task = task working_unit.start_time = convert_time(obj['start_time']) working_unit.end_time = convert_time(obj['end_time']) working_unit.break_minutes = obj['break_minutes'] working_unit.working_time = obj['working_time'] if 'description' in obj: working_unit.description = obj['description'] if 'week' in obj: working_unit.week = obj['week'] app.logger.debug('adding working unit: %s' % working_unit) db.session.add(working_unit) db.session.commit()
def test_create_working_unit(self): self.app.logger.debug('test_create_working_unit') project = self.create_default_project() task = self.create_default_task() wu = WorkingUnit(user=project.user, date=datetime.today(), project=project, task=task) wu.start_time = datetime.now() db.session.add(wu) db.session.commit() wu = WorkingUnit.query.first() assert wu is not None assert wu.project == project assert wu.task == task assert User.query.first() is not None assert Company.query.first() is not None assert Project.query.first() is not None assert Task.query.first() is not None