Various tweaks to support mobile inventory batches

still not fully there I think, but pretty close..
This commit is contained in:
Lance Edgar 2017-07-11 20:57:31 -05:00
parent 452cb99349
commit 32d256932e
10 changed files with 341 additions and 39 deletions

View file

@ -312,6 +312,21 @@ class MasterView(View):
return self.redirect_after_create(obj)
return self.render_to_response('create', {'form': form})
def mobile_create(self):
"""
Mobile view for creating a new primary object
"""
self.creating = True
form = self.make_mobile_form(self.get_model_class())
if self.request.method == 'POST':
if form.validate():
# let save_create_form() return alternate object if necessary
obj = self.save_create_form(form) or form.fieldset.model
self.after_create(obj)
self.flash_after_create(obj)
return self.redirect_after_create(obj, mobile=True)
return self.render_to_response('create', {'form': form}, mobile=True)
def flash_after_create(self, obj):
self.request.session.flash("{} has been created: {}".format(
self.get_model_title(), self.get_instance_title(obj)))
@ -320,8 +335,8 @@ class MasterView(View):
self.before_create(form)
form.save()
def redirect_after_create(self, instance):
return self.redirect(self.get_action_url('view', instance))
def redirect_after_create(self, instance, mobile=False):
return self.redirect(self.get_action_url('view', instance, mobile=mobile))
def view(self, instance=None):
"""
@ -573,6 +588,13 @@ class MasterView(View):
fieldset = self.make_fieldset(instance)
self.preconfigure_mobile_fieldset(fieldset)
self.configure_mobile_fieldset(fieldset)
kwargs.setdefault('creating', self.creating)
kwargs.setdefault('editing', self.editing)
kwargs.setdefault('action_url', self.request.current_route_url(_query=None))
if self.creating:
kwargs.setdefault('cancel_url', self.get_index_url(mobile=True))
else:
kwargs.setdefault('cancel_url', self.get_action_url('view', instance, mobile=True))
factory = kwargs.pop('factory', forms.AlchemyForm)
kwargs.setdefault('session', self.Session())
form = factory(self.request, fieldset, **kwargs)