예제 #1
0
def deactivate_group_members(group):
    """Upon dissolution of a group all group members
    are deactivated and get the end date of the group
    """
    # !+GROUP_DISSOLVE - rewrite using generic model relationships for
    # Group.group_members and GroupMember.member_titles ?
    group_id = group.group_id
    end_date = group.end_date
    assert end_date is not None
    connection = Session().connection(domain.Group)
    connection.execute(schema.member.update().where(
        sa.and_(schema.member.c.group_id == group_id,
                schema.member.c.active_p == True)).values(active_p=False))
    connection.execute(schema.member.update().where(
        sa.and_(schema.member.c.group_id == group_id,
                schema.member.c.end_date == None)).values(end_date=end_date))

    def deactivate_group_member_titles(group):
        group_members = sa.select([schema.member.c.member_id],
                                  schema.member.c.group_id == group_id)
        connection.execute(schema.member_title.update().where(
            sa.and_(schema.member_title.c.member_id.in_(group_members),
                    schema.member_title.c.end_date == None)).values(
                        end_date=end_date))

    deactivate_group_member_titles(group)
예제 #2
0
def deactivate_group_members(group):
    """Upon dissolution of a group all group members
    are deactivated and get the end date of the group
    """
    # !+GROUP_DISSOLVE - rewrite using generic model relationships for
    # Group.group_members and GroupMember.member_titles ?
    group_id = group.group_id
    end_date = group.end_date
    assert end_date is not None
    connection = Session().connection(domain.Group)
    connection.execute(
        schema.member.update().where(
            sa.and_(
                schema.member.c.group_id == group_id,
                schema.member.c.active_p == True
            )
        ).values(active_p=False)
    )
    connection.execute(
        schema.member.update().where(
            sa.and_(
                schema.member.c.group_id == group_id,
                schema.member.c.end_date == None
            )
        ).values(end_date=end_date)
    )
    def deactivate_group_member_titles(group):
        group_members = sa.select([schema.member.c.member_id],
                 schema.member.c.group_id == group_id)
        connection.execute(
            schema.member_title.update().where(
                sa.and_(
                    schema.member_title.c.member_id.in_(group_members),
                    schema.member_title.c.end_date == None
                ) 
            ).values(end_date=end_date)
        )
    deactivate_group_member_titles(group)