From 5e1726a90e12b13709ebe74e6bf2382b36c34d26 Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Sun, 1 Oct 2023 19:49:27 -0500 Subject: [PATCH] Add integration views for CORE/employees --- tailbone_corepos/views/__init__.py | 1 + tailbone_corepos/views/employees.py | 63 +++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 tailbone_corepos/views/employees.py diff --git a/tailbone_corepos/views/__init__.py b/tailbone_corepos/views/__init__.py index 3ba323c..75a7794 100644 --- a/tailbone_corepos/views/__init__.py +++ b/tailbone_corepos/views/__init__.py @@ -30,6 +30,7 @@ def includeme(config): # native view supplements config.include('tailbone_corepos.views.customers') config.include('tailbone_corepos.views.departments') + config.include('tailbone_corepos.views.employees') config.include('tailbone_corepos.views.members') config.include('tailbone_corepos.views.people') config.include('tailbone_corepos.views.products') diff --git a/tailbone_corepos/views/employees.py b/tailbone_corepos/views/employees.py new file mode 100644 index 0000000..121aadb --- /dev/null +++ b/tailbone_corepos/views/employees.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8; -*- +################################################################################ +# +# Rattail -- Retail Software Framework +# Copyright © 2010-2023 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 . +# +################################################################################ +""" +Employee Views +""" + +from tailbone.views import ViewSupplement + + +class EmployeeViewSupplement(ViewSupplement): + """ + Employee view supplement for CORE integration + """ + route_prefix = 'employees' + + labels = { + 'corepos_number': "CORE-POS Number", + } + + def get_grid_query(self, query): + model = self.model + return query.outerjoin(model.CoreEmployee) + + def configure_grid(self, g): + model = self.model + g.set_filter('corepos_number', model.CoreEmployee.corepos_number) + + def configure_form(self, f): + f.append('corepos_number') + + def get_version_child_classes(self): + model = self.model + return [model.CoreEmployee] + + def get_xref_buttons(self, employee): + app = self.get_rattail_app() + url = app.get_corepos_handler().get_office_employee_url(employee.corepos_number) + if url: + return [{'url': url, 'text': "View in CORE Office"}] + + +def includeme(config): + EmployeeViewSupplement.defaults(config)