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
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
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
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
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