# -*- coding: utf-8; -*- ################################################################################ # # Rattail -- Retail Software Framework # Copyright © 2010-2024 Lance Edgar # # This file is part of Rattail. # # Rattail is free software: you can redistribute it and/or modify it under the # terms of the GNU General Public License as published by the Free Software # Foundation, either version 3 of the License, or (at your option) any later # version. # # Rattail is distributed in the hope that it will be useful, but WITHOUT ANY # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. # # You should have received a copy of the GNU General Public License along with # Rattail. If not, see . # ################################################################################ """ Rattail-COREPOS Config Extension """ import warnings from wuttjamaican.db.conf import get_engines from rattail.config import ConfigExtension class RattailCOREPOSExtension(ConfigExtension): """ Config extension for Rattail-COREPOS """ key = 'rattail-corepos' def configure(self, config): # show deprecation warnings by default, when they occur in corepos # (nb. rattail_corepos warnings are already shown, per rattail) warnings.filterwarnings('default', category=DeprecationWarning, module=r'^corepos') # office_op from corepos.db.office_op import Session engines = get_engines(config, 'corepos.db.office_op') config.core_office_op_engines = engines config.core_office_op_engine = engines.get('default') Session.configure(bind=config.core_office_op_engine) # TODO: deprecate / remove these next 2 lines config.corepos_engines = engines config.corepos_engine = engines.get('default') # office_trans from corepos.db.office_trans import Session engines = get_engines(config, 'corepos.db.office_trans') config.core_office_trans_engines = engines config.core_office_trans_engine = engines.get('default') Session.configure(bind=config.core_office_trans_engine) # TODO: deprecate / remove these next 2 lines config.coretrans_engines = engines config.coretrans_engine = engines.get('default') # office_arch from corepos.db.office_arch import Session engines = get_engines(config, 'corepos.db.office_arch') if not engines: engines = get_engines(config, 'corepos.db.office_trans_archive') if engines: warnings.warn("config section [corepos.db.office_trans_archive] is deprecated; " "please use section [corepos.db.office_arch] instead", DeprecationWarning) config.core_office_arch_engines = engines config.core_office_arch_engine = engines.get('default') # TODO: deprecate / remove these 2 config.core_office_trans_archive_engines = config.core_office_arch_engines config.core_office_trans_archive_engine = config.core_office_arch_engine Session.configure(bind=config.core_office_arch_engine) # lane_op from corepos.db.lane_op import Session engines = get_engines(config, 'corepos.db.lane_op') config.core_lane_op_engines = engines config.core_lane_op_engine = engines.get('default') Session.configure(bind=config.core_lane_op_engine) ############################## # import handlers ############################## # rattail corepos-import-square config.setdefault('rattail.importing', 'to_corepos_db_office_trans.from_square_csv.import.default_handler', 'rattail_corepos.corepos.importing.db.square:FromSquareToCoreTrans') config.setdefault('rattail.importing', 'to_corepos_db_office_trans.from_square_csv.import.default_cmd', 'rattail corepos-import-square') # TODO: there was not a legacy setting in place for this one # config.setdefault('rattail.importing', 'to_corepos_db_office_trans.from_square_csv.import.legacy_handler_setting', # 'corepos.importing, square.handler') # rattail export-corepos config.setdefault('rattail.importing', 'to_corepos_api.from_rattail.export.default_handler', 'rattail_corepos.corepos.importing.rattail:FromRattailToCore') config.setdefault('rattail.importing', 'to_corepos_api.from_rattail.export.default_cmd', 'rattail export-corepos') config.setdefault('rattail.importing', 'to_corepos_api.from_rattail.export.legacy_handler_setting', 'rattail.exporting, corepos.handler') # rattail import-corepos-api config.setdefault('rattail.importing', 'to_rattail.from_corepos_api.import.default_handler', 'rattail_corepos.importing.corepos.api:FromCOREPOSToRattail') config.setdefault('rattail.importing', 'to_rattail.from_corepos_api.import.default_cmd', 'rattail import-corepos-api') config.setdefault('rattail.importing', 'to_rattail.from_corepos_api.import.legacy_handler_setting', 'rattail.importing, corepos_api.handler') # rattail import-corepos-db config.setdefault('rattail.importing', 'to_rattail.from_corepos_db_office_op.import.default_handler', 'rattail_corepos.importing.corepos.db:FromCOREPOSToRattail') config.setdefault('rattail.importing', 'to_rattail.from_corepos_db_office_op.import.default_cmd', 'rattail import-corepos-db') config.setdefault('rattail.importing', 'to_rattail.from_corepos_db_office_op.import.legacy_handler_setting', 'rattail.importing, corepos.handler') # trainwreck import-corepos config.setdefault('rattail.importing', 'to_trainwreck.from_corepos_db_office_trans.import.default_handler', 'rattail_corepos.trainwreck.importing.corepos:FromCoreToTrainwreck') config.setdefault('rattail.importing', 'to_trainwreck.from_corepos_db_office_trans.import.default_cmd', 'trainwreck import-corepos') # TODO: there was not a legacy setting in place for this one # config.setdefault('rattail.importing', 'to_trainwreck.from_corepos_db_office_trans.import.legacy_handler_setting', # 'trainwreck.importing, corepos.handler') # core-office export-lane-op config.setdefault('rattail.importing', 'to_corepos_db_lane_op.from_corepos_db_office_op.export.default_handler', 'rattail_corepos.corepos.lane.importing.op.office:FromCoreOfficeToCoreLane') config.setdefault('rattail.importing', 'to_corepos_db_lane_op.from_corepos_db_office_op.export.default_cmd', 'core-office export-lane-op') config.setdefault('rattail.importing', 'to_corepos_db_lane_op.from_corepos_db_office_op.export.legacy_setting', 'corepos.lane.importing, office.handler') # core-office import-self config.setdefault('rattail.importing', 'to_self.from_corepos_db_office_op.import.default_handler', 'rattail_corepos.corepos.office.importing.db.local:FromCoreOfficeToSelf') config.setdefault('rattail.importing', 'to_self.from_corepos_db_office_op.import.default_cmd', 'core-office import-self') # crepes export-core config.setdefault('rattail.importing', 'to_corepos_db_office_op.from_corepos_db_office_op.export.default_handler', 'rattail_corepos.corepos.importing.db.corepos:FromCoreToCoreExport') config.setdefault('rattail.importing', 'to_corepos_db_office_op.from_corepos_db_office_op.export.default_cmd', 'crepes export-core') config.setdefault('rattail.importing', 'to_corepos_db_office_op.from_corepos_db_office_op.export.legacy_setting', 'rattail_corepos.exporting, corepos.handler') # crepes export-csv config.setdefault('rattail.importing', 'to_csv.from_corepos_db_office_op.export.default_handler', 'rattail_corepos.corepos.importing.db.exporters.csv:FromCoreToCSV') config.setdefault('rattail.importing', 'to_csv.from_corepos_db_office_op.export.default_cmd', 'crepes export-csv') config.setdefault('rattail.importing', 'to_csv.from_corepos_db_office_op.export.legacy_setting', 'rattail_corepos.exporting, csv.handler') # crepes import-core config.setdefault('rattail.importing', 'to_corepos_db_office_op.from_corepos_db_office_op.import.default_handler', 'rattail_corepos.corepos.importing.db.corepos:FromCoreToCoreImport') config.setdefault('rattail.importing', 'to_corepos_db_office_op.from_corepos_db_office_op.import.default_cmd', 'crepes import-core') config.setdefault('rattail.importing', 'to_corepos_db_office_op.from_corepos_db_office_op.import.legacy_setting', 'rattail_corepos.importing, corepos.handler') # crepes import-csv config.setdefault('rattail.importing', 'to_corepos_db_office_op.from_csv.import.default_handler', 'rattail_corepos.corepos.importing.db.csv:FromCSVToCore') config.setdefault('rattail.importing', 'to_corepos_db_office_op.from_csv.import.default_cmd', 'crepes import-csv') config.setdefault('rattail.importing', 'to_corepos_db_office_op.from_csv.import.legacy_setting', 'rattail_corepos.importing, csv.handler') ############################## # batch handlers ############################## # corepos_member config.setdefault('rattail.batch', 'corepos_member.handler.default', 'rattail_corepos.batch.coremember:CoreMemberBatchHandler') # corepos_equity_import config.setdefault('rattail.batch', 'corepos_equity_import.handler.default', 'rattail_corepos.batch.equityimport:CoreEquityImportBatchHandler') def core_office_url(config, require=False, **kwargs): """ DEPRECATED """ warnings.warn("core_office_url() function is deprecated; please use " "corepos_handler.get_office_url() instead", DeprecationWarning, stacklevel=2) app = config.get_app() corepos = app.get_corepos_handler() return corepos.get_office_url(require=require, **kwargs) def core_office_customer_account_url(config, card_number, office_url=None): """ DEPRECATED """ warnings.warn("core_office_customer_account_url() function is deprecated; please use " "corepos_handler.get_office_customer_account_url() instead", DeprecationWarning, stacklevel=2) app = config.get_app() corepos = app.get_corepos_handler() return corepos.get_office_member_url(card_number, office_url=office_url, **kwargs)