def get(self): p = self.request.get('p') q = self.request.get('q') c = self.request.get('c') forward = True if p not in ['prev'] else False cursor = Cursor(urlsafe=c) user_key = ndb.Key('User', long(self.user_id)) if q: qry = Bom.query( Bom.owners == user_key, ndb.OR(Bom.public_id == q, Bom.name == q, Bom.tag_name == q)) else: qry = Bom.query(Bom.owners == user_key) PAGE_SIZE = 5 if forward: boms, next_cursor, more = qry.order(Bom.key).fetch_page( PAGE_SIZE, start_cursor=cursor) if next_cursor and more: self.view.next_cursor = next_cursor if c: self.view.prev_cursor = cursor.reversed() else: boms, next_cursor, more = qry.order(-Bom.key).fetch_page( PAGE_SIZE, start_cursor=cursor) boms = list(reversed(boms)) if next_cursor and more: self.view.prev_cursor = next_cursor self.view.next_cursor = cursor.reversed() def pager_url(p, cursor): params = OrderedDict() if q: params['q'] = q if p in ['prev']: params['p'] = p if cursor: params['c'] = cursor.urlsafe() return self.uri_for('boms', **params) self.view.pager_url = pager_url self.view.q = q params = { "list_columns": [('name', 'BOM Name'), ('public_id', 'Public ID'), ('public', 'public'), ('change_time', 'Last Updated')], "boms": boms, "count": qry.count() } return self.render_template('boms.html', **params)
def get(self): p = self.request.get('p') q = self.request.get('q') c = self.request.get('c') forward = True if p not in ['prev'] else False cursor = Cursor(urlsafe=c) if q: qry = Bom.query(ndb.OR(Bom.public_id == q, Bom.name == q, Bom.tag_name == q)) else: qry = Bom.query() PAGE_SIZE = 5 if forward: boms, next_cursor, more = qry.order(Bom.key).fetch_page(PAGE_SIZE, start_cursor=cursor) if next_cursor and more: self.view.next_cursor = next_cursor if c: self.view.prev_cursor = cursor.reversed() else: boms, next_cursor, more = qry.order(-Bom.key).fetch_page(PAGE_SIZE, start_cursor=cursor) boms = list(reversed(boms)) if next_cursor and more: self.view.prev_cursor = next_cursor self.view.next_cursor = cursor.reversed() def pager_url(p, cursor): params = OrderedDict() if q: params['q'] = q if p in ['prev']: params['p'] = p if cursor: params['c'] = cursor.urlsafe() return self.uri_for('boms-admin', **params) self.view.pager_url = pager_url self.view.q = q params = { "list_columns": [('public_id', 'Public ID'), ('name', 'BOM Name'), ('tag_name', 'Tag Name'), ('public', 'public')], "boms" : boms, "count" : qry.count(), } # FIXME: admin_user should probably go into BaseHandler params['admin_user'] = googleusers.is_current_user_admin() return self.render_template('admin/boms.html', **params)
def get(self): p = self.request.get('p') q = self.request.get('q') c = self.request.get('c') forward = True if p not in ['prev'] else False cursor = Cursor(urlsafe=c) user_key = ndb.Key('User', long(self.user_id)) if q: qry = Bom.query(Bom.owners == user_key, ndb.OR(Bom.public_id == q, Bom.name == q, Bom.tag_name == q)) else: qry = Bom.query(Bom.owners == user_key) PAGE_SIZE = 5 if forward: boms, next_cursor, more = qry.order(Bom.key).fetch_page(PAGE_SIZE, start_cursor=cursor) if next_cursor and more: self.view.next_cursor = next_cursor if c: self.view.prev_cursor = cursor.reversed() else: boms, next_cursor, more = qry.order(-Bom.key).fetch_page(PAGE_SIZE, start_cursor=cursor) boms = list(reversed(boms)) if next_cursor and more: self.view.prev_cursor = next_cursor self.view.next_cursor = cursor.reversed() def pager_url(p, cursor): params = OrderedDict() if q: params['q'] = q if p in ['prev']: params['p'] = p if cursor: params['c'] = cursor.urlsafe() return self.uri_for('boms', **params) self.view.pager_url = pager_url self.view.q = q params = { "list_columns": [('name', 'BOM Name'), ('public_id', 'Public ID'), ('public', 'public'), ('change_time', 'Last Updated')], "boms" : boms, "count" : qry.count() } return self.render_template('boms.html', **params)
def get(self, public_id): params = {} bom = Bom.query(Bom.public_id == public_id).get() if bom: parts = Part.query(ancestor=bom.key).order(-Part.create_time).fetch() rawparts = [] for part in parts: raw = [] quantity_units = '' if part.quantity_units: quantity_units = ', units='+part.quantity_units raw.append(part.name+quantity_units+' '+part.part_group+'\n') for note in part.note_list: raw.append(' * '+note+'\n') for designator in part.designator_list: raw.append(' # '+designator+'\n') for i in range(len(part.manufacturer_names)): raw.append(' @ '+part.manufacturer_names[i]+ ' '+part.manufacturer_partnums[i]+ '\n') for i in range(len(part.supplier_names)): raw.append(' $ '+part.supplier_names[i]+ ' '+part.supplier_ordernums[i]) package_count = part.supplier_packagecounts[i] if package_count != 1: if (package_count % 1) == 0: package_count = '%0.0f' % package_count else: package_count = '%0.3f' % package_count raw.append(' '+package_count) raw.append(' '+part.supplier_currencies[i]) if part.supplier_countries[i]: raw.append(' '+part.supplier_currencies[i]) raw.append(' %0.2f' % part.supplier_prices[i]) if part.supplier_urls[i]: raw.append(' '+part.supplier_urls[i]) raw.append('\n') for i in range(len(part.subsystem_names)): quantities = part.subsystem_quantities[i] if (quantities % 1) == 0: quantities = '%0.0f' % quantities else: quantities = '%0.2f' % quantities raw.append(' '+quantities+ ' '+part.subsystem_names[i]+ ' '+part.subsystem_specificuses[i]+ '\n') rawparts.append({'id':part.key.id(), 'raw':''.join(raw)[:-1]}) params = { "is_owner" : ndb.Key('User', long(self.user_id or 0)) in bom.owners, "public_id": public_id, "currency": "USD", "bom" : bom, "rawparts" : rawparts } # prime form # self.form.process(obj=bom) return self.render_template('bom_edit.html', **params) else: self.abort(404)
def get(self, public_id): params = {} bom = Bom.query(Bom.public_id == public_id).get() if bom: parts = Part.query(ancestor=bom.key).order(Part.name).fetch() raw = [] for part in parts: quantity_units = '' if part.quantity_units: quantity_units = ', units='+part.quantity_units raw.append(part.name+quantity_units+' '+part.part_group+'\n') for note in part.note_list: raw.append(' * '+note+'\n') for designator in part.designator_list: raw.append(' # '+designator+'\n') for i in range(len(part.manufacturer_names)): raw.append(' @ '+part.manufacturer_names[i]+ ' '+part.manufacturer_partnums[i]+ '\n') for i in range(len(part.supplier_names)): raw.append(' $ '+part.supplier_names[i]+ ' '+part.supplier_ordernums[i]) package_count = part.supplier_packagecounts[i] if package_count != 1: if (package_count % 1) == 0: package_count = '%0.0f' % package_count else: package_count = '%0.3f' % package_count raw.append(' '+package_count) raw.append(' '+part.supplier_currencies[i]) if part.supplier_countries[i]: raw.append(' '+part.supplier_currencies[i]) raw.append(' %0.2f' % part.supplier_prices[i]) if part.supplier_urls[i]: raw.append(' '+part.supplier_urls[i]) raw.append('\n') for i in range(len(part.subsystem_names)): quantities = part.subsystem_quantities[i] if (quantities % 1) == 0: quantities = '%0.0f' % quantities else: quantities = '%0.2f' % quantities raw.append(' '+quantities+ ' '+part.subsystem_names[i]+ ' '+part.subsystem_specificuses[i]+ '\n') raw.append('\n') params['raw'] = ''.join(raw) return self.render_template('bom_raw.html', **params) else: self.abort(404)
def get(self, public_id, currency): params = {} bom = Bom.query(Bom.public_id == public_id).get() if bom: params = { "is_owner" : ndb.Key('User', long(self.user_id or 0)) in bom.owners, "public_id": public_id, "currency": "USD", "bom" : bom, "by_supplier" : bom.get_parts_by_supplier(currency) } return self.render_template('bom_order.html', **params) else: self.abort(404)
def get(self, public_id): params = {} bom = Bom.query(Bom.public_id == public_id).get() if bom: parts = Part.query(ancestor=bom.key).order(Part.name).fetch() raw = [] for part in parts: quantity_units = '' if part.quantity_units: quantity_units = ', units=' + part.quantity_units raw.append(part.name + quantity_units + ' ' + part.part_group + '\n') for note in part.note_list: raw.append(' * ' + note + '\n') for designator in part.designator_list: raw.append(' # ' + designator + '\n') for i in range(len(part.manufacturer_names)): raw.append(' @ ' + part.manufacturer_names[i] + ' ' + part.manufacturer_partnums[i] + '\n') for i in range(len(part.supplier_names)): raw.append(' $ ' + part.supplier_names[i] + ' ' + part.supplier_ordernums[i]) package_count = part.supplier_packagecounts[i] if package_count != 1: if (package_count % 1) == 0: package_count = '%0.0f' % package_count else: package_count = '%0.3f' % package_count raw.append(' ' + package_count) raw.append(' ' + part.supplier_currencies[i]) if part.supplier_countries[i]: raw.append(' ' + part.supplier_currencies[i]) raw.append(' %0.2f' % part.supplier_prices[i]) if part.supplier_urls[i]: raw.append(' ' + part.supplier_urls[i]) raw.append('\n') for i in range(len(part.subsystem_names)): quantities = part.subsystem_quantities[i] if (quantities % 1) == 0: quantities = '%0.0f' % quantities else: quantities = '%0.2f' % quantities raw.append(' ' + quantities + ' ' + part.subsystem_names[i] + ' ' + part.subsystem_specificuses[i] + '\n') raw.append('\n') params['raw'] = ''.join(raw) return self.render_template('bom_raw.html', **params) else: self.abort(404)
def get(self, public_id, currency): params = {} bom = Bom.query(Bom.public_id == public_id).get() if bom: params = { "is_owner": ndb.Key('User', long(self.user_id or 0)) in bom.owners, "public_id": public_id, "currency": "USD", "bom": bom, "by_supplier": bom.get_parts_by_supplier(currency) } return self.render_template('bom_order.html', **params) else: self.abort(404)
def get(self, public_id): params = {} bom = Bom.query(Bom.public_id == public_id).get() if bom: parts = Part.query( ancestor=bom.key).order(-Part.create_time).fetch() rawparts = [] for part in parts: raw = [] quantity_units = '' if part.quantity_units: quantity_units = ', units=' + part.quantity_units raw.append(part.name + quantity_units + ' ' + part.part_group + '\n') for note in part.note_list: raw.append(' * ' + note + '\n') for designator in part.designator_list: raw.append(' # ' + designator + '\n') for i in range(len(part.manufacturer_names)): raw.append(' @ ' + part.manufacturer_names[i] + ' ' + part.manufacturer_partnums[i] + '\n') for i in range(len(part.supplier_names)): raw.append(' $ ' + part.supplier_names[i] + ' ' + part.supplier_ordernums[i]) package_count = part.supplier_packagecounts[i] if package_count != 1: if (package_count % 1) == 0: package_count = '%0.0f' % package_count else: package_count = '%0.3f' % package_count raw.append(' ' + package_count) raw.append(' ' + part.supplier_currencies[i]) if part.supplier_countries[i]: raw.append(' ' + part.supplier_currencies[i]) raw.append(' %0.2f' % part.supplier_prices[i]) if part.supplier_urls[i]: raw.append(' ' + part.supplier_urls[i]) raw.append('\n') for i in range(len(part.subsystem_names)): quantities = part.subsystem_quantities[i] if (quantities % 1) == 0: quantities = '%0.0f' % quantities else: quantities = '%0.2f' % quantities raw.append(' ' + quantities + ' ' + part.subsystem_names[i] + ' ' + part.subsystem_specificuses[i] + '\n') rawparts.append({ 'id': part.key.id(), 'raw': ''.join(raw)[:-1] }) params = { "is_owner": ndb.Key('User', long(self.user_id or 0)) in bom.owners, "public_id": public_id, "currency": "USD", "bom": bom, "rawparts": rawparts } # prime form # self.form.process(obj=bom) return self.render_template('bom_edit.html', **params) else: self.abort(404)