Exemplo n.º 1
0
 def get(self, tenant):
     user = self.login_required()
     if user.tenant != tenant:
         raise RuntimeError('404')
     designator = self.request.get('designator')
     if designator:
         query1 = Akte.all().filter('tenant =', tenant).filter('designator =', designator)
         query2 = Dokument.all().filter('tenant =', tenant).filter('designator =', designator)
         query3 = Dokument.all().filter('tenant =', tenant).filter('ref =', designator)
         query4 = Dokument.all().filter('tenant =', tenant).filter('ref =', designator)
         results = list(set(query1.fetch(10) + query2.fetch(10) + query3.fetch(10) + query4.fetch(10)))
         values = dict(results=[x.as_dict(self.abs_url) for x in results],
                       success=True)
     else:
         results = []
         # 'Term1 "Term2 and Term3"'.split() -> ['Term1', 'Term2 and Term3']
         for part in gaetk.tools.split(self.request.get('q')):
             # would be aswsome to run this in paralell
             for model in [Akte, Dokument]:
                 for field in ['designator', 'name1', 'plz', 'email', 'ref', 'name2', 'ort']:
                     query = model.all().filter('tenant =', tenant
                                                ).filter('%s >=' % field, part
                                                ).filter('%s <=' % field, part + u'\ufffd')
                     results.extend([x.as_dict(self.abs_url) for x in query.fetch(25)])
         # TODO: scoring and deduping
         values = dict(results=results, success=True)
     self.response.headers['Content-Type'] = 'application/json'
     self.response.out.write(json.dumps(values))
Exemplo n.º 2
0
 def get(self, tenant, format):
     user = self.login_required()
     if user.tenant != tenant:
         raise RuntimeError('404')
     if format == 'json':
         query = Akte.all().filter('tenant =', tenant).order('-created_at')
         values = self.paginate(query, datanodename='akten')
         values['akten'] = [akte.as_dict(self.abs_url) for akte in values['akten']]
         self.response.headers['Content-Type'] = 'application/json'
         self.response.out.write(json.dumps(values))
     else:
         self.render({}, 'akten.html')
Exemplo n.º 3
0
 def get(self, tenant, format):
     user = self.login_required()
     if user.tenant != tenant:
         raise RuntimeError('404')
     if format == 'json':
         query = Akte.all().filter('tenant =', tenant).order('-created_at')
         values = self.paginate(query, datanodename='akten')
         values['akten'] = [
             akte.as_dict(self.abs_url) for akte in values['akten']
         ]
         self.response.headers['Content-Type'] = 'application/json'
         self.response.out.write(json.dumps(values))
     else:
         self.render({}, 'akten.html')
Exemplo n.º 4
0
 def get(self, tenant):
     user = self.login_required()
     if user.tenant != tenant:
         raise RuntimeError('404')
     designator = self.request.get('designator')
     if designator:
         query1 = Akte.all().filter('tenant =',
                                    tenant).filter('designator =',
                                                   designator)
         query2 = Dokument.all().filter('tenant =', tenant).filter(
             'designator =', designator)
         query3 = Dokument.all().filter('tenant =',
                                        tenant).filter('ref =', designator)
         query4 = Dokument.all().filter('tenant =',
                                        tenant).filter('ref =', designator)
         results = list(
             set(
                 query1.fetch(10) + query2.fetch(10) + query3.fetch(10) +
                 query4.fetch(10)))
         values = dict(results=[x.as_dict(self.abs_url) for x in results],
                       success=True)
     else:
         results = []
         # 'Term1 "Term2 and Term3"'.split() -> ['Term1', 'Term2 and Term3']
         for part in gaetk.tools.split(self.request.get('q')):
             # would be aswsome to run this in paralell
             for model in [Akte, Dokument]:
                 for field in [
                         'designator', 'name1', 'plz', 'email', 'ref',
                         'name2', 'ort'
                 ]:
                     query = model.all().filter('tenant =', tenant).filter(
                         '%s >=' % field,
                         part).filter('%s <=' % field, part + u'\ufffd')
                     results.extend(
                         [x.as_dict(self.abs_url) for x in query.fetch(25)])
         # TODO: scoring and deduping
         values = dict(results=results, success=True)
     self.response.headers['Content-Type'] = 'application/json'
     self.response.out.write(json.dumps(values))