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*Template for the members view* 

5 

6:Author: 

7 David Young 

8""" 

9from builtins import object 

10import sys 

11import os 

12from marshall_webapp.models.members import models_members_get 

13from pyramid.path import AssetResolver 

14import khufu 

15 

16class templates_resource_members(object): 

17 """ 

18 The worker class for the templates_resource_members module 

19 

20 **Key Arguments** 

21 

22 - ``log`` -- logger 

23 - ``request`` -- the pyramid/WebObs request object 

24 - ``elementId`` -- the specific element requested (or False) 

25 - ``search`` -- is this a search? (boolean) 

26  

27 """ 

28 

29 def __init__( 

30 self, 

31 log, 

32 request, 

33 elementId=False, 

34 search=False 

35 ): 

36 self.log = log 

37 self.request = request 

38 log.debug("instansiating a new 'templates_resource_members' object") 

39 self.elementId = elementId 

40 self.search = search 

41 # xt-self-arg-tmpx 

42 

43 members = models_members_get( 

44 log=self.log, 

45 request=self.request, 

46 ) 

47 self.members = members.get( 

48 ) 

49 

50 return None 

51 

52 def get(self): 

53 """get the templates_resource_members object 

54 

55 **Return** 

56 

57 - ``webpage`` -- the webapge HTML 

58  

59 """ 

60 self.log.debug('starting the ``get`` method') 

61 

62 maincontent = self._get_members_table() 

63 from marshall_webapp.templates.commonelements.pagetemplates import defaultpagetemplate 

64 

65 webpage = defaultpagetemplate( 

66 log=self.log, 

67 request=self.request, 

68 bodyId=False, 

69 pageTitle="ePESSTO+ Marshall", 

70 topNavBar=False, 

71 sideBar=False, 

72 mainContent="<BR><BR>" + maincontent, 

73 relativePathFromDocRoot=False, 

74 thisPageName="PESSTO Members" 

75 ) 

76 

77 self.log.debug('completed the ``get`` method') 

78 return webpage 

79 

80 def _get_members_table(self): 

81 """get members table 

82 """ 

83 self.log.debug('starting the ``_get_members_table`` method') 

84 

85 for row in self.members: 

86 for k, v in list(row.items()): 

87 row[k] = v.title() 

88 

89 total = len(self.members) 

90 

91 # ASSOICATE THE CORRECT COLUMN NAME TO MYSQL DATABASE COLUMN NAME 

92 tableColumnNames = { 

93 "firstname": "First Name", 

94 "secondname": "Second Name" 

95 } 

96 

97 # A LIST OF NAMES FOR TABLE AND CSV VIEWS 

98 tableColumns = [ 

99 "firstname", 

100 "secondname", 

101 ] 

102 

103 # CREATE THE SORTABLE TABLES OF OBJECTS 

104 table = khufu.tables.sortable_table( 

105 currentPageUrl=self.request.path_qs, 

106 columnsToDisplay=tableColumns, 

107 tableRowsDictionary=self.members, 

108 log=self.log, 

109 defaultSort="secondname" 

110 ) 

111 nd = table.modifyDisplayNameDict 

112 nd["firstname"] = "First Name" 

113 nd["secondname"] = "Second Name" 

114 

115 # table.searchKeyAndColumn = ("search", "plainName") 

116 

117 table = table.get() 

118 

119 # ADD TEXT COLOR 

120 text = khufu.coloredText( 

121 text="There are currently %(total)s PESSTO Members signed up to use the Marshall<BR><BR>" % locals( 

122 ), 

123 color="#657b83", 

124 size=5, # 1-10 

125 pull="right", # "left" | "right", 

126 addBackgroundColor=False 

127 ) 

128 

129 object_table = khufu.grid_column( 

130 span=6, # 1-12 

131 offset=0, # 1-12 

132 content=text + table, 

133 htmlId="object_table", 

134 htmlClass=False, 

135 onPhone=True, 

136 onTablet=True, 

137 onDesktop=True 

138 ) 

139 

140 self.log.debug('completed the ``_get_members_table`` method') 

141 return object_table 

142 

143 # xt-class-method