1
|
Exception:
|
2
|
type = '<type 'exceptions.AttributeError'>', value = ''str' object has no attribute 'get''
|
3
|
|
4
|
Stack trace (most recent call first):
|
5
|
File "/usr/lib/python2.7/dist-packages/wcs/qommon/form.py", line 1753, in set_value
|
6
|
1751 if value:
|
7
|
1752 for name in self.element_names:
|
8
|
> 1753 self.get_widget(name).set_value(self.value.get(self.element_names[name]))
|
9
|
1754
|
10
|
1755 def render_content(self):
|
11
|
|
12
|
locals:
|
13
|
name = 'element0'
|
14
|
self = <RankedItemsWidget at 7fda7b21d190: f8>
|
15
|
value = '0'
|
16
|
|
17
|
File "/usr/lib/python2.7/dist-packages/wcs/forms/root.py", line 354, in page
|
18
|
352 if not isinstance(v, str) and field.convert_value_to_str:
|
19
|
353 v = field.convert_value_to_str(v)
|
20
|
> 354 form.get_widget('f%s' % k).set_value(v)
|
21
|
355 if verified:
|
22
|
356 form.get_widget('f%s' % k).readonly = 'readonly'
|
23
|
|
24
|
locals:
|
25
|
data = {}
|
26
|
displayed_fields = [<wcs.fields.CommentField object at 0x7fda7b7c2810>, <wcs.fields.TitleField object at 0x7fda7b7c2cd0>, <wcs.fields.StringField object at 0x7fda7b5b5ad0>, <wcs.fields.StringField object at 0x7fda7b3a3110>, <wcs.fields.StringField object at 0x7fda7b978250>, <wcs.fields.StringField object at 0x7fda7b978290>, <wcs.fields.StringField object at 0x7fda7b978d10>, <wcs.fields.TitleField object at 0x7fda7b978650>, <wcs.fields.CommentField object at 0x7fda7b9789d0>, <wcs.fields.RankedItemsField object at 0x7fda7b978610>, <wcs.fields.TextField object at 0x7fda7b9781d0>]
|
27
|
field = <wcs.fields.RankedItemsField object at 0x7fda7b978610>
|
28
|
form = <wcs.qommon.form.Form object at 0x7fda7b21d590>
|
29
|
form_data = {}
|
30
|
k = '8'
|
31
|
magictoken = '0b28968f651b25f4'
|
32
|
one = True
|
33
|
page = None
|
34
|
page_change = True
|
35
|
page_error_messages = None
|
36
|
prefill_user = <SqlUser 'Laurent S\xc3\xa9guin' id:23>
|
37
|
prefilled = True
|
38
|
req = <wcs.compat.CompatHTTPRequest instance at 0x7fda7aa833b0>
|
39
|
self = <wcs.forms.preview.PreviewFormPage object at 0x7fda7b774350>
|
40
|
session = <Session at 7fda79b37750: 94677fdfd561fa60>
|
41
|
v = '0'
|
42
|
verified = False
|
43
|
|
44
|
File "/usr/lib/python2.7/dist-packages/wcs/forms/root.py", line 646, in _q_index
|
45
|
644 if not self.pages:
|
46
|
645 raise errors.TraversalError()
|
47
|
> 646 return self.page(self.pages[0])
|
48
|
647
|
49
|
648 if form.get_submit() == 'cancel':
|
50
|
|
51
|
locals:
|
52
|
authentication_context_check_result = None
|
53
|
existing_formdata = None
|
54
|
form = <qommon.form.Form object at 0x7fda7b978410>
|
55
|
self = <wcs.forms.preview.PreviewFormPage object at 0x7fda7b774350>
|
56
|
session = <Session at 7fda79b37750: 94677fdfd561fa60>
|
57
|
|
58
|
File "/usr/lib/pymodules/python2.7/quixote/directory.py", line 67, in _q_traverse
|
59
|
65 raise TraversalError
|
60
|
66 elif hasattr(obj, '__call__'):
|
61
|
> 67 return obj()
|
62
|
68 else:
|
63
|
69 return obj
|
64
|
|
65
|
locals:
|
66
|
component = ''
|
67
|
name = '_q_index'
|
68
|
obj = <bound method PreviewFormPage._q_index of <wcs.forms.preview.PreviewFormPage object at 0x7fda7b774350>>
|
69
|
path = []
|
70
|
self = <wcs.forms.preview.PreviewFormPage object at 0x7fda7b774350>
|
71
|
|
72
|
File "/usr/lib/pymodules/python2.7/quixote/directory.py", line 63, in _q_traverse
|
73
|
61 if path:
|
74
|
62 if hasattr(obj, '_q_traverse'):
|
75
|
> 63 return obj._q_traverse(path)
|
76
|
64 else:
|
77
|
65 raise TraversalError
|
78
|
|
79
|
locals:
|
80
|
component = 'banderole-sur-le-rond-point-de-tassigny'
|
81
|
name = None
|
82
|
obj = <wcs.forms.preview.PreviewFormPage object at 0x7fda7b774350>
|
83
|
path = ['']
|
84
|
self = <auquotidien.modules.root.AlternatePreviewDirectory object at 0x7fda83b3b590>
|
85
|
|
86
|
File "/usr/lib/pymodules/python2.7/quixote/directory.py", line 91, in _q_traverse
|
87
|
89 def _q_traverse(self, path):
|
88
|
90 self._q_access()
|
89
|
> 91 return super(AccessControlled, self)._q_traverse(path)
|
90
|
92
|
91
|
93
|
92
|
|
93
|
locals:
|
94
|
path = ['banderole-sur-le-rond-point-de-tassigny', '']
|
95
|
self = <auquotidien.modules.root.AlternatePreviewDirectory object at 0x7fda83b3b590>
|
96
|
|
97
|
File "/usr/lib/python2.7/dist-packages/auquotidien/modules/root.py", line 760, in _q_traverse
|
98
|
758 def _q_traverse(self, path):
|
99
|
759 get_response().filter['bigdiv'] = 'rub_service'
|
100
|
> 760 return super(AlternatePreviewDirectory, self)._q_traverse(path)
|
101
|
761
|
102
|
762
|
103
|
|
104
|
locals:
|
105
|
path = ['banderole-sur-le-rond-point-de-tassigny', '']
|
106
|
self = <auquotidien.modules.root.AlternatePreviewDirectory object at 0x7fda83b3b590>
|
107
|
|
108
|
File "/usr/lib/pymodules/python2.7/quixote/directory.py", line 63, in _q_traverse
|
109
|
61 if path:
|
110
|
62 if hasattr(obj, '_q_traverse'):
|
111
|
> 63 return obj._q_traverse(path)
|
112
|
64 else:
|
113
|
65 raise TraversalError
|
114
|
|
115
|
locals:
|
116
|
component = 'preview'
|
117
|
name = 'preview'
|
118
|
obj = <auquotidien.modules.root.AlternatePreviewDirectory object at 0x7fda83b3b590>
|
119
|
path = ['banderole-sur-le-rond-point-de-tassigny', '']
|
120
|
self = <auquotidien.modules.root.AlternateRootDirectory object at 0x7fda828fe250>
|
121
|
|
122
|
File "/usr/lib/python2.7/dist-packages/auquotidien/modules/root.py", line 847, in _q_traverse
|
123
|
845 return redirect('%s%s/%s' % (base_url, f.category.url_name, uri_rest))
|
124
|
846
|
125
|
> 847 raise e
|
126
|
848
|
127
|
849
|
128
|
|
129
|
locals:
|
130
|
path = ['preview', 'banderole-sur-le-rond-point-de-tassigny', '']
|
131
|
response = <wcs.qommon.http_response.HTTPResponse instance at 0x7fda7aa83098>
|
132
|
self = <auquotidien.modules.root.AlternateRootDirectory object at 0x7fda828fe250>
|
133
|
|
134
|
File "/usr/lib/pymodules/python2.7/quixote/publish.py", line 253, in try_publish
|
135
|
251 permanent=True)
|
136
|
252 components = path[1:].split('/')
|
137
|
> 253 output = self.root_directory._q_traverse(components)
|
138
|
254 # The callable ran OK, commit any changes to the session
|
139
|
255 self.finish_successful_request()
|
140
|
|
141
|
locals:
|
142
|
components = ['preview', 'banderole-sur-le-rond-point-de-tassigny', '']
|
143
|
path = '/preview/banderole-sur-le-rond-point-de-tassigny/'
|
144
|
request = <wcs.compat.CompatHTTPRequest instance at 0x7fda7aa833b0>
|
145
|
self = <wcs.compat.CompatWcsPublisher object at 0x7fda828fe210>
|
146
|
|
147
|
File "/usr/lib/python2.7/dist-packages/wcs/compat.py", line 206, in process_request
|
148
|
204 output = self.finish_interrupted_request(exc)
|
149
|
205 except Exception, exc:
|
150
|
> 206 output = self.finish_failed_request()
|
151
|
207 response = request.response
|
152
|
208
|
153
|
|
154
|
locals:
|
155
|
exc = AttributeError("'str' object has no attribute 'get'",)
|
156
|
request = <wcs.compat.CompatHTTPRequest instance at 0x7fda7aa833b0>
|
157
|
self = <wcs.compat.CompatWcsPublisher object at 0x7fda828fe210>
|
158
|
|
159
|
File "/usr/lib/python2.7/dist-packages/wcs/compat.py", line 244, in quixote
|
160
|
242 def quixote(request):
|
161
|
243 pub = get_publisher()
|
162
|
> 244 return pub.process_request(pub.get_request())
|
163
|
245
|
164
|
246
|
165
|
|
166
|
locals:
|
167
|
pub = <wcs.compat.CompatWcsPublisher object at 0x7fda828fe210>
|
168
|
request = <WSGIRequest: GET '/preview/banderole-sur-le-rond-point-de-tassigny/'>
|
169
|
|
170
|
File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 132, in get_response
|
171
|
130 wrapped_callback = self.make_view_atomic(callback)
|
172
|
131 try:
|
173
|
> 132 response = wrapped_callback(request, *callback_args, **callback_kwargs)
|
174
|
133 except Exception as e:
|
175
|
134 # If the view raised an exception, run it through exception
|
176
|
|
177
|
locals:
|
178
|
callback = <function quixote at 0x7fda84ab7398>
|
179
|
callback_args = ()
|
180
|
callback_kwargs = {}
|
181
|
middleware_method = <bound method PrometheusStatsMiddleware.process_view of <hobo.middleware.stats.PrometheusStatsMiddleware object at 0x7fda82ba6790>>
|
182
|
request = <WSGIRequest: GET '/preview/banderole-sur-le-rond-point-de-tassigny/'>
|
183
|
resolver = <RegexURLResolver 'wcs.urls' (None:None) ^/>
|
184
|
resolver_match = ResolverMatch(func=wcs.compat.quixote, args=(), kwargs={}, url_name=quixote, app_name=None, namespaces=[])
|
185
|
response = None
|
186
|
self = <django.core.handlers.wsgi.WSGIHandler object at 0x7fda8a100c50>
|
187
|
urlconf = 'wcs.urls'
|
188
|
wrapped_callback = <function quixote at 0x7fda84ab7398>
|
189
|
|
190
|
File "/usr/lib/python2.7/dist-packages/django/core/handlers/wsgi.py", line 189, in __call__
|
191
|
187 response = http.HttpResponseBadRequest()
|
192
|
188 else:
|
193
|
> 189 response = self.get_response(request)
|
194
|
190
|
195
|
191 response._handler_class = self.__class__
|
196
|
|
197
|
locals:
|
198
|
environ = {'HTTP_REFERER': 'https://demarches-saint-chamond-test.demarches.sitiv.fr/backoffice/forms/63/', 'SERVER_PROTOCOL': 'HTTP/1.0', 'uwsgi.version': '2.0.7-debian', 'SCRIPT_NAME': '', 'REQUEST_METHOD': 'GET', 'PATH_INFO': '/preview/banderole-sur-le-rond-point-de-tassigny/', 'HTTP_X_FORWARDED_SSL': 'on', 'QUERY_STRING': '', 'HTTP_X_REAL_IP': '192.168.81.2', 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0', 'HTTP_CONNECTION': 'close', 'HTTP_COOKIE': 'publik_portal_agent_url=https%3A%2F%2Fagents-saint-chamond-test.demarches.sitiv.fr%2F; publik_portal_agent_title=Portail%20agent; gadjo_sidepage_status=expanded; wcs-eca3e0="94677fdfd561fa60"; A2_OPENED_SESSION=1', 'SERVER_NAME': 'dcpublik-recette', 'REMOTE_ADDR': '80.12.92.47', 'HTTP_X_FORWARDED_PROTOCOL': 'ssl', 'wsgi.url_scheme': 'https', 'SERVER_PORT': '80', 'uwsgi.node': 'dcpublik-recette', 'HTTP_X_FORWARDED_PROTO': 'https', 'wsgi.input': <uwsgi._Input object at 0x7fda7b787f48>, 'HTTP_DNT': '1', 'HTTP_HOST': 'demarches-saint-chamond-test.demarches.sitiv.fr', 'wsgi.multithread': False, 'HTTP_UPGRADE_INSECURE_REQUESTS': '1', 'HTTP_CACHE_CONTROL': 'max-age=0', 'REQUEST_URI': '/preview/banderole-sur-le-rond-point-de-tassigny/', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'wsgi.version': (1, 0), 'HTTP_X_FORWARDED_FOR': '80.12.92.47, 192.168.81.2', 'wsgi.errors': <open file 'wsgi_errors', mode 'w' at 0x7fda83d100c0>, 'wsgi.multiprocess': True, 'HTTP_ACCEPT_LANGUAGE': 'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3', 'wsgi.run_once': False, 'wsgi.file_wrapper': <built-in function uwsgi_sendfile>, 'HTTP_ACCEPT_ENCODING': 'gzip, deflate, br'}
|
199
|
request = <WSGIRequest: GET '/preview/banderole-sur-le-rond-point-de-tassigny/'>
|
200
|
self = <django.core.handlers.wsgi.WSGIHandler object at 0x7fda8a100c50>
|
201
|
start_response = <built-in function uwsgi_spit>
|
202
|
|
203
|
|
204
|
Form:
|
205
|
f4 '42 400'
|
206
|
f5 'Saint-Chamond'
|
207
|
|
208
|
Cookies:
|
209
|
A2_OPENED_SESSION '1'
|
210
|
gadjo_sidepage_status 'expanded'
|
211
|
publik_portal_agent_title 'Portail%20agent'
|
212
|
publik_portal_agent_url 'https%3A%2F%2Fagents-saint-chamond-test.demarches.sitiv.fr%2F'
|
213
|
wcs-eca3e0 '94677fdfd561fa60'
|
214
|
|
215
|
Environment:
|
216
|
HTTP_ACCEPT 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
|
217
|
HTTP_ACCEPT_ENCODING 'gzip, deflate, br'
|
218
|
HTTP_ACCEPT_LANGUAGE 'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3'
|
219
|
HTTP_CACHE_CONTROL 'max-age=0'
|
220
|
HTTP_CONNECTION 'close'
|
221
|
HTTP_COOKIE 'publik_portal_agent_url=https%3A%2F%2Fagents-saint-chamond-test.demarches.sitiv.fr%2F; publik_portal_agent_title=Portail%20agent; gadjo_sidepage_status=expanded; wcs-eca3e0="94677fdfd561fa60"; A2_OPENED_SESSION=1'
|
222
|
HTTP_DNT '1'
|
223
|
HTTP_HOST 'demarches-saint-chamond-test.demarches.sitiv.fr'
|
224
|
HTTP_REFERER 'https://demarches-saint-chamond-test.demarches.sitiv.fr/backoffice/forms/63/'
|
225
|
HTTP_UPGRADE_INSECURE_REQUESTS '1'
|
226
|
HTTP_USER_AGENT 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0'
|
227
|
HTTP_X_FORWARDED_FOR '80.12.92.47, 192.168.81.2'
|
228
|
HTTP_X_FORWARDED_PROTO 'https'
|
229
|
HTTP_X_FORWARDED_PROTOCOL 'ssl'
|
230
|
HTTP_X_FORWARDED_SSL 'on'
|
231
|
HTTP_X_REAL_IP '192.168.81.2'
|
232
|
PATH_INFO '/preview/banderole-sur-le-rond-point-de-tassigny/'
|
233
|
QUERY_STRING ''
|
234
|
REMOTE_ADDR '80.12.92.47'
|
235
|
REMOTE_USER '23'
|
236
|
REQUEST_METHOD 'GET'
|
237
|
REQUEST_URI '/preview/banderole-sur-le-rond-point-de-tassigny/'
|
238
|
SCRIPT_NAME ''
|
239
|
SERVER_NAME 'dcpublik-recette'
|
240
|
SERVER_PORT '80'
|
241
|
SERVER_PROTOCOL 'HTTP/1.0'
|
242
|
uwsgi.node 'dcpublik-recette'
|
243
|
uwsgi.version '2.0.7-debian'
|
244
|
wsgi.errors <open file 'wsgi_errors', mode 'w' at 0x7fda83d100c0>
|
245
|
wsgi.file_wrapper <built-in function uwsgi_sendfile>
|
246
|
wsgi.input <uwsgi._Input object at 0x7fda7b787f48>
|
247
|
wsgi.multiprocess True
|
248
|
wsgi.multithread False
|
249
|
wsgi.run_once False
|
250
|
wsgi.url_scheme 'https'
|
251
|
wsgi.version (1, 0)
|