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*
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
16class templates_resource_members(object):
17 """
18 The worker class for the templates_resource_members module
20 **Key Arguments**
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)
27 """
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
43 members = models_members_get(
44 log=self.log,
45 request=self.request,
46 )
47 self.members = members.get(
48 )
50 return None
52 def get(self):
53 """get the templates_resource_members object
55 **Return**
57 - ``webpage`` -- the webapge HTML
59 """
60 self.log.debug('starting the ``get`` method')
62 maincontent = self._get_members_table()
63 from marshall_webapp.templates.commonelements.pagetemplates import defaultpagetemplate
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 )
77 self.log.debug('completed the ``get`` method')
78 return webpage
80 def _get_members_table(self):
81 """get members table
82 """
83 self.log.debug('starting the ``_get_members_table`` method')
85 for row in self.members:
86 for k, v in list(row.items()):
87 row[k] = v.title()
89 total = len(self.members)
91 # ASSOICATE THE CORRECT COLUMN NAME TO MYSQL DATABASE COLUMN NAME
92 tableColumnNames = {
93 "firstname": "First Name",
94 "secondname": "Second Name"
95 }
97 # A LIST OF NAMES FOR TABLE AND CSV VIEWS
98 tableColumns = [
99 "firstname",
100 "secondname",
101 ]
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"
115 # table.searchKeyAndColumn = ("search", "plainName")
117 table = table.get()
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 )
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 )
140 self.log.debug('completed the ``_get_members_table`` method')
141 return object_table
143 # xt-class-method