def render_GET(self, request): from pc import models defer.DeferredList([couch.openView(designID, "catalogs", include_docs=True,key=models.proc_1155, stale=False), #.addCallback(lambda res:('LGA1155',res)), couch.openView(designID, 'catalogs', include_docs=True,key=models.proc_1156, stale=False), # .addCallback(lambda res:('LGA1156',res)), # couch.openView(designID, # 'catalogs', # include_docs=True,key=proc_1366, stale=False) # .addCallback(lambda res:('LGA1366',res)), couch.openView(designID, 'catalogs', include_docs=True,key=models.proc_am23, stale=False), #.addCallback(lambda res:('AM2 3',res)), couch.openView(designID, 'catalogs', include_docs=True,key=models.proc_775, stale=False), #.addCallback(lambda res:('LGA755',res)), couch.openView(designID, 'catalogs', include_docs=True, key=models.proc_fm1, stale=False), #.addCallback(lambda res: ("FM1",res)) ]).addCallback(self.finish, request) return NOT_DONE_YET
def render_GET(self, request): from pc import models defer.DeferredList([ couch.openView(designID, 'catalogs', include_docs=True, key=models.mother_1155, stale=False), # .addCallback(lambda res: ("LGA1155",res)), couch.openView(designID, 'catalogs', include_docs=True, key=models.mother_1156, stale=False), # .addCallback(lambda res: ("LGA1166",res)), couch.openView(designID, 'catalogs', include_docs=True, key=models.mother_775, stale=False), # .addCallback(lambda res: ("LGA775",res)), couch.openView(designID, 'catalogs', include_docs=True, key=models.mother_am23, stale=False), # .addCallback(lambda res: ("AM2 3",res)), couch.openView(designID, 'catalogs', include_docs=True, key=models.mother_fm1, stale=False) # .addCallback(lambda res: ("FM1",res)) ]).addCallback(self.finish, request) return NOT_DONE_YET
def render_GET(self, request): asus_12 = ["7362","7404","7586"] asus_14 = ["7362","7404","7495"] asus_15 = ["7362","7404","7468"] asus_17 = ["7362","7404","7704"] couch.openView(designID,'catalogs',include_docs=True,stale=False, keys = [asus_12,asus_14,asus_15,asus_17]).addCallback(self.finish, request) return NOT_DONE_YET
def render_GET(self, request): key = request.args.get('key',[None])[0] if key is None: d = couch.openView(designID, 'new_unique_components', include_docs=True) else: d = couch.openView(designID, 'new_unique_components', include_docs=True, key=key) d.addCallback(self.finish, request) return NOT_DONE_YET
def render_GET(self, request): asus_12 = ["7362", "7404", "7586"] asus_14 = ["7362", "7404", "7495"] asus_15 = ["7362", "7404", "7468"] asus_17 = ["7362", "7404", "7704"] couch.openView(designID, 'catalogs', include_docs=True, stale=False, keys=[asus_12, asus_14, asus_15, asus_17]).addCallback(self.finish, request) return NOT_DONE_YET
def render_GET(self, request): key = request.args.get('key', [None])[0] if key is None: d = couch.openView(designID, 'new_unique_components', include_docs=True) else: d = couch.openView(designID, 'new_unique_components', include_docs=True, key=key) d.addCallback(self.finish, request) return NOT_DONE_YET
def render_GET(self, request): from pc import models defer.DeferredList([ couch.openView(designID, 'catalogs', include_docs=True, key=models.geforce, stale=False), # .addCallback(lambda res: ("GeForce",res)), couch.openView(designID, 'catalogs', include_docs=True, key=models.radeon, stale=False), # .addCallback(lambda res: ("Radeon",res)), ]).addCallback(self.finish, request) return NOT_DONE_YET
def render_GET(self, request): d = couch.openView(designID, "wit_codes", include_docs=True, stale=False) d.addCallback(self.clear) return "ok"
def getItem(self, res, gen, codes): try: item = gen.next() except StopIteration: # wit codes returns all wits which stock is more than 0 _all = couch.openView(designID, 'wit_codes', stale=False) _all.addCallback(self.cleanDocs, codes) _all.addErrback(self.pr) return sio = StringIO() item_code = item.pop('code') codes.add(item_code) d = couch.openDoc(item_code, writer=sio) def co(res): self.compareItem(res, item, sio) def st(fail): c = couch.saveDoc(item, docId=item_code) c.addErrback(self.pr) d.addCallbacks(co, st) d.addErrback(self.pr) d.addCallback(self.getItem, gen, codes) d.addErrback(self.pr) return d
def parseOdnoklassniki(self, f, user_doc, request): src = f.read() f.close() soc_user_ob = simplejson.loads(src) f.close() soc_user_ob['uid'] = 'od'+str(soc_user_ob['uid']) d = couch.openView(designID, 'soc_users', key=soc_user_ob['uid'], include_docs=True) d.addCallback(self.mergeUsers, soc_user_ob, user_doc, request)
def render_GET(self, request): key = request.args.get('key', [None])[0] d = couch.openView(designID, 'new_catalogs', include_docs=True, key=key) d.addCallback(self.finish, request) return NOT_DONE_YET
def render_GET(self, request): from pc import models defer.DeferredList([ couch.openView(designID, 'catalogs', include_docs=True, key=models.tablets, stale=False), ]).addCallback(self.finish, request) return NOT_DONE_YET
def cleanNewDocs(self, li, external_id): ids = [] for tu in li: if tu[0]: ids.append(tu[1]) d = couch.openView(designID, 'new_catalogs', key=external_id, include_docs=True, stale=False) d.addCallback(self.compareNewDocs, ids) return d
def parseMail(self, f, user_doc, request): answer = simplejson.loads(f.read()) f.close() soc_user_ob = {'uid':answer[0]['uid'], 'first_name':answer[0]['first_name'],'last_name':answer[0]['last_name']} soc_user_ob['uid'] = 'ma'+str(soc_user_ob['uid']) # ok. now i have user_ob from soc network and user_doc # it need to call some view with the 'vk'+user_ob[uuid] d = couch.openView(designID, 'soc_users', key=soc_user_ob['uid'], include_docs=True) d.addCallback(self.mergeUsers, soc_user_ob, user_doc, request)
def parseVkontakt(self, f, user_doc, request): answer = simplejson.loads(f.read()) f.close() soc_user_ob = answer['response'][0] soc_user_ob['uid'] = 'vk'+str(soc_user_ob['uid']) # ok. now i have user_ob from soc network and user_doc # it need to call some view with the 'vk'+user_ob[uuid] d = couch.openView(designID, 'soc_users', key=soc_user_ob['uid'], include_docs=True) d.addCallback(self.mergeUsers, soc_user_ob, user_doc, request)
def parseGoog(self, f, user_doc, request): answer = simplejson.loads(f.read()) soc_user_ob = {} soc_user_ob['uid'] = 'go'+answer['id'] soc_user_ob['first_name'] = answer['given_name'] soc_user_ob['last_name'] = answer['family_name'] d = couch.openView(designID, 'soc_users', key=soc_user_ob['uid'], include_docs=True) d.addCallback(self.mergeUsers, soc_user_ob, user_doc, request) f.close()
def render_GET(self, request): # asus_12 = ["7362","7404","7586"] # asus_14 = ["7362","7404","7495"] # asus_15 = ["7362","7404","7468"] # asus_17 = ["7362","7404","7704"] # d = couch.openView(designID,'catalogs',include_docs=True,stale=False, # keys = [asus_12,asus_14,asus_15,asus_17]) d = couch.openView(designID,'video_articul',include_docs=True,stale=False) d.addCallback(self.prices, request) return NOT_DONE_YET
def render_GET(self, request): _id = request.args.get('id')[0] if len(_id)>3: order_d = couch.openDoc('order_'+_id) order_d.addCallback(self.finish, request) # if no order -> get model order_d.addErrback(self.getModel, _id, request) # if problem with the order -> finish any way order_d.addErrback(self.graceFull, request) else: d = couch.openView(designID, 'last_free', key=_id, include_docs=True) d.addCallback(self.getThree, request) return NOT_DONE_YET
def render_GET(self, request): from pc import models defer.DeferredList([ couch.openView(designID, "catalogs", include_docs=True, key=models.proc_1155, stale=False), #.addCallback(lambda res:('LGA1155',res)), couch.openView(designID, 'catalogs', include_docs=True, key=models.proc_1156, stale=False), # .addCallback(lambda res:('LGA1156',res)), # couch.openView(designID, # 'catalogs', # include_docs=True,key=proc_1366, stale=False) # .addCallback(lambda res:('LGA1366',res)), couch.openView(designID, 'catalogs', include_docs=True, key=models.proc_am23, stale=False), #.addCallback(lambda res:('AM2 3',res)), couch.openView(designID, 'catalogs', include_docs=True, key=models.proc_775, stale=False), #.addCallback(lambda res:('LGA755',res)), couch.openView(designID, 'catalogs', include_docs=True, key=models.proc_fm1, stale=False), #.addCallback(lambda res: ("FM1",res)) ]).addCallback(self.finish, request) return NOT_DONE_YET
def prepareQuery(self): limit = self.request.args.get('limit',['20'])[0] try: ilimit = int(limit) except: ilimit = 20 startkey=['z'] endkey=['0'] tag = self.request.args.get('tag', [None])[0] key = self.request.args.get('key', [None])[0] if tag is not None: startkey.insert(0,tag) endkey.insert(0,tag) d = couch.openView(designID,'blogtags',include_docs=True,stale=True, startkey=startkey,endkey=endkey,limit=ilimit,descending=True) else: if key is not None: startkey.insert(0,key) endkey.insert(0,key) d = couch.openView(designID,self._id,include_docs=True,stale=True, startkey=startkey,endkey=endkey, descending=True,limit=ilimit) d.addCallback(self.render) return d
def render_GET(self, request): _id = request.args.get('id')[0] if len(_id) > 3: order_d = couch.openDoc('order_' + _id) order_d.addCallback(self.finish, request) # if no order -> get model order_d.addErrback(self.getModel, _id, request) # if problem with the order -> finish any way order_d.addErrback(self.graceFull, request) else: d = couch.openView(designID, 'last_free', key=_id, include_docs=True) d.addCallback(self.getThree, request) return NOT_DONE_YET
def updateOriginalModelPrices(): def update(res): for row in res['rows']: model = row['doc'] model['original_prices'] = {} from pc import models for name,code in model['items'].items(): if type(code) is list: code = code[0] if code in models.gChoices_flatten: component = models.gChoices_flatten[code] model['original_prices'].update({code:component['price']}) else: model['original_prices'].update({code:99}) couch.saveDoc(model) d = couch.openView(designID,'models',include_docs=True,stale=False) d.addCallback(update)
def updateOriginalModelPrices(): def update(res): for row in res['rows']: model = row['doc'] model['original_prices'] = {} from pc import models for name, code in model['items'].items(): if type(code) is list: code = code[0] if code in models.gChoices_flatten: component = models.gChoices_flatten[code] model['original_prices'].update({code: component['price']}) else: model['original_prices'].update({code: 99}) couch.saveDoc(model) d = couch.openView(designID, 'models', include_docs=True, stale=False) d.addCallback(update)
def getItem(self, res, gen, codes): try: item = gen.next() except StopIteration: # wit codes returns all wits which stock is more than 0 _all = couch.openView(designID,'wit_codes',stale=False) _all.addCallback(self.cleanDocs, codes) _all.addErrback(self.pr) return sio = StringIO() item_code = item.pop('code') codes.add(item_code) d = couch.openDoc(item_code, writer=sio) def co(res): self.compareItem(res, item, sio) def st(fail): c = couch.saveDoc(item, docId=item_code) c.addErrback(self.pr) d.addCallbacks(co,st) d.addErrback(self.pr) d.addCallback(self.getItem, gen, codes) d.addErrback(self.pr) return d
def addComponents(self, model_user, _id): defs = [] def addCount(count): def add(doc): doc['count'] = count return doc return add def addText(text): def _text(doc): doc['text'] = text return doc return _text def addWarranty(warranty): def _warranty(doc): doc['warranty_type'] = warranty return doc return _warranty def popDesc(): def _pop(doc): if 'description' in doc: doc.pop('description') if '_attachments' in doc: doc.pop('_attachments') return doc return _pop def addPrice(ourPrice=None): def add(doc): if ourPrice is None: doc['ourprice'] = Model.makePrice(doc) else: doc['ourprice'] = ourPrice return doc return add def addName(name): def add(doc): doc['humanname'] = name return doc return add def addOrder(order): def add(doc): doc['order'] = order return doc return add def wrap(co): d = defer.Deferred() d.addCallback(lambda x: co) d.callback(None) return d def cheapestDVD(res): cheapeast = None for row in res['rows']: if cheapeast is None: cheapeast = row['doc'] else: if row['doc']['price'] < cheapeast['price']: cheapeast = row['doc'] return cheapeast _model = Model(model_user[0][1]) for k, v in model_user[0][1]['items'].items(): component = wrap(_model.findComponent(k)) if type(v) is list: component.addCallback(addCount(len(v))) component.addCallback(addPrice()) component.addCallback(popDesc()) component.addCallback(addName(parts_names[k])) component.addCallback(addOrder(parts[k])) defs.append(component) if model_user[0][1]['dvd']: dvds = couch.openView(designID, 'dvd', stale=False, include_docs=True) dvds.addCallback(cheapestDVD) dvds.addCallback(addPrice(DVD_PRICE)) dvds.addCallback(popDesc()) dvds.addCallback(addName(u'DVD')) dvds.addCallback(addCount(1)) dvds.addCallback(addOrder(300)) defs.append(dvds) def makeServiseRecord(_id, name, text, price, warranty, order): service = defer.Deferred() service.addCallback(lambda x: {'_id': _id}) service.addCallback(addName(name)) service.addCallback(addText(text)) service.addCallback(addPrice(price)) service.addCallback(addCount(1)) service.addCallback(addWarranty(warranty)) service.addCallback(addOrder(order)) service.callback(None) defs.append(service) if model_user[0][1]['building']: makeServiseRecord('building', u'Сборка', u'Сборка компьютера', BUILD_PRICE, u'6 месяцев', 400) if model_user[0][1]['installing']: makeServiseRecord('installing', u'Установка', u'Установка программного обеспечения', INSTALLING_PRICE, u'без гарантии', 500) li = defer.DeferredList(defs) li.addCallback(lambda res: (model_user, res)) return li
def render_GET(self, request): import models d = None key = request.args.get('key',None)[0] if key == 'mothers': d = defer.DeferredList([ couch.openView(designID, 'catalogs', include_docs=True, key=models.mother_1155, stale=False), couch.openView(designID, 'catalogs', include_docs=True, key=models.mother_1156, stale=False), couch.openView(designID, 'catalogs', include_docs=True, key=models.mother_775, stale=False), couch.openView(designID, 'catalogs', include_docs=True, key=models.mother_am23, stale=False), couch.openView(designID, 'catalogs', include_docs=True, key=models.mother_fm1, stale=False), ]) elif key=='procs': d = defer.DeferredList([ couch.openView(designID, "catalogs", include_docs=True,key=models.proc_1155, stale=False), couch.openView(designID, 'catalogs', include_docs=True,key=models.proc_1156, stale=False), couch.openView(designID, 'catalogs', include_docs=True,key=models.proc_am23, stale=False), couch.openView(designID, 'catalogs', include_docs=True,key=models.proc_775, stale=False), couch.openView(designID, 'catalogs', include_docs=True, key=models.proc_fm1, stale=False), ]) elif key=='videos': d = defer.DeferredList([ couch.openView(designID, 'catalogs', include_docs=True, key=models.geforce, stale=False), couch.openView(designID, 'catalogs', include_docs=True, key=models.radeon, stale=False), ]) elif key == 'notebooks': asus_12 = ["7362","7404","7586"] asus_14 = ["7362","7404","7495"] asus_15 = ["7362","7404","7468"] asus_17 = ["7362","7404","7704"] d = defer.DeferredList([couch.openView(designID,'catalogs',include_docs=True,stale=False, key = asus_12), couch.openView(designID,'catalogs',include_docs=True,stale=False, key = asus_14), couch.openView(designID,'catalogs',include_docs=True,stale=False, key = asus_15), couch.openView(designID,'catalogs',include_docs=True,stale=False, key = asus_17), ]) d.addCallback(self.finish, request) return NOT_DONE_YET
def render_GET(self, request): key = request.args.get('key',[None])[0] d = couch.openView(designID, 'new_catalogs', include_docs=True, key=key) d.addCallback(self.finish, request) return NOT_DONE_YET
def render_GET(self, request): d = couch.openView(designID,"wit_codes", include_docs=True, stale=False) d.addCallback(self.clear) return "ok"
def addComponents(self, model_user, _id): defs = [] def addCount(count): def add(doc): doc['count'] = count return doc return add def addText(text): def _text(doc): doc['text'] = text return doc return _text def addWarranty(warranty): def _warranty(doc): doc['warranty_type'] = warranty return doc return _warranty def popDesc(): def _pop(doc): if 'description' in doc: doc.pop('description') if '_attachments' in doc: doc.pop('_attachments') return doc return _pop def addPrice(ourPrice=None): def add(doc): if ourPrice is None: doc['ourprice'] = Model.makePrice(doc) else: doc['ourprice'] = ourPrice return doc return add def addName(name): def add(doc): doc['humanname'] = name return doc return add def addOrder(order): def add(doc): doc['order'] = order return doc return add def wrap(co): d = defer.Deferred() d.addCallback(lambda x: co) d.callback(None) return d def cheapestDVD(res): cheapeast = None for row in res['rows']: if cheapeast is None: cheapeast = row['doc'] else: if row['doc']['price'] < cheapeast['price']: cheapeast = row['doc'] return cheapeast _model = Model(model_user[0][1]) for k,v in model_user[0][1]['items'].items(): component = wrap(_model.findComponent(k)) if type(v) is list: component.addCallback(addCount(len(v))) component.addCallback(addPrice()) component.addCallback(popDesc()) component.addCallback(addName(parts_names[k])) component.addCallback(addOrder(parts[k])) defs.append(component) if model_user[0][1]['dvd']: dvds = couch.openView(designID, 'dvd', stale=False, include_docs=True) dvds.addCallback(cheapestDVD) dvds.addCallback(addPrice(DVD_PRICE)) dvds.addCallback(popDesc()) dvds.addCallback(addName(u'DVD')) dvds.addCallback(addCount(1)) dvds.addCallback(addOrder(300)) defs.append(dvds) def makeServiseRecord(_id, name, text, price, warranty, order): service = defer.Deferred() service.addCallback(lambda x: {'_id':_id}) service.addCallback(addName(name)) service.addCallback(addText(text)) service.addCallback(addPrice(price)) service.addCallback(addCount(1)) service.addCallback(addWarranty(warranty)) service.addCallback(addOrder(order)) service.callback(None) defs.append(service) if model_user[0][1]['building']: makeServiseRecord('building',u'Сборка', u'Сборка компьютера',BUILD_PRICE, u'6 месяцев',400) if model_user[0][1]['installing']: makeServiseRecord('installing',u'Установка', u'Установка программного обеспечения',INSTALLING_PRICE, u'без гарантии',500) li = defer.DeferredList(defs) li.addCallback(lambda res: (model_user,res)) return li
def render_GET(self, request): import models d = None key = request.args.get('key', None)[0] if key == 'mothers': d = defer.DeferredList([ couch.openView(designID, 'catalogs', include_docs=True, key=models.mother_1155, stale=False), couch.openView(designID, 'catalogs', include_docs=True, key=models.mother_1156, stale=False), couch.openView(designID, 'catalogs', include_docs=True, key=models.mother_775, stale=False), couch.openView(designID, 'catalogs', include_docs=True, key=models.mother_am23, stale=False), couch.openView(designID, 'catalogs', include_docs=True, key=models.mother_fm1, stale=False), ]) elif key == 'procs': d = defer.DeferredList([ couch.openView(designID, "catalogs", include_docs=True, key=models.proc_1155, stale=False), couch.openView(designID, 'catalogs', include_docs=True, key=models.proc_1156, stale=False), couch.openView(designID, 'catalogs', include_docs=True, key=models.proc_am23, stale=False), couch.openView(designID, 'catalogs', include_docs=True, key=models.proc_775, stale=False), couch.openView(designID, 'catalogs', include_docs=True, key=models.proc_fm1, stale=False), ]) elif key == 'videos': d = defer.DeferredList([ couch.openView(designID, 'catalogs', include_docs=True, key=models.geforce, stale=False), couch.openView(designID, 'catalogs', include_docs=True, key=models.radeon, stale=False), ]) elif key == 'notebooks': asus_12 = ["7362", "7404", "7586"] asus_14 = ["7362", "7404", "7495"] asus_15 = ["7362", "7404", "7468"] asus_17 = ["7362", "7404", "7704"] d = defer.DeferredList([ couch.openView(designID, 'catalogs', include_docs=True, stale=False, key=asus_12), couch.openView(designID, 'catalogs', include_docs=True, stale=False, key=asus_14), couch.openView(designID, 'catalogs', include_docs=True, stale=False, key=asus_15), couch.openView(designID, 'catalogs', include_docs=True, stale=False, key=asus_17), ]) d.addCallback(self.finish, request) return NOT_DONE_YET
def yandex(self, user_doc, access_token, code, request): soc_user_ob = globals()['PASSED_USERS'].pop(request.getCookie('pc_user')) d = couch.openView(designID, 'soc_users', key=soc_user_ob['uid'], include_docs=True) d.addCallback(self.mergeUsers, soc_user_ob, user_doc, request) return d
def render_GET(self, request): d = couch.openView(designID, 'soho_components', include_docs=True) d.addCallback(self.finish, request) return NOT_DONE_YET