More tweaks to support mobile inventory batches
This commit is contained in:
		
							parent
							
								
									8a5dbc33a7
								
							
						
					
					
						commit
						1791bd745b
					
				
					 4 changed files with 24 additions and 11 deletions
				
			
		| 
						 | 
					@ -14,3 +14,11 @@ ${form.render()|n}
 | 
				
			||||||
    <br />
 | 
					    <br />
 | 
				
			||||||
    ${grid.render_complete()|n}
 | 
					    ${grid.render_complete()|n}
 | 
				
			||||||
% endif
 | 
					% endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					% if not batch.executed and not batch.complete:
 | 
				
			||||||
 | 
					    <br />
 | 
				
			||||||
 | 
					    ${h.form(request.route_url('mobile.batch.inventory.mark_complete', uuid=batch.uuid))}
 | 
				
			||||||
 | 
					    ${h.csrf_token(request)}
 | 
				
			||||||
 | 
					    ${h.hidden('mark-complete', value='true')}
 | 
				
			||||||
 | 
					    <button type="submit">Mark Batch as Complete</button>
 | 
				
			||||||
 | 
					% endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -395,6 +395,11 @@ class BatchMasterView(MasterView):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return self.render_to_response('edit', context)
 | 
					        return self.render_to_response('edit', context)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def mobile_mark_complete(self):
 | 
				
			||||||
 | 
					        batch = self.get_instance()
 | 
				
			||||||
 | 
					        batch.complete = True
 | 
				
			||||||
 | 
					        return self.redirect(self.get_index_url(mobile=True))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def rows_creatable_for(self, batch):
 | 
					    def rows_creatable_for(self, batch):
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        Only allow creating new rows on a batch if it hasn't yet been executed.
 | 
					        Only allow creating new rows on a batch if it hasn't yet been executed.
 | 
				
			||||||
| 
						 | 
					@ -992,6 +997,7 @@ class BatchMasterView(MasterView):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @classmethod
 | 
					    @classmethod
 | 
				
			||||||
    def _batch_defaults(cls, config):
 | 
					    def _batch_defaults(cls, config):
 | 
				
			||||||
 | 
					        model_key = cls.get_model_key()
 | 
				
			||||||
        route_prefix = cls.get_route_prefix()
 | 
					        route_prefix = cls.get_route_prefix()
 | 
				
			||||||
        url_prefix = cls.get_url_prefix()
 | 
					        url_prefix = cls.get_url_prefix()
 | 
				
			||||||
        permission_prefix = cls.get_permission_prefix()
 | 
					        permission_prefix = cls.get_permission_prefix()
 | 
				
			||||||
