Add setting to expose/hide "active in POS" customer flag
This commit is contained in:
parent
e77ca93d80
commit
28238c6fb5
23
tailbone/templates/customers/configure.mako
Normal file
23
tailbone/templates/customers/configure.mako
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
## -*- coding: utf-8; -*-
|
||||||
|
<%inherit file="/configure.mako" />
|
||||||
|
|
||||||
|
<%def name="form_content()">
|
||||||
|
|
||||||
|
<h3 class="block is-size-3">POS</h3>
|
||||||
|
<div class="block" style="padding-left: 2rem;">
|
||||||
|
|
||||||
|
<b-field>
|
||||||
|
<b-checkbox name="rattail.customers.active_in_pos"
|
||||||
|
v-model="simpleSettings['rattail.customers.active_in_pos']"
|
||||||
|
native-value="true"
|
||||||
|
@input="settingsNeedSaved = true">
|
||||||
|
Expose/track the "Active in POS" flag for customers.
|
||||||
|
</b-checkbox>
|
||||||
|
</b-field>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</%def>
|
||||||
|
|
||||||
|
|
||||||
|
${parent.body()}
|
|
@ -50,6 +50,7 @@ class CustomerView(MasterView):
|
||||||
people_detachable = True
|
people_detachable = True
|
||||||
touchable = True
|
touchable = True
|
||||||
supports_autocomplete = True
|
supports_autocomplete = True
|
||||||
|
configurable = True
|
||||||
|
|
||||||
# whether to show "view full profile" helper for customer view
|
# whether to show "view full profile" helper for customer view
|
||||||
show_profiles_helper = True
|
show_profiles_helper = True
|
||||||
|
@ -92,6 +93,13 @@ class CustomerView(MasterView):
|
||||||
'members',
|
'members',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
def get_expose_active_in_pos(self):
|
||||||
|
if not hasattr(self, '_expose_active_in_pos'):
|
||||||
|
self._expose_active_in_pos = self.rattail_config.getbool(
|
||||||
|
'rattail', 'customers.active_in_pos',
|
||||||
|
default=False)
|
||||||
|
return self._expose_active_in_pos
|
||||||
|
|
||||||
def configure_grid(self, g):
|
def configure_grid(self, g):
|
||||||
super(CustomerView, self).configure_grid(g)
|
super(CustomerView, self).configure_grid(g)
|
||||||
|
|
||||||
|
@ -132,8 +140,9 @@ class CustomerView(MasterView):
|
||||||
g.set_renderer('person', self.grid_render_person)
|
g.set_renderer('person', self.grid_render_person)
|
||||||
|
|
||||||
# active_in_pos
|
# active_in_pos
|
||||||
g.filters['active_in_pos'].default_active = True
|
if self.get_expose_active_in_pos():
|
||||||
g.filters['active_in_pos'].default_verb = 'is_true'
|
g.filters['active_in_pos'].default_active = True
|
||||||
|
g.filters['active_in_pos'].default_verb = 'is_true'
|
||||||
|
|
||||||
g.set_link('id')
|
g.set_link('id')
|
||||||
g.set_link('number')
|
g.set_link('number')
|
||||||
|
@ -142,8 +151,9 @@ class CustomerView(MasterView):
|
||||||
g.set_link('email')
|
g.set_link('email')
|
||||||
|
|
||||||
def grid_extra_class(self, customer, i):
|
def grid_extra_class(self, customer, i):
|
||||||
if not customer.active_in_pos:
|
if self.get_expose_active_in_pos():
|
||||||
return 'warning'
|
if not customer.active_in_pos:
|
||||||
|
return 'warning'
|
||||||
|
|
||||||
def get_instance(self):
|
def get_instance(self):
|
||||||
try:
|
try:
|
||||||
|
@ -246,6 +256,10 @@ class CustomerView(MasterView):
|
||||||
customer = f.model_instance
|
customer = f.model_instance
|
||||||
permission_prefix = self.get_permission_prefix()
|
permission_prefix = self.get_permission_prefix()
|
||||||
|
|
||||||
|
if not self.get_expose_active_in_pos():
|
||||||
|
f.remove('active_in_pos',
|
||||||
|
'active_in_pos_sticky')
|
||||||
|
|
||||||
# members
|
# members
|
||||||
if self.creating:
|
if self.creating:
|
||||||
f.remove_field('members')
|
f.remove_field('members')
|
||||||
|
@ -430,6 +444,16 @@ class CustomerView(MasterView):
|
||||||
|
|
||||||
return self.redirect(self.request.get_referrer())
|
return self.redirect(self.request.get_referrer())
|
||||||
|
|
||||||
|
def configure_get_simple_settings(self):
|
||||||
|
return [
|
||||||
|
|
||||||
|
# POS
|
||||||
|
{'section': 'rattail',
|
||||||
|
'option': 'customers.active_in_pos',
|
||||||
|
'type': bool},
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def defaults(cls, config):
|
def defaults(cls, config):
|
||||||
cls._defaults(config)
|
cls._defaults(config)
|
||||||
|
|
Loading…
Reference in a new issue