(dp1 S'output' p2 S" 'list' object has no attribute 'add'" p3 sS'layer' p4 S'/home/jdalbey/Dropbox/web2py/applications/Multiform/controllers/default.py' p5 sS'code' p6 S' at 0x7f28a97d7930, file "/home/jdalbey/Dropbox/web2py/applications/Multiform/controllers/default.py", line 1>' p7 sS'snapshot' p8 (dp9 S'exception' p10 (dp11 S'__getslice__' p12 S"" p13 sS'__str__' p14 S"" p15 sS'__reduce__' p16 S'' p17 sS'__dict__' p18 S'{}' p19 sS'message' p20 S'"\'list\' object has no attribute \'add\'"' p21 sS'__sizeof__' p22 S'' p23 sS'__init__' p24 S"" p25 sS'__setattr__' p26 S"" p27 sS'__reduce_ex__' p28 S'' p29 sS'__new__' p30 S'' p31 sS'__format__' p32 S'' p33 sS'__class__' p34 S"" p35 sS'__doc__' p36 S"'Attribute not found.'" p37 sS'__getitem__' p38 S"" p39 sS'__setstate__' p40 S'' p41 sS'__getattribute__' p42 S"" p43 sS'args' p44 S'("\'list\' object has no attribute \'add\'",)' p45 sS'__subclasshook__' p46 S'' p47 sS'__unicode__' p48 S'' p49 sS'__delattr__' p50 S"" p51 sS'__repr__' p52 S"" p53 sS'__hash__' p54 S"" p55 ssS'evalue' p56 S"'list' object has no attribute 'add'" p57 sS'request' p58 cgluon.html XML_unpickle p59 (S's\xbe`\x00\x00
ajax:
False
application:
Multiform
args:
cid:
None
client:
127.0.0.1
controller:
default
cookies:
session_id_admin:
127.0.0.1-5c45d7cd-3db4-46c4-9ec0-79ecd7e19129
comment:
domain:
expires:
httponly:
max-age:
path:
samesite:
secure:
version:
session_id_multiform:
127.0.0.1-813e6ba9-b6f7-45b5-b559-5ce108aed215
comment:
domain:
expires:
httponly:
max-age:
path:
samesite:
secure:
version:
session_id_welcome:
127.0.0.1-ef0783aa-c08a-4af8-bf0a-acc0c74419a5
comment:
domain:
expires:
httponly:
max-age:
path:
samesite:
secure:
version:
env:
HTTP_ACCEPT:
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
HTTP_ACCEPT_ENCODING:
gzip, deflate
HTTP_ACCEPT_LANGUAGE:
en-US,en;q=0.5
HTTP_CACHE_CONTROL:
max-age=0
HTTP_CONNECTION:
keep-alive
HTTP_COOKIE:
session_id_welcome=127.0.0.1-ef0783aa-c08a-4af8-bf0a-acc0c74419a5; session_id_admin=127.0.0.1-5c45d7cd-3db4-46c4-9ec0-79ecd7e19129; session_id_multiform=127.0.0.1-813e6ba9-b6f7-45b5-b559-5ce108aed215
HTTP_HOST:
localhost:8000
HTTP_REFERER:
http://localhost:8000/Multiform/default/search
HTTP_UPGRADE_INSECURE_REQUESTS:
1
HTTP_USER_AGENT:
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:73.0) Gecko/20100101 Firefox/73.0
PATH_INFO:
/Multiform/default/results
QUERY_STRING:
REMOTE_ADDR:
127.0.0.1
REMOTE_PORT:
38010
REQUEST_METHOD:
GET
SCRIPT_NAME:
SERVER_NAME:
Omen
SERVER_PORT:
8000
SERVER_PROTOCOL:
HTTP/1.1
SERVER_SOFTWARE:
Rocket 1.2.6
app_folders:
set(['/home/jdalbey/Dropbox/web2py/applications/HLD', '/home/jdalbey/Dropbox/web2py/applications/LCSv0', '/home/jdalbey/Dropbox/web2py/applications/Multiform', '/home/jdalbey/Dropbox/web2py/applications/Highways', '/home/jdalbey/Dropbox/web2py/applications/welcome', '/home/jdalbey/Dropbox/web2py/applications/admin'])
applications_parent:
/home/jdalbey/Dropbox/web2py
cmd_args:
cmd_options:
<Values at 0x7f28db0199b0: {'verbose': False, 'ip': '127.0.0.1', 'debuglevel': 30, 'with_scheduler': False, 'shutdown_timeout': 5, 'taskbar': False, 'with_coverage': False, 'pid_filename': 'httpserver.pid', 'maxthreads': None, 'softcron': False, 'server_name': 'Omen', 'bpython': False, 'nogui': False, 'port': 8000, 'print_errors': False, 'extcron': False, 'runcron': False, 'run_system_tests': False, 'test': None, 'folder': '/home/jdalbey/Dropbox/web2py', 'config': '', 'minthreads': None, 'shell': None, 'run': '', 'log_filename': 'httpserver.log', 'profiler_dir': None, 'args': [], 'socket_timeout': 5, 'ssl_ca_certificate': None, 'scheduler': None, 'interfaces': None, 'ssl_private_key': '', 'gae': None, 'password': '******', 'request_queue_size': 5, 'ssl_certificate': '', 'cronjob': False, 'numthreads': None, 'quiet': False, 'import_models': False, 'timeout': 10, 'plain': False, 'nobanner': False}>
db_sessions:
set([])
debugging:
True
gluon_parent:
/home/jdalbey/Dropbox/web2py
http_accept:
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
http_accept_encoding:
gzip, deflate
http_accept_language:
en-US,en;q=0.5
http_cache_control:
max-age=0
http_connection:
keep-alive
http_cookie:
session_id_welcome=127.0.0.1-ef0783aa-c08a-4af8-bf0a-acc0c74419a5; session_id_admin=127.0.0.1-5c45d7cd-3db4-46c4-9ec0-79ecd7e19129; session_id_multiform=127.0.0.1-813e6ba9-b6f7-45b5-b559-5ce108aed215
http_host:
localhost:8000
http_referer:
http://localhost:8000/Multiform/default/search
http_upgrade_insecure_requests:
1
http_user_agent:
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:73.0) Gecko/20100101 Firefox/73.0
is_jython:
False
is_py2:
True
is_pypy:
False
is_source:
True
local_hosts:
::1
127.0.1.1
::ffff:127.0.0.1
127.0.0.1
Omen
path_info:
/Multiform/default/results
query_string:
remote_addr:
127.0.0.1
remote_port:
38010
request_method:
GET
request_uri:
/Multiform/default/results
script_name:
server_name:
Omen
server_port:
8000
server_protocol:
HTTP/1.1
server_software:
Rocket 1.2.6
web2py_path:
/home/jdalbey/Dropbox/web2py
web2py_version:
2.18.5-stable+timestamp.2019.04.08.04.22.03
wsgi.errors:
<open file '<stderr>', mode 'w' at 0x7f28e2095270>
wsgi.file_wrapper:
<class wsgiref.util.FileWrapper at 0x7f28db04f980>
wsgi.input:
<socket._fileobject object at 0x7f28a8963ed0>
wsgi.multiprocess:
False
wsgi.multithread:
True
wsgi.run_once:
False
wsgi.url_scheme:
http
wsgi.version:
1
0
wsgi_errors:
<open file '<stderr>', mode 'w' at 0x7f28e2095270>
wsgi_file_wrapper:
<class wsgiref.util.FileWrapper at 0x7f28db04f980>
wsgi_input:
<socket._fileobject object at 0x7f28a8963ed0>
wsgi_multiprocess:
False
wsgi_multithread:
True
wsgi_run_once:
False
wsgi_url_scheme:
http
wsgi_version:
1
0
extension:
html
folder:
/home/jdalbey/Dropbox/web2py/applications/Multiform
function:
results
global_settings:
app_folders:
set(['/home/jdalbey/Dropbox/web2py/applications/HLD', '/home/jdalbey/Dropbox/web2py/applications/LCSv0', '/home/jdalbey/Dropbox/web2py/applications/Multiform', '/home/jdalbey/Dropbox/web2py/applications/Highways', '/home/jdalbey/Dropbox/web2py/applications/welcome', '/home/jdalbey/Dropbox/web2py/applications/admin'])
applications_parent:
/home/jdalbey/Dropbox/web2py
cmd_args:
cmd_options:
<Values at 0x7f28db0199b0: {'verbose': False, 'ip': '127.0.0.1', 'debuglevel': 30, 'with_scheduler': False, 'shutdown_timeout': 5, 'taskbar': False, 'with_coverage': False, 'pid_filename': 'httpserver.pid', 'maxthreads': None, 'softcron': False, 'server_name': 'Omen', 'bpython': False, 'nogui': False, 'port': 8000, 'print_errors': False, 'extcron': False, 'runcron': False, 'run_system_tests': False, 'test': None, 'folder': '/home/jdalbey/Dropbox/web2py', 'config': '', 'minthreads': None, 'shell': None, 'run': '', 'log_filename': 'httpserver.log', 'profiler_dir': None, 'args': [], 'socket_timeout': 5, 'ssl_ca_certificate': None, 'scheduler': None, 'interfaces': None, 'ssl_private_key': '', 'gae': None, 'password': '******', 'request_queue_size': 5, 'ssl_certificate': '', 'cronjob': False, 'numthreads': None, 'quiet': False, 'import_models': False, 'timeout': 10, 'plain': False, 'nobanner': False}>
db_sessions:
set([])
debugging:
True
gluon_parent:
/home/jdalbey/Dropbox/web2py
is_jython:
False
is_py2:
True
is_pypy:
False
is_source:
True
local_hosts:
::1
127.0.1.1
::ffff:127.0.0.1
127.0.0.1
Omen
web2py_version:
2.18.5-stable+timestamp.2019.04.08.04.22.03
is_https:
False
is_local:
True
is_restful:
False
is_scheduler:
False
is_shell:
False
method:
GET
now:
datetime.datetime(2020, 3, 17, 7, 58, 14, 910122)
raw_args:
raw_extension:
None
url:
/Multiform/default/results
utcnow:
datetime.datetime(2020, 3, 17, 14, 58, 14, 910142)
wsgi:
<gluon.main.LazyWSGI object at 0x7f28a8a8c690>
' tRp60 sS'frames' p61 (lp62 (dp63 S'file' p64 S'/home/jdalbey/Dropbox/web2py/gluon/restricted.py' p65 sS'dump' p66 (dp67 S'environment' p68 S"{'A': , 'ANY_OF': , 'ASSIGNJS': , 'B': , 'BEAUTIFY': , 'BODY': , 'BR': , 'BUTTON': , 'CAT': , 'CENTER': , ...}" p69 sS'ccode' p70 S' at 0x7f28a97d7930, file "/...ations/Multiform/controllers/default.py", line 1>' p71 ssS'lnum' p72 I219 sS'lines' p73 (dp74 I214 S' if environment is None:' p75 sI215 S' environment = {}' p76 sI216 S" environment['__file__'] = layer" p77 sI217 S" environment['__name__'] = '__restricted__'" p78 sI218 S' try:' p79 sI219 S' exec(ccode, environment)' p80 sI220 S' except HTTP:' p81 sI221 S' raise' p82 sI222 S' except RestrictedError:' p83 sI223 S' # do not encapsulate (obfuscate) the original RestrictedError' p84 ssS'call' p85 S'(ccode= at 0x7f28a97d7930, file "/...ations/Multiform/controllers/default.py", line 1>, environment={\'A\': , \'ANY_OF\': , \'ASSIGNJS\': , \'B\': , \'BEAUTIFY\': , \'BODY\': , \'BR\': , \'BUTTON\': , \'CAT\': , \'CENTER\': , ...}, layer=\'/home/jdalbey/Dropbox/web2py/applications/Multiform/controllers/default.py\', scode= at 0x7f28a97d7930, file "/...ations/Multiform/controllers/default.py", line 1>)' p86 sS'func' p87 S'restricted' p88 sa(dp89 g64 S'/home/jdalbey/Dropbox/web2py/applications/Multiform/controllers/default.py' p90 sg66 (dp91 sg72 I209 sg73 (dp92 I198 S' # Retrieve any existing closures on this route' p93 sI199 S" item = db(db.closures.closureid.startswith('T'+routeNum)).select().last() # Might need to sort these" p94 sI200 S' if (item != None):' p95 sI201 S' currID = item.closureid' p96 sI202 S' lastchar = currID[-1:] # Get last character of ID' p97 sI203 S' lastchar = chr(ord(lastchar) + 1) # increment it to next character (need bounds check)' p98 sI204 S' newID = currID[:-1] + lastchar # append char to ID' p99 sI205 S' return newID' p100 sI206 S' else:' p101 sI207 S" return 'T'+routeNum+'AA' # For a non-existing route" p102 ssg85 S'()' p103 sg87 S'' p104 sa(dp105 g64 S'/home/jdalbey/Dropbox/web2py/gluon/globals.py' p106 sg66 (dp107 S'self' p108 S'undefined' p109 sS'f' S'' p110 ssg72 I421 sg73 (dp111 I416 S" self.flash = '' # used by the default view layout" p112 sI417 S' self.meta = Storage() # used by web2py_ajax.html' p113 sI418 S' self.menu = [] # used by the default view layout' p114 sI419 S' self.files = [] # used by web2py_ajax.html' p115 sI420 S' self._vars = None' p116 sI421 S' self._caller = lambda f: f()' p117 sI422 S' self._view_environment = None' p118 sI423 S' self._custom_commit = None' p119 sI424 S' self._custom_rollback = None' p120 sI425 S" self.generic_patterns = ['*']" p121 ssg85 S'(f=)' p122 sg87 S'' p123 sa(dp124 g64 S'/home/jdalbey/Dropbox/web2py/applications/Multiform/controllers/default.py' p125 sg66 (dp126 S'row.tmpdetour' p127 S"'NO'" p128 sS'row.route' p129 S"'5'" p130 sS'global HR' p131 S"" p132 sS'row.enddate' p133 S"'20200102'" p134 sS').select' p135 g109 sS'row.worktype' p136 S"'AC Paving'" p137 sS'global BR' p138 S"" p139 sS'row.estdelay' p140 S"'66'" p141 sS'row.startdate' p142 S"'20200101'" p143 sS'row.startlocation' p144 S"'1st'" p145 sS'row.facility' p146 S"'Mainline'" p147 sS'row.closureid' p148 S"'T5AA'" p149 sS'row.lognum' p150 S"'1'" p151 sS'row' p152 S"" p153 sS'row.direction' p154 S"'N'" p155 sS'_type' p156 g109 sS'row.closuretype' p157 S"'Lane'" p158 sS'row.endlocation' p159 S"'2nd'" p160 sS'global TD' p161 S"" p162 sS'_value' p163 g109 sS'global db' p164 S'' p165 sS'global FORM' p166 S"" p167 sS'global TR' p168 S"" p169 sS'row.supervisor' p170 S"'Joe'" p171 sS'db.supervisors' p172 S'' p173 sS'multiform.add' p174 g109 sS'_name' p175 g109 sS'multiform' p176 S'[]' p177 sS'global INPUT' p178 S"" p179 sS'global XML' p180 S"" p181 sS'row.tmpcozeep' p182 S"'NO'" p183 sS'db.supervisors.name' p184 S'' p185 ssg72 I41 sg73 (dp186 I36 S' count = len(hwy)' p187 sI37 S' # Show the results in table format. Get the radio call number from supervisor name lookup' p188 sI38 S" header = THEAD(TR(TH(''), TH('DTM',BR(),'Area'), TH('Closure ID/',BR(),'Log No.'),TH('Route & Dir',BR(),'Type of Closure'),TH('Start Date/',BR(),'End Date/',BR(),'Est. Delay'),TH('Facility'),TH('Limits'),TH('Work'),TH('TMP'),TH('Requestor/',BR(),'Radio Call No.')))" p189 sI39 S' multiform = []' p190 sI40 S' for row in hwy:' p191 sI41 S' multiform.add(FORM(INPUT(_type=\'submit\',_name=\'btn1\',_value=\'Show History\'),XML(" "),' p192 sI42 S" INPUT(_type='submit',_name='btn2',_value='Show Status Form')," p193 sI43 S" TR(TD(row.closureid[0]),TD(row.closureid,HR(),row.lognum), TD(row.route,' ',row.direction,HR(),row.closuretype), TD(row.startdate,HR(),row.enddate,HR(),row.estdelay), TD(row.facility),TD(row.startlocation,HR(),row.endlocation), TD(row.worktype), TD(row.tmpcozeep,BR(),row.tmpdetour), TD(row.supervisor,BR(),db(db.supervisors.name == row.supervisor).select().first().radiocallnum) )) )" p194 sI44 S'' sI45 S" tbl = TABLE(header,_border='1', _cellpadding='5')" p195 ssg85 S'()' p196 sg87 S'results' p197 sasS'pyver' p198 S'Python 2.7.17: /usr/bin/python (prefix: /usr)' p199 sS'session' p200 g59 (S's\x1d\x03\x00\x00
closureid:
direction:
enddate:
lognum:
route:
startdate:
' tRp201 sS'etype' p202 S"" p203 sS'date' p204 S'Tue Mar 17 07:58:15 2020' p205 sS'response' p206 g59 (S'sX\x1d\x00\x00
body:
<cStringIO.StringO object at 0x7f28a8a7e2b0>
cookies:
session_id_multiform:
127.0.0.1-813e6ba9-b6f7-45b5-b559-5ce108aed215
comment:
domain:
expires:
httponly:
max-age:
path:
/
samesite:
secure:
version:
delimiters:
{{
}}
files:
flash:
form_label_separator:
:
formstyle:
table3cols
generic_patterns:
*
headers:
X-Powered-By:
web2py
menu:
Home
False
/Multiform/default/index
List
False
/Multiform/default/list
Search
False
/Multiform/default/search
Request
False
/Multiform/default/submit
meta:
author:
Author
description:
describe your app
keywords:
keyword
models_to_run:
^\\w+\\.py$
^default/\\w+\\.py$
^default/results/\\w+\\.py$
postprocessing:
session_client:
127.0.0.1
session_cookie_compression_level:
None
session_cookie_expires:
None
session_data_name:
session_data_multiform
session_file:
<open file '/home/jdalbey/Dropbox/web2py/applications/Multiform/sessions/011/0ed/127.0.0.1-813e6ba9-b6f7-45b5-b559-5ce108aed215', mode 'rb+' at 0x7f28a8c6bae0>
session_filename:
/home/jdalbey/Dropbox/web2py/applications/Multiform/sessions/127.0.0.1-813e6ba9-b6f7-45b5-b559-5ce108aed215
session_hash:
4d6cd836ae4b684b1b3efc262bafc1b3
session_id:
127.0.0.1-813e6ba9-b6f7-45b5-b559-5ce108aed215
session_id_name:
session_id_multiform
session_locked:
True
session_masterapp:
Multiform
session_new:
False
session_storage_type:
file
status:
200
subtitle:
subtitle customize me!
title:
Multiform
view:
default/results.html
' tRp207 sS'locals' p208 (dp209 S'count' p210 S'7' sS'header' p211 S'' p212 sS'multiform' p213 S'[]' p214 sS'hwy' p215 S'' p216 sS'msg' p217 S"'Start Date >= '" p218 sS'row' p219 S"" p220 sssS'traceback' p221 S'Traceback (most recent call last):\n File "/home/jdalbey/Dropbox/web2py/gluon/restricted.py", line 219, in restricted\n exec(ccode, environment)\n File "/home/jdalbey/Dropbox/web2py/applications/Multiform/controllers/default.py", line 209, in \n File "/home/jdalbey/Dropbox/web2py/gluon/globals.py", line 421, in \n self._caller = lambda f: f()\n File "/home/jdalbey/Dropbox/web2py/applications/Multiform/controllers/default.py", line 41, in results\n multiform.add(FORM(INPUT(_type=\'submit\',_name=\'btn1\',_value=\'Show History\'),XML(" "),\nAttributeError: \'list\' object has no attribute \'add\'\n' p222 s.