def query_by_name(context, model, name, project_safe=True): q = model_query(context, model) q = q.filter_by(name=name) if not context.is_admin and project_safe: q = q.filter_by(project=context.project) if q.count() == 1: return q.first() elif q.count() == 0: return None else: raise exception.MultipleChoices(arg=name)
def query_by_short_id(context, model, short_id, project_safe=True): q = model_query(context, model) q = q.filter(model.id.like('%s%%' % short_id)) if not context.is_admin and project_safe: q = q.filter_by(project=context.project) if q.count() == 1: return q.first() elif q.count() == 0: return None else: raise exception.MultipleChoices(arg=short_id)