def info_panel(request): """Renders a page, that shows an info panel for the employees in the store.""" kerneladapter = Kerneladapter() pipeline = (kerneladapter.get_kommiauftrag(kommi) for kommi in kerneladapter.get_kommiauftrag_list()) for kommi in pipeline: kommi['orderlines_count'] = len(kommi.get('orderlines', [])) db = myplfrontend.tools.get_pickinfo_from_pipeline_data(pipeline) # FIXME: Der Code hier beruht noch teilweise auf den Daten, die aus der zugeh. Django DB kamen, zB. postions['done'] wurde vorher # aus dieser DB berechnet. Wie können wir die erledigten Positionen aus dem Kernel / couchdb / ... erhalten? positions = {} positions['done'] = 0 positions['inwork'] = 0 if 'yes' in db: # FIXME aus dem get_pickinfo_from_pipeline_data() code verstehe ich nicht, wo hier ein key 'yes' herkommen soll? positions['todo'] = int(db['yes']['orderlines_count']) else: positions['todo'] = 0 positions['total'] = positions['done'] + positions['inwork'] + positions['todo'] if positions['total']: positions['percent_done'] = (100.0/positions['total']) * positions['done'] else: positions['percent_done'] = 0 return render_to_response('myplfrontend/info_panel.html', {'pipeline': pipeline, 'db': db, 'positions': positions}, context_instance=RequestContext(request))
def artikel_heute(request): """View für Übersichtsseite mit den heute zu verschickenden Artikeln""" kerneladapter = Kerneladapter() # summarize product quantities products = {} for komminr in kerneladapter.get_kommiauftrag_list(): kommi = kerneladapter.get_kommiauftrag(komminr) if kommi['shouldprocess'] == 'yes': for orderline in kommi['orderlines']: artnr = orderline['artnr'] products[artnr] = products.get(artnr, 0) + orderline['menge'] artikel_heutel = [] for artnr, quantity in products.items(): product = cs.masterdata.article.eap(artnr) if product: total_weight = quantity * float_or_0(product.get("package_weight")) / 1000.0 total_volume = quantity * float_or_0(product.get("package_volume_liter")) total_palettes = quantity / float_or_0(product.get("palettenfaktor"), default=1.0) artikel_heutel.append({'quantity': quantity, 'artnr': artnr, 'name': product['name'], 'palettenfaktor': product.get('palettenfaktor'), 'total_weight': total_weight, 'total_volume': total_volume, 'paletten': total_palettes}) else: cs.zwitscher.zwitscher('%s: eAP nicht in CouchDB. OMG! #error' % artnr, username='******') return render_to_response('myplfrontend/artikel_heute.html', {'artikel_heute': artikel_heutel}, context_instance=RequestContext(request))
def kommiauftrag_list(request): """View für Liste der Aufträge in der Provpipeline""" kerneladapter = Kerneladapter() kommiauftraege_new, kommiauftraege_processing = [], [] for kommiauftragnr in kerneladapter.get_kommiauftrag_list(): kommiauftrag = kerneladapter.get_kommiauftrag(kommiauftragnr) if kommiauftrag['status'] == 'processing': kommiauftraege_processing.append(kerneladapter.get_kommiauftrag(kommiauftragnr)) else: kommiauftraege_new.append(kerneladapter.get_kommiauftrag(kommiauftragnr)) kommiauftraege = kommiauftraege_processing + kommiauftraege_new return render_to_response('myplfrontend/kommiauftraege.html', {'title': 'Komissionierungen, die nicht erledigt sind.', 'kommiauftraege': kommiauftraege}, context_instance=RequestContext(request))