def record_version(*args, **kwargs): func(*args, **kwargs) session_objects = [] for version_option in version_options: tmp_session_objects = [ (session_object, version_option.history_class) for session_object in itertools.chain( db.session.new, db.session.dirty) if isinstance(session_object, version_option.model_class) ] if tmp_session_objects == [] and version_option.must_write_history: raise RuntimeError( ('Can\'t record history for {} ' '(something in your code has casued the database to ' 'flush the session early so there\'s nothing to ' 'copy into the history table)').format( version_option.model_class.__name__)) session_objects += tmp_session_objects for session_object, history_class in session_objects: db.session.add( create_history(session_object, history_cls=history_class))
def create_custom_template(service, user, template_config_name, template_type, content='', subject=None): template = Template.query.get(current_app.config[template_config_name]) if not template: data = { 'id': current_app.config[template_config_name], 'name': template_config_name, 'template_type': template_type, 'content': content, 'service': service, 'created_by': user, 'subject': subject, 'archived': False } template = Template(**data) db.session.add(template) db.session.add(create_history(template, TemplateHistory)) db.session.commit() return template
def create_custom_template(service, user, template_config_name, template_type, content="", subject=None): template = Template.query.get(current_app.config[template_config_name]) if not template: data = { "id": current_app.config[template_config_name], "name": template_config_name, "template_type": template_type, "content": content, "service": service, "created_by": user, "subject": subject, "archived": False, } template = Template(**data) db.session.add(template) db.session.add(create_history(template, TemplateHistory)) db.session.commit() return template