def upgrade():
    disable_listeners()
    op.add_column('task', sa.Column('date', sa.Date()))
    from autonomie.models.task import Task
    from autonomie.models.base import DBSESSION

    session = DBSESSION()
    for task in Task.query().filter(Task.type_!='manualinvoice'):
        task.date = task.taskDate
        session.merge(task)
    session.flush()

    op.execute("alter table groups modify label VARCHAR(255);")
    op.execute("alter table payment modify remittance_amount VARCHAR(255);")
    from autonomie.models.user import User, Group
    for group_id, group_name, group_label in GROUPS:
        group = session.query(Group).filter(Group.name==group_name).first()
        if group is None:
            group = Group(name=group_name, label=group_label)
            session.add(group)
            session.flush()

        users = session.query(User).filter(User.primary_group==group_id)
        for user in users:
            user._groups.append(group)
            session.merge(user)

    label = u"Peut saisir/modifier/supprimer les paiements de ses factures"
    group_name = "payment_admin"
    group = Group.query().filter(Group.name==group_name).first()
    if group is not None:
        group.label = label
        session.merge(group)
def upgrade():
    from autonomie.models import user
    from autonomie.models.base import DBSESSION

    db = DBSESSION()

    for u in db.query(user.User)\
             .filter(user.User.userdatas==None)\
             .filter(user.User.primary_group==3):
        situation = "sortie"
        if u.email:
            userdata = user.UserDatas(
                situation_situation=situation,
                coordonnees_firstname=u.firstname,
                coordonnees_lastname=u.lastname,
                coordonnees_email1=u.email,
                coordonnees_civilite=u'?',
            )
            userdata.user_id = u.id
            for company in u.companies:
                companydata = user.CompanyDatas(
                    title=company.goal,
                    name=company.name,
                )
                userdata.activity_companydatas.append(companydata)
            db.add(userdata)
            db.flush()
예제 #3
0
def upgrade():
    import logging
    logger = logging.getLogger('alembic.here')
    op.add_column(
        "user_datas",
        sa.Column(
            'statut_social_status_today_id',
            sa.Integer,
            sa.ForeignKey('social_status_option.id'),
        ))
    op.add_column(
        "user_datas",
        sa.Column(
            "parcours_employee_quality_id",
            sa.Integer,
            sa.ForeignKey('employee_quality_option.id'),
        ))
    op.add_column(
        "user_datas",
        sa.Column("situation_antenne_id", sa.Integer,
                  sa.ForeignKey('antenne_option.id')))
    op.add_column("task", sa.Column(
        "internal_number",
        sa.String(40),
    ))
    op.add_column("task", sa.Column("company_index", sa.Integer))
    op.execute("alter table task CHANGE sequence_number project_index int(11)")
    op.add_column(
        "task",
        sa.Column(
            "company_id",
            sa.Integer,
            sa.ForeignKey('company.id'),
        ))
    from autonomie.models.base import (
        DBSESSION, )
    session = DBSESSION()

    add_company_id(session, logger)
    add_company_index(session, logger)
    add_internal_number(session, logger)

    logger.warn("Adding Contract Histories")
    from autonomie.models.user import UserDatas, ContractHistory
    for id_, last_avenant in UserDatas.query('id', 'parcours_last_avenant'):
        if last_avenant:
            session.add(
                ContractHistory(userdatas_id=id_, date=last_avenant,
                                number=-1))

    op.add_column("date_convention_cape_datas",
                  sa.Column('end_date', sa.Date(), nullable=True))
    op.execute("alter table customer MODIFY code VARCHAR(4);")
    op.execute("alter table project MODIFY code VARCHAR(4);")

    create_custom_treasury_modules(session, logger)

    from zope.sqlalchemy import mark_changed
    mark_changed(session)
def upgrade():

    from autonomie.models.base import DBSESSION


    session = DBSESSION()
    from alembic.context import get_bind

    request = "select id, type_, name, creationDate, updateDate from task"
    conn = get_bind()
    result = conn.execute(request)
    index = 0
    max_id = -1
    for id_, type_, name, creationDate, updateDate in result:
        creationDate = format_date(creationDate)
        updateDate = format_date(updateDate)
        index += 1
        node = Node(
                id=id_,
                created_at=creationDate,
                updated_at=updateDate,
                name=name,
                type_=type_
                )
        session.add(node)
        if index % 50 == 0:
            session.flush()
        if id_ > max_id:
            max_id = id_

    request = "select id, name, creationDate, updateDate from project ORDER BY id DESC"
    result = conn.execute(request).fetchall()

    # We disable foreign key constraints check
    op.execute("SET FOREIGN_KEY_CHECKS=0;")
    index = 0
    for id_, name, creationDate, updateDate in result:
        new_id = id_ + max_id
        creationDate = format_date(creationDate)
        updateDate = format_date(updateDate)
        index += 1
        node = Node(
                id=new_id,
                created_at=creationDate,
                updated_at=updateDate,
                name=name,
                type_='project'
                )
        session.add(node)

        # We update the foreignkeys
        for table in ('estimation', 'invoice', 'cancelinvoice', 'phase', 'project_customer'):
            op.execute("update {0} set project_id={1} where project_id={2}".format(table, new_id, id_))

        # We update the project id
        op.execute("update project set id={0} where id={1};".format(new_id, id_))
        if index % 50 == 0:
            session.flush()
    op.execute("SET FOREIGN_KEY_CHECKS=1;")
예제 #5
0
def upgrade():

    from autonomie.models.base import DBSESSION

    session = DBSESSION()
    from alembic.context import get_bind

    request = "select id, type_, name, creationDate, updateDate from task"
    conn = get_bind()
    result = conn.execute(request)
    index = 0
    max_id = -1
    for id_, type_, name, creationDate, updateDate in result:
        creationDate = format_date(creationDate)
        updateDate = format_date(updateDate)
        index += 1
        node = Node(id=id_,
                    created_at=creationDate,
                    updated_at=updateDate,
                    name=name,
                    type_=type_)
        session.add(node)
        if index % 50 == 0:
            session.flush()
        if id_ > max_id:
            max_id = id_

    request = "select id, name, creationDate, updateDate from project ORDER BY id DESC"
    result = conn.execute(request).fetchall()

    # We disable foreign key constraints check
    op.execute("SET FOREIGN_KEY_CHECKS=0;")
    index = 0
    for id_, name, creationDate, updateDate in result:
        new_id = id_ + max_id
        creationDate = format_date(creationDate)
        updateDate = format_date(updateDate)
        index += 1
        node = Node(id=new_id,
                    created_at=creationDate,
                    updated_at=updateDate,
                    name=name,
                    type_='project')
        session.add(node)

        # We update the foreignkeys
        for table in ('estimation', 'invoice', 'cancelinvoice', 'phase',
                      'project_customer'):
            op.execute(
                "update {0} set project_id={1} where project_id={2}".format(
                    table, new_id, id_))

        # We update the project id
        op.execute("update project set id={0} where id={1};".format(
            new_id, id_))
        if index % 50 == 0:
            session.flush()
    op.execute("SET FOREIGN_KEY_CHECKS=1;")
def upgrade():
    from autonomie.models.task import (
        TaskLine,
        TaskLineGroup,
        Task,
        Estimation,
        CancelInvoice,
        Invoice,
    )
    from autonomie.models.base import (
        DBSESSION,
    )

    session = DBSESSION()

    index = 0
    query = Task.query()
    query = query.with_polymorphic([Invoice, CancelInvoice, Estimation])
    query = query.filter(
        Task.type_.in_(['invoice', 'estimation', 'cancelinvoice'])
    )
    for task in query:
        group = TaskLineGroup(task_id=task.id, order=0)

        for line in task.lines:

            tline = TaskLine(
                group=group,
                order=line.rowIndex,
                description=line.description,
                cost=line.cost,
                tva=line.tva,
                quantity=line.quantity,
            )

            if hasattr(line, 'product_id'):
                tline.product_id = line.product_id
            session.add(tline)

            if index % 100 == 0:
                session.flush()

    op.alter_column(
        table_name='estimation_payment',
        column_name='rowIndex',
        new_column_name='order',
        type_=sa.Integer,
    )
