def find_by_login(cls, login, active=True): query = DBSESSION().query(cls) query = query.options(load_only('pwd_hash')) query = query.filter_by(login=login) if active: query = query.filter_by(active=True) return query.first()
def find_by_login(cls, login, active=True): query = DBSESSION().query(cls) query = query.options(load_only('pwd_hash')) query = query.filter_by(login=login) if active: query = query.filter_by(active=True) return query.first()
def deferred_categories_widget(node, kw): query = DBSESSION().query( IncomeStatementMeasureTypeCategory.label, IncomeStatementMeasureTypeCategory.label, ) choices = query.filter_by(active=True).all() return deform.widget.CheckboxChoiceWidget(values=choices)
def get_types(cls, active=True, keys=()): query = DBSESSION().query(cls) if keys: query = query.options(load_only(*keys)) if active: query = query.filter_by(active=True) return query
def get_types(cls, active=True, keys=()): query = DBSESSION().query(cls) if keys: query = query.options(load_only(*keys)) if active: query = query.filter_by(active=True) return query
def _query(cls, invoice): from autonomie.models.task import Task q = DBSESSION().query(func.Max(SequenceNumber.index)) q = q.filter(Task.type_.in_(('invoice', 'cancelinvoice'))) q = q.filter_by(sequence=cls.db_key) return q
def deferred_categories_widget(node, kw): query = DBSESSION().query( IncomeStatementMeasureTypeCategory.label, IncomeStatementMeasureTypeCategory.label, ) choices = query.filter_by(active=True).all() return deform.widget.CheckboxChoiceWidget(values=choices)
def query_for_select(cls): """ Query project types for selection purpose """ query = DBSESSION().query(cls).options( load_only('id', 'label', 'private')) query = query.filter_by(active=True) return query
def get_years(cls, grid_class, company_id=None): query = DBSESSION().query(distinct(grid_class.year)) if company_id is not None: query = query.filter_by(company_id=company_id) result = [a[0] for a in query.all()] result.sort() return result
def query_for_select(cls): """ Query project types for selection purpose """ query = DBSESSION().query(cls).options( load_only('id', 'label', 'private') ) query = query.filter_by(active=True) return query
def get_years(cls, grid_class, company_id=None): query = DBSESSION().query(distinct(grid_class.year)) if company_id is not None: query = query.filter_by(company_id=company_id) result = [a[0] for a in query.all()] result.sort() return result
def check(cls, node): """ Check if all indicators are successfull :param obj node: The node for which we check the indicators """ query = DBSESSION().query(SaleFileRequirement.id) query = query.filter_by(node_id=node.id) query = query.filter( SaleFileRequirement.status != SaleFileRequirement.SUCCESS_STATUS) return query.count() == 0
def deferred_label_validator(node, kw): """ Deffered label validator, check whether a type or a category has the same label """ context = kw['request'].context category_query = DBSESSION().query(IncomeStatementMeasureTypeCategory.label) category_query.filter_by(active=True) if isinstance(context, IncomeStatementMeasureTypeCategory): category_query = category_query.filter( IncomeStatementMeasureTypeCategory.id != context.id ) category_labels = [i[0] for i in category_query] type_query = DBSESSION().query(IncomeStatementMeasureType.label) type_query.filter_by(active=True) if isinstance(context, IncomeStatementMeasureType): type_query = type_query.filter( IncomeStatementMeasureType.id != context.id ) type_labels = [i[0] for i in type_query] def label_validator(node, value): if ':' in value or '!' in value: raise colander.Invalid( node, u"Erreur de syntax (les caractères ':' et '!' sont interdits" ) if value in category_labels: raise colander.Invalid( node, u"Une catégories porte déjà ce nom" ) if value in type_labels: raise colander.Invalid( node, u"Un type d'indicateurs porte déjà ce nom" ) return label_validator
def get_tasks(cls, instance, type_str=None): from autonomie.models.task import Task query = DBSESSION().query(Task) query = query.filter_by(customer_id=instance.id) if type_str is not None: query = query.filter(Task.type_ == type_str) else: query = query.filter( Task.type_.in_(('invoice', 'cancelinvoice', 'estimation'))) return query
def check(cls, node): """ Check if all indicators are successfull :param obj node: The node for which we check the indicators """ query = DBSESSION().query(SaleFileRequirement.id) query = query.filter_by(node_id=node.id) query = query.filter( SaleFileRequirement.status != SaleFileRequirement.SUCCESS_STATUS ) return query.count() == 0
def get_categories(cls, active=True, keys=()): """ :param bool active: Only load active categories :param tuple keys: The keys to load (list of str) :returns: IncomeStatementMeasureTypeCategory ordered by order key :rtype: list """ query = DBSESSION().query(cls) if keys: query = query.options(load_only(*keys)) query = query.filter_by(active=active).order_by(cls.order) return query.all()
def get_tasks(cls, instance, type_str=None): from autonomie.models.task import Task query = DBSESSION().query(Task) query = query.filter_by(customer_id=instance.id) if type_str is not None: query = query.filter(Task.type_ == type_str) else: query = query.filter( Task.type_.in_(('invoice', 'cancelinvoice', 'estimation')) ) return query
def get_categories(cls, active=True, keys=()): """ :param bool active: Only load active categories :param tuple keys: The keys to load (list of str) :returns: IncomeStatementMeasureTypeCategory ordered by order key :rtype: list """ query = DBSESSION().query(cls) if keys: query = query.options(load_only(*keys)) query = query.filter_by(active=active).order_by(cls.order) return query.all()
def get_by_category(cls, category_id, key=None): """ Collect IncomeStatementMeasureType associated to the given category :param int category_id: The id to check for :param str key: The key to load (if we want to restrict the query :rtype: list """ query = DBSESSION().query(cls) if key is not None: query = query.options(load_only(key)) query = query.filter_by(category_id=category_id) return query.all()
def get_by_category(cls, category_id, key=None): """ Collect IncomeStatementMeasureType associated to the given category :param int category_id: The id to check for :param str key: The key to load (if we want to restrict the query :rtype: list """ query = DBSESSION().query(cls) if key is not None: query = query.options(load_only(key)) query = query.filter_by(category_id=category_id) return query.all()
def get_next_order(cls): """ :returns: The next available order :rtype: int """ query = DBSESSION().query(func.max(cls.order)).filter_by(active=True) query = query.filter_by( type_=cls.__mapper_args__['polymorphic_identity']) query = query.first() if query is not None and query[0] is not None: result = query[0] + 1 else: result = 0 return result
def deferred_label_validator(node, kw): """ Deffered label validator, check whether a type or a category has the same label """ context = kw['request'].context category_query = DBSESSION().query( IncomeStatementMeasureTypeCategory.label) category_query.filter_by(active=True) if isinstance(context, IncomeStatementMeasureTypeCategory): category_query = category_query.filter( IncomeStatementMeasureTypeCategory.id != context.id) category_labels = [i[0] for i in category_query] type_query = DBSESSION().query(IncomeStatementMeasureType.label) type_query.filter_by(active=True) if isinstance(context, IncomeStatementMeasureType): type_query = type_query.filter( IncomeStatementMeasureType.id != context.id) type_labels = [i[0] for i in type_query] def label_validator(node, value): if ':' in value or '!' in value: raise colander.Invalid( node, u"Erreur de syntax (les caractères ':' et '!' sont interdits") if value in category_labels: raise colander.Invalid(node, u"Une catégories porte déjà ce nom") if value in type_labels: raise colander.Invalid(node, u"Un type d'indicateurs porte déjà ce nom") return label_validator
def get_next_order(cls): """ :returns: The next available order :rtype: int """ query = DBSESSION().query(func.max(cls.order)).filter_by(active=True) query = query.filter_by( type_=cls.__mapper_args__['polymorphic_identity'] ) query = query.first() if query is not None and query[0] is not None: result = query[0] + 1 else: result = 0 return result
def query(self): remember_navigation_history(self.request, self.context.id) query = DBSESSION().query(distinct(Business.id), Business) query = query.filter_by(project_id=self.current().id) return query
def query(self): remember_navigation_history(self.request, self.context.id) query = DBSESSION().query(distinct(Business.id), Business) query = query.filter_by(project_id=self.current().id) return query