Use handler to get CORE Office URLs

instead of deprecated config function
This commit is contained in:
Lance Edgar 2023-09-14 12:59:39 -05:00
parent 0b7f3d8dcc
commit 045940d4fa
13 changed files with 66 additions and 82 deletions

View file

@ -24,10 +24,9 @@
Common menus for CORE-POS Common menus for CORE-POS
""" """
from rattail_corepos.config import core_office_url
def make_corepos_menu(request): def make_corepos_menu(request):
app = request.rattail_config.get_app()
corepos_menu = { corepos_menu = {
'title': "CORE-POS", 'title': "CORE-POS",
@ -218,7 +217,8 @@ def make_corepos_menu(request):
], ],
} }
office_url = core_office_url(request.rattail_config) corepos = app.get_corepos_handler()
office_url = corepos.get_office_url()
if office_url: if office_url:
corepos_menu['items'].insert( corepos_menu['items'].insert(
0, { 0, {

View file

@ -28,7 +28,6 @@ from corepos.db.office_op import model as corepos
from rattail_corepos.db.model import CoreMemberBatch, CoreMemberBatchRow from rattail_corepos.db.model import CoreMemberBatch, CoreMemberBatchRow
from rattail_corepos.batch.coremember import CoreMemberBatchHandler from rattail_corepos.batch.coremember import CoreMemberBatchHandler
from rattail_corepos.config import core_office_url, core_office_customer_account_url
from tailbone.views.batch import BatchMasterView from tailbone.views.batch import BatchMasterView
from tailbone_corepos.db import CoreOfficeSession from tailbone_corepos.db import CoreOfficeSession
@ -131,6 +130,7 @@ class CoreMemberBatchView(BatchMasterView):
return 'notice' return 'notice'
def template_kwargs_view_row(self, **kwargs): def template_kwargs_view_row(self, **kwargs):
app = self.get_rattail_app()
batch = kwargs['parent_instance'] batch = kwargs['parent_instance']
row = kwargs['instance'] row = kwargs['instance']
kwargs['batch'] = batch kwargs['batch'] = batch
@ -149,13 +149,12 @@ class CoreMemberBatchView(BatchMasterView):
# CORE Office URL # CORE Office URL
kwargs['core_office_url'] = None kwargs['core_office_url'] = None
if row.card_number: if row.card_number:
office_url = core_office_url(self.rattail_config) corepos = app.get_corepos_handler()
office_url = corepos.get_office_url()
if not office_url: if not office_url:
kwargs['core_office_why_no_url'] = "CORE Office URL is not configured" kwargs['core_office_why_no_url'] = "CORE Office URL is not configured"
else: else:
url = core_office_customer_account_url(self.rattail_config, url = corepos.get_office_member_url(row.card_number, office_url=office_url)
row.card_number,
office_url=office_url)
if url: if url:
kwargs['core_office_url'] = url kwargs['core_office_url'] = url
else: else:

View file

@ -28,7 +28,6 @@ from corepos.db.office_op import model as corepos
from rattail_corepos.db.model import CoreEquityImportBatch, CoreEquityImportBatchRow from rattail_corepos.db.model import CoreEquityImportBatch, CoreEquityImportBatchRow
from rattail_corepos.batch.equityimport import CoreEquityImportBatchHandler from rattail_corepos.batch.equityimport import CoreEquityImportBatchHandler
from rattail_corepos.config import core_office_url, core_office_customer_account_url
from webhelpers2.html import tags from webhelpers2.html import tags

View file

@ -26,8 +26,6 @@ CORE POS customer views
from corepos.db.office_op import model as corepos from corepos.db.office_op import model as corepos
from rattail_corepos.config import core_office_customer_account_url
from webhelpers2.html import tags from webhelpers2.html import tags
from .master import CoreOfficeMasterView from .master import CoreOfficeMasterView
@ -146,9 +144,9 @@ class CustomerClassicView(CoreOfficeMasterView):
return render_member_info(self.request, custdata, field) return render_member_info(self.request, custdata, field)
def core_office_object_url(self, office_url, customer): def core_office_object_url(self, office_url, customer):
return core_office_customer_account_url(self.rattail_config, app = self.get_rattail_app()
customer.card_number, corepos = app.get_corepos_handler()
office_url=office_url) return corepos.get_office_member_url(customer.card_number)
def download_results_fields_available(self, **kwargs): def download_results_fields_available(self, **kwargs):
fields = super().download_results_fields_available(**kwargs) fields = super().download_results_fields_available(**kwargs)

View file

@ -26,9 +26,6 @@ CORE POS master view
from collections import OrderedDict from collections import OrderedDict
from rattail.time import localtime
from rattail_corepos.config import core_office_url
from webhelpers2.html import tags from webhelpers2.html import tags
from tailbone.views import MasterView from tailbone.views import MasterView
@ -114,11 +111,13 @@ class CoreMasterView(MasterView):
the reason for lack of such a URL. the reason for lack of such a URL.
""" """
kwargs = super().template_kwargs_view(**kwargs) kwargs = super().template_kwargs_view(**kwargs)
app = self.get_rattail_app()
corepos = app.get_corepos_handler()
obj = kwargs['instance'] obj = kwargs['instance']
# CORE Office URL # CORE Office URL
kwargs['core_office_url'] = None kwargs['core_office_url'] = None
office_url = core_office_url(self.rattail_config) office_url = corepos.get_office_url()
if not office_url: if not office_url:
kwargs['core_office_why_no_url'] = "CORE Office URL is not configured" kwargs['core_office_why_no_url'] = "CORE Office URL is not configured"
else: else:

View file

@ -29,8 +29,6 @@ from sqlalchemy import orm
from corepos.db.office_op import model as corepos from corepos.db.office_op import model as corepos
from corepos.db.office_trans import model as coretrans from corepos.db.office_trans import model as coretrans
from rattail_corepos.config import core_office_url, core_office_customer_account_url
from webhelpers2.html import HTML, tags from webhelpers2.html import HTML, tags
from tailbone_corepos.db import CoreTransSession from tailbone_corepos.db import CoreTransSession
@ -210,13 +208,11 @@ class MemberView(CoreOfficeMasterView):
return app.render_currency(balance.payments) return app.render_currency(balance.payments)
def get_xref_buttons(self, member): def get_xref_buttons(self, member):
url = core_office_url(self.rattail_config) app = self.get_rattail_app()
corepos = app.get_corepos_handler()
url = corepos.get_office_member_url(member.card_number)
if url: if url:
url = core_office_customer_account_url(self.rattail_config, return [self.make_xref_button(url=url, text="View in CORE Office")]
member.card_number,
office_url=url)
return [self.make_xref_button(url=url,
text="View in CORE Office")]
def get_row_data(self, member): def get_row_data(self, member):
return CoreTransSession.query(coretrans.StockPurchase)\ return CoreTransSession.query(coretrans.StockPurchase)\

View file

@ -24,8 +24,6 @@
Customer Views Customer Views
""" """
from rattail_corepos.config import core_office_url, core_office_customer_account_url
from webhelpers2.html import tags from webhelpers2.html import tags
from tailbone.views import ViewSupplement from tailbone.views import ViewSupplement
@ -61,11 +59,10 @@ class CustomerViewSupplement(ViewSupplement):
return [model.CoreCustomer] return [model.CoreCustomer]
def get_xref_buttons(self, customer): def get_xref_buttons(self, customer):
url = core_office_url(self.rattail_config) app = self.get_rattail_app()
corepos = app.get_corepos_handler()
url = corepos.get_office_member_url(customer.number)
if url: if url:
url = core_office_customer_account_url(self.rattail_config,
customer.number,
office_url=url)
return [{'url': url, 'text': "View in CORE Office"}] return [{'url': url, 'text': "View in CORE Office"}]
def get_xref_links(self, customer): def get_xref_links(self, customer):

View file

@ -2,7 +2,7 @@
################################################################################ ################################################################################
# #
# Rattail -- Retail Software Framework # Rattail -- Retail Software Framework
# Copyright © 2010-2022 Lance Edgar # Copyright © 2010-2023 Lance Edgar
# #
# This file is part of Rattail. # This file is part of Rattail.
# #
@ -24,8 +24,6 @@
Department Views Department Views
""" """
from rattail_corepos.config import core_office_url
from tailbone.views import ViewSupplement from tailbone.views import ViewSupplement
@ -55,7 +53,9 @@ class DepartmentViewSupplement(ViewSupplement):
return [model.CoreDepartment] return [model.CoreDepartment]
def get_xref_buttons(self, department): def get_xref_buttons(self, department):
url = core_office_url(self.rattail_config) app = self.get_rattail_app()
corepos = app.get_corepos_handler()
url = corepos.get_office_url()
if url: if url:
url = '{}/item/departments/DepartmentEditor.php?did={}'.format( url = '{}/item/departments/DepartmentEditor.php?did={}'.format(
url, department.number) url, department.number)

View file

@ -24,8 +24,6 @@
Member Views Member Views
""" """
from rattail_corepos.config import core_office_url, core_office_customer_account_url
from webhelpers2.html import tags from webhelpers2.html import tags
from tailbone.views import ViewSupplement from tailbone.views import ViewSupplement
@ -38,7 +36,9 @@ class MembershipTypeViewSupplement(ViewSupplement):
route_prefix = 'membership_types' route_prefix = 'membership_types'
def get_xref_buttons(self, memtype): def get_xref_buttons(self, memtype):
url = core_office_url(self.rattail_config) app = self.get_rattail_app()
corepos = app.get_corepos_handler()
url = corepos.get_office_url()
if url: if url:
url = f'{url}/mem/MemberTypeEditor.php' url = f'{url}/mem/MemberTypeEditor.php'
return [{'url': url, 'text': "View in CORE Office"}] return [{'url': url, 'text': "View in CORE Office"}]
@ -71,11 +71,10 @@ class MemberViewSupplement(ViewSupplement):
def get_xref_buttons(self, member): def get_xref_buttons(self, member):
if member.customer and member.customer.corepos_card_number: if member.customer and member.customer.corepos_card_number:
url = core_office_url(self.rattail_config) app = self.get_rattail_app()
corepos = app.get_corepos_handler()
url = corepos.get_office_member_url(member.customer.corepos_card_number)
if url: if url:
url = core_office_customer_account_url(self.rattail_config,
member.customer.corepos_card_number,
office_url=url)
return [{'url': url, 'text': "View in CORE Office"}] return [{'url': url, 'text': "View in CORE Office"}]
def get_xref_links(self, member): def get_xref_links(self, member):
@ -140,7 +139,9 @@ class MemberEquityPaymentViewSupplement(ViewSupplement):
def get_xref_buttons(self, payment): def get_xref_buttons(self, payment):
if payment.corepos_transaction_number and payment.corepos_card_number: if payment.corepos_transaction_number and payment.corepos_card_number:
url = core_office_url(self.rattail_config) app = self.get_rattail_app()
corepos = app.get_corepos_handler()
url = corepos.get_office_url()
if url: if url:
url = f'{url}/reports/Equity/EquityReport.php?memNum={payment.corepos_card_number}' url = f'{url}/reports/Equity/EquityReport.php?memNum={payment.corepos_card_number}'
return [{'url': url, 'text': "View in CORE Office"}] return [{'url': url, 'text': "View in CORE Office"}]

View file

@ -26,8 +26,6 @@ Person views
from collections import OrderedDict from collections import OrderedDict
from rattail_corepos.config import core_office_customer_account_url
from tailbone.views import ViewSupplement from tailbone.views import ViewSupplement
@ -60,8 +58,9 @@ class PersonViewSupplement(ViewSupplement):
def get_context_for_customer(self, customer, context): def get_context_for_customer(self, customer, context):
if customer.corepos_card_number: if customer.corepos_card_number:
url = core_office_customer_account_url(self.rattail_config, app = self.get_rattail_app()
customer.corepos_card_number) corepos = app.get_corepos_handler()
url = corepos.get_office_member_url(customer.corepos_card_number)
if url: if url:
context['external_links'].append({'label': "View in CORE Office", context['external_links'].append({'label': "View in CORE Office",
'url': url}) 'url': url})
@ -70,20 +69,21 @@ class PersonViewSupplement(ViewSupplement):
def get_member_xref_buttons(self, person): def get_member_xref_buttons(self, person):
buttons = OrderedDict() buttons = OrderedDict()
app = self.get_rattail_app()
corepos = app.get_corepos_handler()
office_url = corepos.get_office_url()
if office_url:
kw = {'office_url': office_url}
for member in person.members: for member in person.members:
url = core_office_customer_account_url( url = corepos.get_office_member_url(member.number, **kw)
self.rattail_config, member.number) buttons[member.uuid] = {'url': url, 'text': "View in CORE Office"}
buttons[member.uuid] = {'url': url,
'text': "View in CORE Office"}
for customer in person.customers: for customer in person.customers:
for member in customer.members: for member in customer.members:
if member.uuid not in buttons: if member.uuid not in buttons:
url = core_office_customer_account_url( url = corepos.get_office_member_url(member.number, **kw)
self.rattail_config, member.number) buttons[member.uuid] = {'url': url, 'text': "View in CORE Office"}
buttons[member.uuid] = {'url': url,
'text': "View in CORE Office"}
return buttons.values() return buttons.values()

View file

@ -2,7 +2,7 @@
################################################################################ ################################################################################
# #
# Rattail -- Retail Software Framework # Rattail -- Retail Software Framework
# Copyright © 2010-2022 Lance Edgar # Copyright © 2010-2023 Lance Edgar
# #
# This file is part of Rattail. # This file is part of Rattail.
# #
@ -24,8 +24,6 @@
Product Views Product Views
""" """
from rattail_corepos.config import core_office_url
from webhelpers2.html import tags from webhelpers2.html import tags
from tailbone.views import ViewSupplement from tailbone.views import ViewSupplement
@ -74,10 +72,10 @@ class ProductViewSupplement(ViewSupplement):
return ['corepos_id'] return ['corepos_id']
def get_xref_buttons(self, product): def get_xref_buttons(self, product):
url = core_office_url(self.rattail_config) app = self.get_rattail_app()
corepos = app.get_corepos_handler()
url = corepos.get_office_product_url(product.item_id)
if url: if url:
url = '{}/item/ItemEditorPage.php?searchupc={}'.format(
url, product.item_id)
return [{'url': url, 'text': "View in CORE Office"}] return [{'url': url, 'text': "View in CORE Office"}]
def get_xref_links(self, product): def get_xref_links(self, product):

View file

@ -27,9 +27,6 @@ Purchase views
import csv import csv
import os import os
from rattail.util import pretty_quantity
from rattail_corepos.config import core_office_url
from tailbone.views.purchases import core as base from tailbone.views.purchases import core as base
@ -39,11 +36,13 @@ class PurchaseView(base.PurchaseView):
""" """
def template_kwargs_view(self, **kwargs): def template_kwargs_view(self, **kwargs):
kwargs = super(PurchaseView, self).template_kwargs_view(**kwargs) kwargs = super().template_kwargs_view(**kwargs)
app = self.get_rattail_app()
corepos = app.get_corepos_handler()
url = core_office_url(self.rattail_config) url = corepos.get_office_url()
if url: if url:
url = '{}/purchasing/ImportPurchaseOrder.php'.format(url) url = f'{url}/purchasing/ImportPurchaseOrder.php'
kwargs['corepos_import_url'] = url kwargs['corepos_import_url'] = url
return kwargs return kwargs
@ -83,13 +82,13 @@ class PurchaseView(base.PurchaseView):
# for now i am being "conservative" and mimicking CORE *behavior*. # for now i am being "conservative" and mimicking CORE *behavior*.
unit_size = None unit_size = None
if item.product: if item.product:
unit_size = pretty_quantity(item.product.unit_size) unit_size = app.render_quantity(item.product.unit_size)
rows.append({ rows.append({
'sku': item.vendor_code, 'sku': item.vendor_code,
'cost_total': item.po_total, 'cost_total': item.po_total,
'quantity_units': pretty_quantity(item.units_ordered), 'quantity_units': app.render_quantity(item.units_ordered),
'quantity_cases': pretty_quantity(item.cases_ordered), 'quantity_cases': app.render_quantity(item.cases_ordered),
'units_per_case': pretty_quantity(item.case_quantity), 'units_per_case': app.render_quantity(item.case_quantity),
'unit_size': unit_size, 'unit_size': unit_size,
'brand': item.brand_name, 'brand': item.brand_name,
'description': item.description, 'description': item.description,

View file

@ -2,7 +2,7 @@
################################################################################ ################################################################################
# #
# Rattail -- Retail Software Framework # Rattail -- Retail Software Framework
# Copyright © 2010-2022 Lance Edgar # Copyright © 2010-2023 Lance Edgar
# #
# This file is part of Rattail. # This file is part of Rattail.
# #
@ -24,8 +24,6 @@
Vendor views Vendor views
""" """
from rattail_corepos.config import core_office_url
from tailbone.views import ViewSupplement from tailbone.views import ViewSupplement
@ -55,10 +53,10 @@ class VendorViewSupplement(ViewSupplement):
return [model.CoreVendor] return [model.CoreVendor]
def get_xref_buttons(self, vendor): def get_xref_buttons(self, vendor):
url = core_office_url(self.rattail_config) app = self.get_rattail_app()
corepos = app.get_corepos_handler()
url = corepos.get_office_vendor_url(vendor.corepos_id)
if url: if url:
url = '{}/item/vendors/VendorIndexPage.php?vid={}'.format(
url, vendor.corepos_id)
return [{'url': url, 'text': "View in CORE Office"}] return [{'url': url, 'text': "View in CORE Office"}]