# xxx unique can be removed, but for now we pad the js structure
unique=0
+ aq = self.analyzed_query.to_json() if self.analyzed_query else 'null'
# subqueries is a dictionary method:query
- sq=", ".join ( [ "'%s':%s" % (method, subquery.to_json())
+ if not self.subqueries:
+ sq="{}"
+ else:
+ sq=", ".join ( [ "'%s':%s" % (method, subquery.to_json())
for (method, subquery) in self.subqueries.iteritems()])
+ sq="{%s}"%sq
- aq = self.analyzed_query.to_json() if self.analyzed_query else 'null'
+ return """ new Query('%(a)s', '%(m)s', '%(t)s', %(f)s, %(p)s, %(c)s, %(unique)s, '%(uuid)s', %(aq)s, %(sq)s)"""%locals()
+
+ # 4amine
+ # xxx
+ # this should build an object from a dict as received from javascript
+ # to see an example just look at the server's output
+ # incoming POST <QueryDict: {u'query[method]': [u'slice'], u'query[fields][]': [u'slice_hrn'], u'query[timestamp]': [u'latest'], u'query[action]': [u'get']}>
+ def fill_from_dict (self, d):
+ for key in d.keys():
+ for arg in ['action', 'method', 'filters', 'fields', 'timestamp', 'params']:
+ if arg in key:
+ # dirty hack around fields; fields must be a list
+ if arg == 'fields':
+ setattr(self, arg, [d[key]])
+ else:
+ setattr(self, arg, d[key])
+ break
- return "new Query('%(a)s', '%(m)s', '%(t)s', %(f)s, %(p)s, %(c)s, %(unique)s, '%(uuid)s', %(aq)s, {{%(sq)s}})"%locals()