(dp1 S'output' p2 S" cannot concatenate 'str' and 'NoneType' objects" p3 sS'layer' p4 S'/home/jdalbey/Dropbox/web2py/applications/Multiform/controllers/default.py' p5 sS'code' p6 S' at 0x7f28a89555b0, 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'"cannot concatenate \'str\' and \'NoneType\' objects"' 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"'Inappropriate argument type.'" p37 sS'__getitem__' p38 S"" p39 sS'__setstate__' p40 S'' p41 sS'__getattribute__' p42 S"" p43 sS'args' p44 S'("cannot concatenate \'str\' and \'NoneType\' objects",)' 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"cannot concatenate 'str' and 'NoneType' objects" p57 sS'request' p58 cgluon.html XML_unpickle p59 (S's\x97_\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_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:
41104
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_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:
41104
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 0x7f28a8c97750>
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 0x7f28a8c97750>
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, 11, 15, 42, 908712)
raw_args:
raw_extension:
None
url:
/Multiform/default/results
utcnow:
datetime.datetime(2020, 3, 17, 18, 15, 42, 908735)
wsgi:
<gluon.main.LazyWSGI object at 0x7f28a89494d0>
' 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 0x7f28a89555b0, 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 0x7f28a89555b0, 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 0x7f28a89555b0, 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'statusfields' p127 S"'T22BB 1097 '" p128 sS'row.closureid' p129 S"'T5AC'" p130 sS'row.s1097user' p131 S'None' p132 sS'row' p133 S"" p134 ssg72 I41 sg73 (dp135 I36 S' count = len(hwy)' p136 sI37 S' # Show the results in table format. Get the radio call number from supervisor name lookup' p137 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.')))" p138 sI39 S' multiform = []' p139 sI40 S' for row in hwy:' p140 sI41 S" statusfields = row.closureid + ' 1097 ' + row.s1097user #+ formatDate(row.startdate) + ' ' + formatTime(row.starttime) +' '+formatDate(row.s1097date)+' '+ formatTime(row.s1097time)" p141 sI42 S' # Each row contains a form with two buttons and columns with closure fields' p142 sI43 S' multiform.append(TR(TD(XML(""), FORM( INPUT(_type=\'submit\',_name=\'btn1\',_value=\'Show History\'),XML(" "),' p143 sI44 S" INPUT(_type='submit',_name='btn2',_value='Show Status Form')," p144 sI45 S" INPUT(_type='hidden',_name='row',_value=row.closureid)))," p145 ssg85 S'()' p146 sg87 S'results' p147 sasS'pyver' p148 S'Python 2.7.17: /usr/bin/python (prefix: /usr)' p149 sS'session' p150 g59 (S's\xa6\x04\x00\x00
cb1:
T405AA
chosenid:
T5AA
closureid:
direction:
enddate:
flash:
None
lognum:
route:
startdate:
' tRp151 sS'etype' p152 S"" p153 sS'date' p154 S'Tue Mar 17 11:15:43 2020' p155 sS'response' p156 g59 (S'sX\x1d\x00\x00
body:
<cStringIO.StringO object at 0x7f28a89492f0>
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 0x7f28a8b949c0>
session_filename:
/home/jdalbey/Dropbox/web2py/applications/Multiform/sessions/127.0.0.1-813e6ba9-b6f7-45b5-b559-5ce108aed215
session_hash:
c011ac568427d35cc0c3d84f583878c6
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
' tRp157 sS'locals' p158 (dp159 S'count' p160 S'7' sS'header' p161 S'' p162 sS'multiform' p163 S'[, , , , , ]' p164 sS'hwy' p165 S'' p166 sS'msg' p167 S"'Start Date >= '" p168 sS'statusfields' p169 S"'T22BB 1097 '" p170 sS'row' p171 S"" p172 sssS'traceback' p173 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 statusfields = row.closureid + \' 1097 \' + row.s1097user #+ formatDate(row.startdate) + \' \' + formatTime(row.starttime) +\' \'+formatDate(row.s1097date)+\' \'+ formatTime(row.s1097time)\nTypeError: cannot concatenate \'str\' and \'NoneType\' objects\n' p174 s.