Coverage for dryxPyramid/models/models_base.py : 24%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1#!/usr/local/bin/python
2# encoding: utf-8
3"""
4*The base model for other model modules to build on top of*
6:Author:
7 David Young
8"""
10from builtins import object
11import sys
12import os
15class base_model(object):
16 """
17 A superclass model for pyramid apps
19 **Key Arguments:**
20 - ``log`` -- logger
21 - ``request`` -- the pyramid request
22 - ``elementId`` -- the specific element id requests (or False)
23 - ``search`` -- is the result given from a search query
24 """
26 def __init__(
27 self,
28 log,
29 request,
30 elementId=False,
31 search=False
32 ):
33 self.log = log
34 self.request = request
35 self.elementId = elementId
36 self.search = search
37 self.qs = dict(request.params) # the query string
38 # the query string defaults
39 self.defaultQs = {
40 "format": None
41 }
42 self.sql = {}
43 # self.resourceName = "basemodel"
45 if isinstance(elementId, list):
46 self.elementId = (",").join(str(elementId))
48 return None
50 def close(self):
51 del self
52 return None
54 def _set_default_parameters(
55 self):
56 """set default parameters
58 **Return:**
59 - None
60 """
61 self.log.debug('starting the ``_set_default_parameters`` method')
63 # refererRoute = self.request.referer.split(
64 # self.request.host)[1].split("?")[0]
65 # requestRoute = self.request.url.split(
66 # self.request.host)[1].split("?")[0]
68 defaultQs = {
69 "format": None,
70 "pageLimit": 100,
71 "pageStart": 0,
72 "sortBy": False,
73 "sortDesc": False,
74 "filterBy1": False,
75 "filterValue1": False,
76 "filterOp1": False,
77 "filterBy2": False,
78 "filterValue2": False,
79 "filterOp2": False
80 }
82 # NOW OVERRIDE THESE DEFAULTS IF NEEDED
83 for k, v in self.defaultQs.items():
84 defaultQs[k] = v
86 # ADD DEFAULTS TO THIS REQUEST - CLEAR OUR PARAMETERS COMING FROM A
87 # NON-RELATED RESOURCE/ROUTE
88 for k, v in defaultQs.items():
89 if k not in self.qs.keys():
90 self.qs[k] = v
92 self.sql["where"] = " where 1=1 "
93 self.sql["limit"] = ""
95 if self.qs["pageLimit"]:
96 self.sql["limit"] = "limit %(pageLimit)s" % self.qs
98 self.log.debug('completed the ``_set_default_parameters`` method')
99 return None
101 # xt-class-method