Hide keyboard shortcuts

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* 

5 

6:Author: 

7 David Young 

8""" 

9 

10from builtins import object 

11import sys 

12import os 

13 

14 

15class base_model(object): 

16 """ 

17 A superclass model for pyramid apps  

18 

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 """ 

25 

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" 

44 

45 if isinstance(elementId, list): 

46 self.elementId = (",").join(str(elementId)) 

47 

48 return None 

49 

50 def close(self): 

51 del self 

52 return None 

53 

54 def _set_default_parameters( 

55 self): 

56 """set default parameters 

57 

58 **Return:** 

59 - None 

60 """ 

61 self.log.debug('starting the ``_set_default_parameters`` method') 

62 

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] 

67 

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 } 

81 

82 # NOW OVERRIDE THESE DEFAULTS IF NEEDED 

83 for k, v in self.defaultQs.items(): 

84 defaultQs[k] = v 

85 

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 

91 

92 self.sql["where"] = " where 1=1 " 

93 self.sql["limit"] = "" 

94 

95 if self.qs["pageLimit"]: 

96 self.sql["limit"] = "limit %(pageLimit)s" % self.qs 

97 

98 self.log.debug('completed the ``_set_default_parameters`` method') 

99 return None 

100 

101 # xt-class-method