def save(data, project=None): """ Create or update a project with a given slug. """ data = validate(data, project) operation = 'create' if project is None else 'update' if project is None: project = Project() project.slug = data.get('slug') project.author = data.get('author') from grano.logic import permissions as permissions_logic permissions_logic.save({ 'account': data.get('author'), 'project': project, 'admin': True }) project.settings = data.get('settings') project.label = data.get('label') project.private = data.get('private') project.updated_at = datetime.utcnow() db.session.add(project) # TODO: make this nicer - separate files? from grano.logic.schemata import import_schema with app.open_resource('fixtures/base.yaml') as fh: import_schema(project, fh) db.session.flush() _project_changed(project.slug, operation) return project
def _project_and_permission(private=False, reader=False, editor=False, admin=False, account_id=1): project = Project(private=private) db.session.add(project) db.session.commit() perm = Permission(account_id=account_id, project_id=project.id, reader=reader, editor=editor, admin=admin) db.session.add(perm) db.session.commit() return project, perm
def save(data, project=None): """ Create or update a project with a given slug. """ data = validate(data, project) if project is None: project = Project() project.slug = data.get('slug') project.author = data.get('author') project.settings = data.get('settings') project.label = data.get('label') project.updated_at = datetime.utcnow() db.session.add(project) # TODO: make this nicer - separate files? from grano.logic.schemata import import_schema with app.open_resource('fixtures/base.yaml') as fh: import_schema(project, fh) db.session.flush() return project
def test_create_project(self): project = Project(label='I am a banana!') assert 'banana' in project.label, project.to_json()