Various tweaks to inventory batch logic

really to support zero-all mode, but several generic changes too
This commit is contained in:
Lance Edgar 2017-08-10 11:10:42 -05:00
parent 1d9489169b
commit 0ad2113b81
4 changed files with 42 additions and 13 deletions

View file

@ -113,6 +113,9 @@ class BatchMasterView(MasterView):
kwargs['rendered_execution_options'] = self.render_execution_options(batch)
return kwargs
def allow_worksheet(self, batch):
return not batch.executed and not batch.complete
def template_kwargs_index(self, **kwargs):
kwargs['execute_enabled'] = self.instance_executable(None)
if kwargs['execute_enabled'] and self.has_execution_options:
@ -161,7 +164,8 @@ class BatchMasterView(MasterView):
fs.cognized_by.set(label="Cognized by", renderer=forms.renderers.UserFieldRenderer)
fs.rowcount.set(label="Row Count", readonly=True)
fs.status_code.set(label="Status", renderer=StatusRenderer(self.model_class.STATUS))
fs.executed_by.set(label="Executed by", renderer=forms.renderers.UserFieldRenderer)
fs.executed.set(readonly=True)
fs.executed_by.set(label="Executed by", renderer=forms.renderers.UserFieldRenderer, readonly=True)
fs.notes.set(renderer=fa.TextAreaFieldRenderer, size=(80, 10))
if self.creating and self.request.user:
@ -310,7 +314,7 @@ class BatchMasterView(MasterView):
"""
self.editing = True
batch = self.get_instance()
if batch.executed:
if not self.editable_instance(batch):
return self.redirect(self.get_action_url('view', batch))
if self.edit_with_rows:
@ -685,20 +689,12 @@ class BatchMasterView(MasterView):
batch = row.batch
return self.rows_editable and not batch.executed and not batch.complete
def row_edit_action_url(self, row, i):
if self.row_editable(row):
return self.get_row_action_url('edit', row)
def row_deletable(self, row):
"""
Batch rows are deletable only until batch has been executed.
"""
return self.rows_deletable and not row.batch.executed
def row_delete_action_url(self, row, i):
if self.row_deletable(row):
return self.get_row_action_url('delete', row)
def _preconfigure_row_fieldset(self, fs):
fs.sequence.set(readonly=True)
fs.status_code.set(renderer=StatusRenderer(self.model_row_class.STATUS),