예제 #7
0
def upgrade():
    op.add_column('node', sa.Column('_acl', sa.Text()))

    from autonomie.models.base import DBSESSION
    from autonomie.models.node import Node
    session = DBSESSION()
    from alembic.context import get_bind
    conn = get_bind()
    req = "select max(id) from node"
    result = conn.execute(req).fetchall()
    max_id = result[0][0]

    print("The new max_id is : %s" % max_id)

    request = "select id, coordonnees_lastname from user_datas"
    result = conn.execute(request)

    op.execute("SET FOREIGN_KEY_CHECKS=0;")

    for index, (id, lastname) in enumerate(result):
        max_id += 1
        new_id = max_id
        node = Node(
            id=new_id,
            name=lastname,
            type_='userdata',
        )
        session.add(node)
        # Update des relations
        for table in "userdatas_socialdocs", "external_activity_datas", \
                     "company_datas", "date_diagnostic_datas", \
                     "date_convention_cape_datas", "date_dpae_datas":
            op.execute(
                "update {0} set userdatas_id={1} where userdatas_id={2}".
                format(table, new_id, id))
        # Update de la table node
        op.execute("update user_datas set id={0} where id={1};".format(
            new_id, id))
        if index % 50 == 0:
            session.flush()

    op.execute("SET FOREIGN_KEY_CHECKS=1;")
def upgrade():
    op.add_column('node', sa.Column('_acl', sa.Text()))

    from autonomie.models.base import DBSESSION
    from autonomie.models.node import Node
    session = DBSESSION()
    from alembic.context import get_bind
    conn = get_bind()
    req = "select max(id) from node"
    result = conn.execute(req).fetchall()
    max_id = result[0][0]

    print("The new max_id is : %s" % max_id)

    request = "select id, coordonnees_lastname from user_datas"
    result = conn.execute(request)

    op.execute("SET FOREIGN_KEY_CHECKS=0;")

    for index, (id, lastname) in enumerate(result):
        max_id += 1
        new_id = max_id
        node = Node(
            id=new_id,
            name=lastname,
            type_='userdata',
        )
        session.add(node)
        # Update des relations
        for table in "userdatas_socialdocs", "external_activity_datas", \
                     "company_datas", "date_diagnostic_datas", \
                     "date_convention_cape_datas", "date_dpae_datas":
            op.execute("update {0} set userdatas_id={1} where userdatas_id={2}".format(table, new_id,  id))
        # Update de la table node
        op.execute("update user_datas set id={0} where id={1};".format(new_id, id))
        if index % 50 == 0:
            session.flush()

    op.execute("SET FOREIGN_KEY_CHECKS=1;")
예제 #9
0
def upgrade():
    import logging
    logger = logging.getLogger('alembic.here')
    op.add_column(
        "user_datas",
        sa.Column(
            'statut_social_status_today_id',
            sa.Integer,
            sa.ForeignKey('social_status_option.id'),
        )
    )
    op.add_column(
        "user_datas",
        sa.Column(
            "parcours_employee_quality_id",
            sa.Integer,
            sa.ForeignKey('employee_quality_option.id'),
        )
    )
    op.add_column(
        "user_datas",
        sa.Column(
            "situation_antenne_id",
            sa.Integer,
            sa.ForeignKey('antenne_option.id')
        )
    )
    op.add_column(
        "task",
        sa.Column(
            "internal_number",
            sa.String(40),
        )
    )
    op.add_column(
        "task",
        sa.Column("company_index", sa.Integer)
    )
    op.execute("alter table task CHANGE sequence_number project_index int(11)")
    op.add_column(
        "task",
        sa.Column(
            "company_id",
            sa.Integer,
            sa.ForeignKey('company.id'),
        )
    )
    from autonomie.models.base import (
        DBSESSION,
    )
    session = DBSESSION()

    add_company_id(session, logger)
    add_company_index(session, logger)
    add_internal_number(session, logger)

    logger.warn("Adding Contract Histories")
    from autonomie.models.user import UserDatas, ContractHistory
    for id_, last_avenant in UserDatas.query('id', 'parcours_last_avenant'):
        if last_avenant:
            session.add(
                ContractHistory(
                    userdatas_id=id_,
                    date=last_avenant,
                    number=-1
                )
            )

    op.add_column(
        "date_convention_cape_datas",
        sa.Column('end_date', sa.Date(), nullable=True)
    )
    op.execute("alter table customer MODIFY code VARCHAR(4);")
    op.execute("alter table project MODIFY code VARCHAR(4);")

    create_custom_treasury_modules(session, logger)

    from zope.sqlalchemy import mark_changed
    mark_changed(session)