| 
						 | 
					@ -1022,6 +1028,12 @@ class BatchMasterView(MasterView):
 | 
				
			||||||
            config.add_tailbone_permission(permission_prefix, '{}.delete_rows'.format(permission_prefix),
 | 
					            config.add_tailbone_permission(permission_prefix, '{}.delete_rows'.format(permission_prefix),
 | 
				
			||||||
                                           "Bulk-delete data rows from {}".format(model_title))
 | 
					                                           "Bulk-delete data rows from {}".format(model_title))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # mobile mark complete
 | 
				
			||||||
 | 
					        config.add_route('mobile.{}.mark_complete'.format(route_prefix), '/mobile{}/{{{}}}/mark-complete'.format(url_prefix, model_key))
 | 
				
			||||||
 | 
					        config.add_view(cls, attr='mobile_mark_complete', route_name='mobile.{}.mark_complete'.format(route_prefix),
 | 
				
			||||||
 | 
					                        permission='{}.edit'.format(permission_prefix))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # execute batch
 | 
					        # execute batch
 | 
				
			||||||
        config.add_route('{}.execute'.format(route_prefix), '{}/{{uuid}}/execute'.format(url_prefix))
 | 
					        config.add_route('{}.execute'.format(route_prefix), '{}/{{uuid}}/execute'.format(url_prefix))
 | 
				
			||||||
        config.add_view(cls, attr='execute', route_name='{}.execute'.format(route_prefix),
 | 
					        config.add_view(cls, attr='execute', route_name='{}.execute'.format(route_prefix),
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -92,6 +92,7 @@ class InventoryBatchView(BatchMasterView):
 | 
				
			||||||
                fs.created_by,
 | 
					                fs.created_by,
 | 
				
			||||||
                fs.handheld_batches,
 | 
					                fs.handheld_batches,
 | 
				
			||||||
                fs.mode,
 | 
					                fs.mode,
 | 
				
			||||||
 | 
					                fs.reason_code,
 | 
				
			||||||
                fs.rowcount,
 | 
					                fs.rowcount,
 | 
				
			||||||
                fs.complete,
 | 
					                fs.complete,
 | 
				
			||||||
                fs.executed,
 | 
					                fs.executed,
 | 
				
			||||||
| 
						 | 
					@ -101,6 +102,7 @@ class InventoryBatchView(BatchMasterView):
 | 
				
			||||||
    def configure_mobile_fieldset(self, fs):
 | 
					    def configure_mobile_fieldset(self, fs):
 | 
				
			||||||
        fs.configure(include=[
 | 
					        fs.configure(include=[
 | 
				
			||||||
            fs.mode,
 | 
					            fs.mode,
 | 
				
			||||||
 | 
					            fs.reason_code,
 | 
				
			||||||
            fs.rowcount,
 | 
					            fs.rowcount,
 | 
				
			||||||
            fs.complete,
 | 
					            fs.complete,
 | 
				
			||||||
            fs.executed,
 | 
					            fs.executed,
 | 
				
			||||||
| 
						 | 
					@ -157,6 +159,7 @@ class InventoryBatchView(BatchMasterView):
 | 
				
			||||||
        kwargs = super(InventoryBatchView, self).get_batch_kwargs(batch, mobile=False)
 | 
					        kwargs = super(InventoryBatchView, self).get_batch_kwargs(batch, mobile=False)
 | 
				
			||||||
        kwargs['mode'] = batch.mode
 | 
					        kwargs['mode'] = batch.mode
 | 
				
			||||||
        kwargs['complete'] = False
 | 
					        kwargs['complete'] = False
 | 
				
			||||||
 | 
					        kwargs['reason_code'] = batch.reason_code
 | 
				
			||||||
        return kwargs
 | 
					        return kwargs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def get_mobile_row_data(self, batch):
 | 
					    def get_mobile_row_data(self, batch):
 | 
				
			||||||
| 
						 | 
					@ -282,7 +285,7 @@ class InventoryBatchRenderer(fa.FieldRenderer):
 | 
				
			||||||
            batch.id_str,
 | 
					            batch.id_str,
 | 
				
			||||||
            "?" if batch.rowcount is None else batch.rowcount,
 | 
					            "?" if batch.rowcount is None else batch.rowcount,
 | 
				
			||||||
            batch.created_by,
 | 
					            batch.created_by,
 | 
				
			||||||
            localtime(self.request.rattail_config, batch.created).strftime('%Y-%m-%d'))
 | 
					            localtime(self.request.rattail_config, batch.created, from_utc=True).strftime('%Y-%m-%d'))
 | 
				
			||||||
        url = self.request.route_url('mobile.batch.inventory.view', uuid=batch.uuid)
 | 
					        url = self.request.route_url('mobile.batch.inventory.view', uuid=batch.uuid)
 | 
				
			||||||
        return tags.link_to(title, url)
 | 
					        return tags.link_to(title, url)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -326,11 +326,6 @@ class ReceivingBatchView(PurchasingBatchView):
 | 
				
			||||||
        row.credits.append(credit)
 | 
					        row.credits.append(credit)
 | 
				
			||||||
        return credit
 | 
					        return credit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def mobile_mark_complete(self):
 | 
					 | 
				
			||||||
        batch = self.get_instance()
 | 
					 | 
				
			||||||
        batch.complete = True
 | 
					 | 
				
			||||||
        return self.redirect(self.request.route_url('mobile.{}'.format(self.get_route_prefix())))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @classmethod
 | 
					    @classmethod
 | 
				
			||||||
    def defaults(cls, config):
 | 
					    def defaults(cls, config):
 | 
				
			||||||
        route_prefix = cls.get_route_prefix()
 | 
					        route_prefix = cls.get_route_prefix()
 | 
				
			||||||
| 
						 | 
					@ -344,11 +339,6 @@ class ReceivingBatchView(PurchasingBatchView):
 | 
				
			||||||
        config.add_view(cls, attr='mobile_lookup', route_name='mobile.{}.lookup'.format(route_prefix),
 | 
					        config.add_view(cls, attr='mobile_lookup', route_name='mobile.{}.lookup'.format(route_prefix),
 | 
				
			||||||
                        renderer='json', permission='{}.create'.format(row_permission_prefix))
 | 
					                        renderer='json', permission='{}.create'.format(row_permission_prefix))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # mobile mark complete
 | 
					 | 
				
			||||||
        config.add_route('mobile.{}.mark_complete'.format(route_prefix), '/mobile{}/{{{}}}/mark-complete'.format(url_prefix, model_key))
 | 
					 | 
				
			||||||
        config.add_view(cls, attr='mobile_mark_complete', route_name='mobile.{}.mark_complete'.format(route_prefix),
 | 
					 | 
				
			||||||
                        permission='{}.edit'.format(permission_prefix))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        cls._purchasing_defaults(config)
 | 
					        cls._purchasing_defaults(config)
 | 
				
			||||||
        cls._batch_defaults(config)
 | 
					        cls._batch_defaults(config)
 | 
				
			||||||
        cls._defaults(config)
 | 
					        cls._defaults(config)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue