def listProjectsForActiveMember(cls, account): from models.project import Project, Membership account = cls.__parseAccountArgument(account) return Project.query\ .filter(~Project.status.in_(Project._r(Project.STATUS_DELETED)))\ .join(Project.members, aliased=True)\ .filter(Membership.account==account, ~Membership.status.in_(Membership._r(Membership.STATUS_DELETED)))\ .order_by(Project.alias)\ .all() + cls.listGeneralProjects()
def listComponentsForActiveMember(cls, project, account): from models.project import Project, Component, Membership project = cls.__parseProjectArgument(project) account = cls.__parseAccountArgument(account) return Component.query\ .filter(Component.project_id==project.id, ~Component.status.in_(Component._r(Component.STATUS_DELETED)))\ .join(Component.project)\ .filter(~Project.status.in_(Project._r(Project.STATUS_DELETED)))\ .join(Project.members, aliased=True)\ .filter(Membership.account==account, ~Membership.status.in_(Membership._r(Membership.STATUS_DELETED)))\ .order_by(Project.alias, Component.alias)\ .all()