Beispiel #1
0
def save_plan(request):
    """ Save plan object to database
    :param request:
    :return: True if Ok
    """
    plan = request.validated["plan"]

    patch = get_revision_changes(plan.serialize("plain"),
                                 request.validated["plan_src"])
    if patch:
        append_revision(request, plan, patch)
        old_date_modified = plan.dateModified

        if getattr(plan, "modified", True):
            now = get_now()
            plan.dateModified = now
            if any(c for c in patch if c["path"].startswith("/cancellation/")):
                plan.cancellation.date = now

        with handle_store_exceptions(request):
            plan.store(request.registry.db)
            LOGGER.info(
                "Saved plan {}: dateModified {} -> {}".format(
                    plan.id, old_date_modified
                    and old_date_modified.isoformat(),
                    plan.dateModified.isoformat()),
                extra=context_unpack(request, {"MESSAGE_ID": "save_plan"},
                                     {"PLAN_REV": plan.rev}),
            )
            return True
Beispiel #2
0
def save_tender(request):
    tender = request.validated["tender"]

    if tender.mode == u"test":
        set_modetest_titles(tender)

    patch = get_revision_changes(tender.serialize("plain"),
                                 request.validated["tender_src"])
    if patch:
        now = get_now()
        append_tender_revision(request, tender, patch, now)

        old_date_modified = tender.dateModified
        if getattr(tender, "modified", True):
            tender.dateModified = now

        with handle_store_exceptions(request):
            tender.store(request.registry.db)
            LOGGER.info(
                "Saved tender {}: dateModified {} -> {}".format(
                    tender.id, old_date_modified
                    and old_date_modified.isoformat(),
                    tender.dateModified.isoformat()),
                extra=context_unpack(request, {"MESSAGE_ID": "save_tender"},
                                     {"RESULT": tender.rev}),
            )
            return True
def save_agreement(request):
    """
    Save agreement object to database
    :param request:
    :return: True if Ok
    """
    agreement = request.validated["agreement"]

    if agreement.mode == u"test":
        set_modetest_titles(agreement)

    patch = get_revision_changes(agreement.serialize("plain"),
                                 request.validated["agreement_src"])
    if patch:
        append_revision(request, agreement, patch)
        old_date_modified = agreement.dateModified
        agreement.dateModified = get_now()

        with handle_store_exceptions(request):
            agreement.store(request.registry.db)
            LOGGER.info(
                "Saved agreement {}: dateModified {} -> {}".format(
                    agreement.id,
                    old_date_modified and old_date_modified.isoformat(),
                    agreement.dateModified.isoformat(),
                ),
                extra=context_unpack(request, {"MESSAGE_ID": "save_agreement"},
                                     {"AGREEMENT_REV": agreement.rev}),
            )
            return True
def save_contract(request):
    """ Save contract object to database
    :param request:
    :return: True if Ok
    """
    contract = request.validated["contract"]

    if contract.mode == "test":
        set_modetest_titles(contract)

    patch = get_revision_changes(contract.serialize("plain"),
                                 request.validated["contract_src"])
    if patch:
        append_revision(request, contract, patch)

        old_date_modified = contract.dateModified
        contract.dateModified = get_now()

        with handle_store_exceptions(request):
            contract.store(request.registry.db)
            LOGGER.info(
                "Saved contract {}: dateModified {} -> {}".format(
                    contract.id, old_date_modified
                    and old_date_modified.isoformat(),
                    contract.dateModified.isoformat()),
                extra=context_unpack(request, {"MESSAGE_ID": "save_contract"},
                                     {"CONTRACT_REV": contract.rev}),
            )
            return True
Beispiel #5
0
def save_object(request, obj_name, with_test_mode=True):
    obj = request.validated[obj_name]

    if with_test_mode and obj.mode == u"test":
        set_modetest_titles(obj)

    patch = get_revision_changes(obj.serialize("plain"), request.validated["%s_src" % obj_name])
    if patch:
        now = get_now()
        append_framework_revision(request, obj, patch, now)

        old_date_modified = obj.dateModified
        if getattr(obj, "modified", True):
            obj.dateModified = now

        with handle_store_exceptions(request):
            obj.store(request.registry.db)
            LOGGER.info(
                "Saved {} {}: dateModified {} -> {}".format(
                    obj_name,
                    obj.id,
                    old_date_modified and old_date_modified.isoformat(),
                    obj.dateModified.isoformat()
                ),
                extra=context_unpack(request, {"MESSAGE_ID": "save_{}".format(obj_name)}, {"RESULT": obj.rev}),
            )
            return True
Beispiel #6
0
def save_transfer(request):
    """ Save transfer object to database
    :param request:
    :return: True if Ok
    """
    transfer = request.validated["transfer"]
    transfer.date = get_now()

    with handle_store_exceptions(request):
        transfer.store(request.registry.db)
        LOGGER.info(
            "Saved transfer {}: at {}".format(transfer.id, get_now().isoformat()),
            extra=context_unpack(request, {"MESSAGE_ID": "save_transfer"}),
        )
        return True
Beispiel #7
0
def save_object(request,
                obj_name,
                with_test_mode=True,
                additional_obj_names=""):
    obj = request.validated[obj_name]

    if with_test_mode and obj.mode == "test":
        set_modetest_titles(obj)

    patch = get_revision_changes(obj.serialize("plain"),
                                 request.validated["%s_src" % obj_name])
    if patch:
        now = get_now()
        append_obj_revision(request, obj, patch, now)

        old_date_modified = obj.dateModified
        if getattr(obj, "modified", True):
            obj.dateModified = now

        for i in additional_obj_names:
            if i in request.validated:
                request.validated[i].dateModified = now

        with handle_store_exceptions(request):
            obj.store(request.registry.databases[f"{obj_name}s"]
                      )  # TODO a better way to specify db name?
            LOGGER.info(
                "Saved {} {}: dateModified {} -> {}".format(
                    obj_name, obj.id, old_date_modified
                    and old_date_modified.isoformat(),
                    obj.dateModified.isoformat()),
                extra=context_unpack(
                    request, {"MESSAGE_ID": "save_{}".format(obj_name)},
                    {"RESULT": obj.rev}),
            )
            return True