Various tweaks to support mobile inventory batches
still not fully there I think, but pretty close..
This commit is contained in:
parent
452cb99349
commit
32d256932e
10 changed files with 341 additions and 39 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue