· 9 years ago · Sep 03, 2016, 11:24 AM
1SSONotAvailable at /course-session/create/itmo/new/
2Invalid SSO http response: 500
3<!DOCTYPE html>
4<html lang="en">
5<head>
6 <meta http-equiv="content-type" content="text/html; charset=utf-8">
7 <meta name="robots" content="NONE,NOARCHIVE">
8 <title>TypeError at /api-edx/course/</title>
9 <style type="text/css">
10 html * { padding:0; margin:0; }
11 body * { padding:10px 20px; }
12 body * * { padding:0; }
13 body { font:small sans-serif; }
14 body>div { border-bottom:1px solid #ddd; }
15 h1 { font-weight:normal; }
16 h2 { margin-bottom:.8em; }
17 h2 span { font-size:80%; color:#666; font-weight:normal; }
18 h3 { margin:1em 0 .5em 0; }
19 h4 { margin:0 0 .5em 0; font-weight: normal; }
20 code, pre { font-size: 100%; white-space: pre-wrap; }
21 table { border:1px solid #ccc; border-collapse: collapse; width:100%; background:white; }
22 tbody td, tbody th { vertical-align:top; padding:2px 3px; }
23 thead th { padding:1px 6px 1px 3px; background:#fefefe; text-align:left; font-weight:normal; font-size:11px; border:1px solid #ddd; }
24 tbody th { width:12em; text-align:right; color:#666; padding-right:.5em; }
25 table.vars { margin:5px 0 2px 40px; }
26 table.vars td, table.req td { font-family:monospace; }
27 table td.code { width:100%; }
28 table td.code pre { overflow:hidden; }
29 table.source th { color:#666; }
30 table.source td { font-family:monospace; white-space:pre; border-bottom:1px solid #eee; }
31 ul.traceback { list-style-type:none; color: #222; }
32 ul.traceback li.frame { padding-bottom:1em; color:#666; }
33 ul.traceback li.user { background-color:#e0e0e0; color:#000 }
34 div.context { padding:10px 0; overflow:hidden; }
35 div.context ol { padding-left:30px; margin:0 10px; list-style-position: inside; }
36 div.context ol li { font-family:monospace; white-space:pre; color:#777; cursor:pointer; }
37 div.context ol li pre { display:inline; }
38 div.context ol.context-line li { color:#505050; background-color:#dfdfdf; }
39 div.context ol.context-line li span { position:absolute; right:32px; }
40 .user div.context ol.context-line li { background-color:#bbb; color:#000; }
41 .user div.context ol li { color:#666; }
42 div.commands { margin-left: 40px; }
43 div.commands a { color:#555; text-decoration:none; }
44 .user div.commands a { color: black; }
45 #summary { background: #ffc; }
46 #summary h2 { font-weight: normal; color: #666; }
47 #explanation { background:#eee; }
48 #template, #template-not-exist { background:#f6f6f6; }
49 #template-not-exist ul { margin: 0 0 0 20px; }
50 #unicode-hint { background:#eee; }
51 #traceback { background:#eee; }
52 #requestinfo { background:#f6f6f6; padding-left:120px; }
53 #summary table { border:none; background:transparent; }
54 #requestinfo h2, #requestinfo h3 { position:relative; margin-left:-100px; }
55 #requestinfo h3 { margin-bottom:-1em; }
56 .error { background: #ffc; }
57 .specific { color:#cc3300; font-weight:bold; }
58 h2 span.commands { font-size:.7em;}
59 span.commands a:link {color:#5E5694;}
60 pre.exception_value { font-family: sans-serif; color: #666; font-size: 1.5em; margin: 10px 0 10px 0; }
61 </style>
62
63 <script type="text/javascript">
64 //<!--
65 function getElementsByClassName(oElm, strTagName, strClassName){
66 // Written by Jonathan Snook, http://www.snook.ca/jon; Add-ons by Robert Nyman, http://www.robertnyman.com
67 var arrElements = (strTagName == "*" && document.all)? document.all :
68 oElm.getElementsByTagName(strTagName);
69 var arrReturnElements = new Array();
70 strClassName = strClassName.replace(/\-/g, "\-");
71 var oRegExp = new RegExp("(^|\s)" + strClassName + "(\s|$)");
72 var oElement;
73 for(var i=0; i<arrElements.length; i++){
74 oElement = arrElements[i];
75 if(oRegExp.test(oElement.className)){
76 arrReturnElements.push(oElement);
77 }
78 }
79 return (arrReturnElements)
80 }
81 function hideAll(elems) {
82 for (var e = 0; e < elems.length; e++) {
83 elems[e].style.display = 'none';
84 }
85 }
86 window.onload = function() {
87 hideAll(getElementsByClassName(document, 'table', 'vars'));
88 hideAll(getElementsByClassName(document, 'ol', 'pre-context'));
89 hideAll(getElementsByClassName(document, 'ol', 'post-context'));
90 hideAll(getElementsByClassName(document, 'div', 'pastebin'));
91 }
92 function toggle() {
93 for (var i = 0; i < arguments.length; i++) {
94 var e = document.getElementById(arguments[i]);
95 if (e) {
96 e.style.display = e.style.display == 'none' ? 'block': 'none';
97 }
98 }
99 return false;
100 }
101 function varToggle(link, id) {
102 toggle('v' + id);
103 var s = link.getElementsByTagName('span')[0];
104 var uarr = String.fromCharCode(0x25b6);
105 var darr = String.fromCharCode(0x25bc);
106 s.innerHTML = s.innerHTML == uarr ? darr : uarr;
107 return false;
108 }
109 function switchPastebinFriendly(link) {
110 s1 = "Switch to copy-and-paste view";
111 s2 = "Switch back to interactive view";
112 link.innerHTML = link.innerHTML == s1 ? s2: s1;
113 toggle('browserTraceback', 'pastebinTraceback');
114 return false;
115 }
116 //-->
117 </script>
118
119</head>
120<body>
121<div id="summary">
122 <h1>TypeError at /api-edx/course/</h1>
123 <pre class="exception_value">'org' is an invalid keyword argument for this function</pre>
124 <table class="meta">
125
126 <tr>
127 <th>Request Method:</th>
128 <td>POST</td>
129 </tr>
130 <tr>
131 <th>Request URL:</th>
132 <td>https://sso-dev.icc.spbstu.ru/api-edx/course/</td>
133 </tr>
134
135 <tr>
136 <th>Django Version:</th>
137 <td>1.7.10</td>
138 </tr>
139
140 <tr>
141 <th>Exception Type:</th>
142 <td>TypeError</td>
143 </tr>
144
145
146 <tr>
147 <th>Exception Value:</th>
148 <td><pre>'org' is an invalid keyword argument for this function</pre></td>
149 </tr>
150
151
152 <tr>
153 <th>Exception Location:</th>
154 <td>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/base.py in __init__, line 452</td>
155 </tr>
156
157 <tr>
158 <th>Python Executable:</th>
159 <td>/edx/app/sso/npoed-sso-edx/.env/bin/python</td>
160 </tr>
161 <tr>
162 <th>Python Version:</th>
163 <td>2.7.10</td>
164 </tr>
165 <tr>
166 <th>Python Path:</th>
167 <td><pre>['/edx/app/sso/npoed-sso-edx',
168 '/edx/app/sso/npoed-sso-edx',
169 '/edx/app/sso/npoed-sso-edx/.env/bin',
170 '/edx/app/sso/npoed-sso-edx/.env/src/django-oauth2-provider',
171 '/edx/app/sso/npoed-sso-edx/.env/src/edx-oauth2-provider',
172 '/edx/app/sso/npoed-sso-edx/.env/lib/python2.7',
173 '/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/plat-linux2',
174 '/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/lib-tk',
175 '/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/lib-old',
176 '/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/lib-dynload',
177 '/usr/lib/python2.7',
178 '/usr/lib/python2.7/plat-linux2',
179 '/usr/lib/python2.7/lib-tk',
180 '/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages',
181 '/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/site-packages']</pre></td>
182 </tr>
183 <tr>
184 <th>Server time:</th>
185 <td>Сбт, 3 Сен 2016 11:22:51 +0000</td>
186 </tr>
187 </table>
188</div>
189
190
191
192
193<div id="traceback">
194 <h2>Traceback <span class="commands"><a href="#" onclick="return switchPastebinFriendly(this);">Switch to copy-and-paste view</a></span></h2>
195
196 <div id="browserTraceback">
197 <ul class="traceback">
198
199 <li class="frame django">
200 <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/core/handlers/base.py</code> in <code>get_response</code>
201
202
203 <div class="context" id="c139641805897024">
204
205 <ol start="104" class="pre-context" id="pre139641805897024"><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> response = middleware_method(request, callback, callback_args, callback_kwargs)</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> if response:</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> break</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre></pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> if response is None:</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> wrapped_callback = self.make_view_atomic(callback)</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> try:</pre></li></ol>
206
207 <ol start="111" class="context-line"><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> response = wrapped_callback(request, *callback_args, **callback_kwargs)</pre> <span>...</span></li></ol>
208
209 <ol start='112' class="post-context" id="post139641805897024"><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> except Exception as e:</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> # If the view raised an exception, run it through exception</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> # middleware, and if the exception middleware returns a</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> # response, use that. Otherwise, reraise the exception.</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> for middleware_method in self._exception_middleware:</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> response = middleware_method(request, e)</pre></li></ol>
210
211 </div>
212
213
214
215 <div class="commands">
216
217 <a href="#" onclick="return varToggle(this, '139641805897024')"><span>▶</span> Local vars</a>
218
219 </div>
220 <table class="vars" id="v139641805897024">
221 <thead>
222 <tr>
223 <th>Variable</th>
224 <th>Value</th>
225 </tr>
226 </thead>
227 <tbody>
228
229 <tr>
230 <td>e</td>
231 <td class="code"><pre>TypeError(u"'org' is an invalid keyword argument for this function",)</pre></td>
232 </tr>
233
234 <tr>
235 <td>callback_args</td>
236 <td class="code"><pre>()</pre></td>
237 </tr>
238
239 <tr>
240 <td>resolver_match</td>
241 <td class="code"><pre>ResolverMatch(func=<function course at 0x7f00e4435230>, args=(), kwargs={}, url_name='course', app_name='None', namespace='api-edx')</pre></td>
242 </tr>
243
244 <tr>
245 <td>middleware_method</td>
246 <td class="code"><pre><bound method SocialAuthExceptionMiddleware.process_exception of <npoed_sso_edx.middleware.SocialAuthExceptionMiddleware object at 0x7f00e4454a90>></pre></td>
247 </tr>
248
249 <tr>
250 <td>self</td>
251 <td class="code"><pre><django.core.handlers.wsgi.WSGIHandler object at 0x7f00e7a94210></pre></td>
252 </tr>
253
254 <tr>
255 <td>request</td>
256 <td class="code"><pre>"<WSGIRequest\npath:/api-edx/course/,\nGET:<QueryDict: {}>,\nPOST:<QueryDict: {}>,\nCOOKIES:{},\nMETA:{'CONTENT_LENGTH': '97',\n 'CONTENT_TYPE': 'application/json',\n u'CSRF_COOKIE': u'2WKt8mScvTLrPyzTkKuhOXv227CwBgxR',\n 'HTTP_ACCEPT': '*/*',\n 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',\n 'HTTP_CONNECTION': 'close',\n 'HTTP_HOST': 'sso-dev.icc.spbstu.ru',\n 'HTTP_USER_AGENT': 'python-requests/2.11.0',\n 'HTTP_X_FORWARDED_FOR': '127.0.0.1',\n 'HTTP_X_FORWARDED_PORT': '443',\n 'HTTP_X_FORWARDED_PROTO': 'https,https',\n 'HTTP_X_SSO_API_KEY': '12345',\n 'PATH_INFO': u'/api-edx/course/',\n 'QUERY_STRING': '',\n 'RAW_URI': '/api-edx/course/',\n 'REMOTE_ADDR': '127.0.0.1',\n 'REMOTE_PORT': '39935',\n 'REQUEST_METHOD': 'POST',\n 'SCRIPT_NAME': u'',\n 'SERVER_NAME': '127.0.0.1',\n 'SERVER_PORT': '18880',\n 'SERVER_PROTOCOL': 'HTTP/1.0',\n 'SERVER_SOFTWARE': 'gunicorn/19.3.0',\n 'gunicorn.socket': <socket._socketobject object at 0x7f00e43174b0>,\n 'wsgi.errors': <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f00e42fa8d0>,\n 'wsgi.file_wrapper': <class 'gunicorn.http.wsgi.FileWrapper'>,\n 'wsgi.input': <gunicorn.http.body.Body object at 0x7f00e42fa850>,\n 'wsgi.multiprocess': False,\n 'wsgi.multithread': True,\n 'wsgi.run_once': False,\n 'wsgi.url_scheme': 'https',\n 'wsgi.version': (1, 0)}>"</pre></td>
257 </tr>
258
259 <tr>
260 <td>callback</td>
261 <td class="code"><pre><function course at 0x7f00e4435230></pre></td>
262 </tr>
263
264 <tr>
265 <td>wrapped_callback</td>
266 <td class="code"><pre><function course at 0x7f00e4435230></pre></td>
267 </tr>
268
269 <tr>
270 <td>resolver</td>
271 <td class="code"><pre><RegexURLResolver 'npoed_sso_edx.urls' (None:None) ^/></pre></td>
272 </tr>
273
274 <tr>
275 <td>callback_kwargs</td>
276 <td class="code"><pre>{}</pre></td>
277 </tr>
278
279 <tr>
280 <td>response</td>
281 <td class="code"><pre>None</pre></td>
282 </tr>
283
284 <tr>
285 <td>urlconf</td>
286 <td class="code"><pre>'npoed_sso_edx.urls'</pre></td>
287 </tr>
288
289 </tbody>
290 </table>
291
292 </li>
293
294 <li class="frame django">
295 <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/views/decorators/csrf.py</code> in <code>wrapped_view</code>
296
297
298 <div class="context" id="c139641805895800">
299
300 <ol start="50" class="pre-context" id="pre139641805895800"><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> """</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> Marks a view function as being exempt from the CSRF view protection.</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> """</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> # We could just do view_func.csrf_exempt = True, but decorators</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> # are nicer if they don't have side-effects, so we return a new</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> # function.</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> def wrapped_view(*args, **kwargs):</pre></li></ol>
301
302 <ol start="57" class="context-line"><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> return view_func(*args, **kwargs)</pre> <span>...</span></li></ol>
303
304 <ol start='58' class="post-context" id="post139641805895800"><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> wrapped_view.csrf_exempt = True</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> return wraps(view_func, assigned=available_attrs(view_func))(wrapped_view)</pre></li></ol>
305
306 </div>
307
308
309
310 <div class="commands">
311
312 <a href="#" onclick="return varToggle(this, '139641805895800')"><span>▶</span> Local vars</a>
313
314 </div>
315 <table class="vars" id="v139641805895800">
316 <thead>
317 <tr>
318 <th>Variable</th>
319 <th>Value</th>
320 </tr>
321 </thead>
322 <tbody>
323
324 <tr>
325 <td>args</td>
326 <td class="code"><pre>(<WSGIRequest
327path:/api-edx/course/,
328GET:<QueryDict: {}>,
329POST:<QueryDict: {}>,
330COOKIES:{},
331META:{'CONTENT_LENGTH': '97',
332 'CONTENT_TYPE': 'application/json',
333 u'CSRF_COOKIE': u'2WKt8mScvTLrPyzTkKuhOXv227CwBgxR',
334 'HTTP_ACCEPT': '*/*',
335 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
336 'HTTP_CONNECTION': 'close',
337 'HTTP_HOST': 'sso-dev.icc.spbstu.ru',
338 'HTTP_USER_AGENT': 'python-requests/2.11.0',
339 'HTTP_X_FORWARDED_FOR': '127.0.0.1',
340 'HTTP_X_FORWARDED_PORT': '443',
341 'HTTP_X_FORWARDED_PROTO': 'https,https',
342 'HTTP_X_SSO_API_KEY': '12345',
343 'PATH_INFO': u'/api-edx/course/',
344 'QUERY_STRING': '',
345 'RAW_URI': '/api-edx/course/',
346 'REMOTE_ADDR': '127.0.0.1',
347 'REMOTE_PORT': '39935',
348 'REQUEST_METHOD': 'POST',
349 'SCRIPT_NAME': u'',
350 'SERVER_NAME': '127.0.0.1',
351 'SERVER_PORT': '18880',
352 'SERVER_PROTOCOL': 'HTTP/1.0',
353 'SERVER_SOFTWARE': 'gunicorn/19.3.0',
354 'gunicorn.socket': <socket._socketobject object at 0x7f00e43174b0>,
355 'wsgi.errors': <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f00e42fa8d0>,
356 'wsgi.file_wrapper': <class 'gunicorn.http.wsgi.FileWrapper'>,
357 'wsgi.input': <gunicorn.http.body.Body object at 0x7f00e42fa850>,
358 'wsgi.multiprocess': False,
359 'wsgi.multithread': True,
360 'wsgi.run_once': False,
361 'wsgi.url_scheme': 'https',
362 'wsgi.version': (1, 0)}>,)</pre></td>
363 </tr>
364
365 <tr>
366 <td>view_func</td>
367 <td class="code"><pre><function course at 0x7f00e44351b8></pre></td>
368 </tr>
369
370 <tr>
371 <td>kwargs</td>
372 <td class="code"><pre>{}</pre></td>
373 </tr>
374
375 </tbody>
376 </table>
377
378 </li>
379
380 <li class="frame django">
381 <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/views/generic/base.py</code> in <code>view</code>
382
383
384 <div class="context" id="c139641805896592">
385
386 <ol start="62" class="pre-context" id="pre139641805896592"><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> def view(request, *args, **kwargs):</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> self = cls(**initkwargs)</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> if hasattr(self, 'get') and not hasattr(self, 'head'):</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> self.head = self.get</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> self.request = request</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> self.args = args</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> self.kwargs = kwargs</pre></li></ol>
387
388 <ol start="69" class="context-line"><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> return self.dispatch(request, *args, **kwargs)</pre> <span>...</span></li></ol>
389
390 <ol start='70' class="post-context" id="post139641805896592"><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre></pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> # take name and docstring from class</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> update_wrapper(view, cls, updated=())</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre></pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> # and possible attributes set by decorators</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> # like csrf_exempt from dispatch</pre></li></ol>
391
392 </div>
393
394
395
396 <div class="commands">
397
398 <a href="#" onclick="return varToggle(this, '139641805896592')"><span>▶</span> Local vars</a>
399
400 </div>
401 <table class="vars" id="v139641805896592">
402 <thead>
403 <tr>
404 <th>Variable</th>
405 <th>Value</th>
406 </tr>
407 </thead>
408 <tbody>
409
410 <tr>
411 <td>initkwargs</td>
412 <td class="code"><pre>{}</pre></td>
413 </tr>
414
415 <tr>
416 <td>self</td>
417 <td class="code"><pre><rest_framework.decorators.course object at 0x7f00e43af390></pre></td>
418 </tr>
419
420 <tr>
421 <td>args</td>
422 <td class="code"><pre>()</pre></td>
423 </tr>
424
425 <tr>
426 <td>request</td>
427 <td class="code"><pre>"<WSGIRequest\npath:/api-edx/course/,\nGET:<QueryDict: {}>,\nPOST:<QueryDict: {}>,\nCOOKIES:{},\nMETA:{'CONTENT_LENGTH': '97',\n 'CONTENT_TYPE': 'application/json',\n u'CSRF_COOKIE': u'2WKt8mScvTLrPyzTkKuhOXv227CwBgxR',\n 'HTTP_ACCEPT': '*/*',\n 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',\n 'HTTP_CONNECTION': 'close',\n 'HTTP_HOST': 'sso-dev.icc.spbstu.ru',\n 'HTTP_USER_AGENT': 'python-requests/2.11.0',\n 'HTTP_X_FORWARDED_FOR': '127.0.0.1',\n 'HTTP_X_FORWARDED_PORT': '443',\n 'HTTP_X_FORWARDED_PROTO': 'https,https',\n 'HTTP_X_SSO_API_KEY': '12345',\n 'PATH_INFO': u'/api-edx/course/',\n 'QUERY_STRING': '',\n 'RAW_URI': '/api-edx/course/',\n 'REMOTE_ADDR': '127.0.0.1',\n 'REMOTE_PORT': '39935',\n 'REQUEST_METHOD': 'POST',\n 'SCRIPT_NAME': u'',\n 'SERVER_NAME': '127.0.0.1',\n 'SERVER_PORT': '18880',\n 'SERVER_PROTOCOL': 'HTTP/1.0',\n 'SERVER_SOFTWARE': 'gunicorn/19.3.0',\n 'gunicorn.socket': <socket._socketobject object at 0x7f00e43174b0>,\n 'wsgi.errors': <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f00e42fa8d0>,\n 'wsgi.file_wrapper': <class 'gunicorn.http.wsgi.FileWrapper'>,\n 'wsgi.input': <gunicorn.http.body.Body object at 0x7f00e42fa850>,\n 'wsgi.multiprocess': False,\n 'wsgi.multithread': True,\n 'wsgi.run_once': False,\n 'wsgi.url_scheme': 'https',\n 'wsgi.version': (1, 0)}>"</pre></td>
428 </tr>
429
430 <tr>
431 <td>kwargs</td>
432 <td class="code"><pre>{}</pre></td>
433 </tr>
434
435 <tr>
436 <td>cls</td>
437 <td class="code"><pre><class 'rest_framework.decorators.course'></pre></td>
438 </tr>
439
440 </tbody>
441 </table>
442
443 </li>
444
445 <li class="frame user">
446 <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/views.py</code> in <code>dispatch</code>
447
448
449 <div class="context" id="c139641805895152">
450
451 <ol start="449" class="pre-context" id="pre139641805895152"><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> self.http_method_not_allowed)</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> else:</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> handler = self.http_method_not_allowed</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre></pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> response = handler(request, *args, **kwargs)</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre></pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> except Exception as exc:</pre></li></ol>
452
453 <ol start="456" class="context-line"><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> response = self.handle_exception(exc)</pre> <span>...</span></li></ol>
454
455 <ol start='457' class="post-context" id="post139641805895152"><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre></pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> self.response = self.finalize_response(request, response, *args, **kwargs)</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> return self.response</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre></pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> def options(self, request, *args, **kwargs):</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> """</pre></li></ol>
456
457 </div>
458
459
460
461 <div class="commands">
462
463 <a href="#" onclick="return varToggle(this, '139641805895152')"><span>▶</span> Local vars</a>
464
465 </div>
466 <table class="vars" id="v139641805895152">
467 <thead>
468 <tr>
469 <th>Variable</th>
470 <th>Value</th>
471 </tr>
472 </thead>
473 <tbody>
474
475 <tr>
476 <td>exc</td>
477 <td class="code"><pre>TypeError(u"'org' is an invalid keyword argument for this function",)</pre></td>
478 </tr>
479
480 <tr>
481 <td>self</td>
482 <td class="code"><pre><rest_framework.decorators.course object at 0x7f00e43af390></pre></td>
483 </tr>
484
485 <tr>
486 <td>args</td>
487 <td class="code"><pre>()</pre></td>
488 </tr>
489
490 <tr>
491 <td>request</td>
492 <td class="code"><pre><rest_framework.request.Request object at 0x7f00e439a450></pre></td>
493 </tr>
494
495 <tr>
496 <td>handler</td>
497 <td class="code"><pre><bound method course.handler of <rest_framework.decorators.course object at 0x7f00e43af390>></pre></td>
498 </tr>
499
500 <tr>
501 <td>kwargs</td>
502 <td class="code"><pre>{}</pre></td>
503 </tr>
504
505 </tbody>
506 </table>
507
508 </li>
509
510 <li class="frame user">
511 <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/views.py</code> in <code>dispatch</code>
512
513
514 <div class="context" id="c139641805896736">
515
516 <ol start="446" class="pre-context" id="pre139641805896736"><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> # Get the appropriate handler method</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> if request.method.lower() in self.http_method_names:</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> handler = getattr(self, request.method.lower(),</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> self.http_method_not_allowed)</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> else:</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> handler = self.http_method_not_allowed</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre></pre></li></ol>
517
518 <ol start="453" class="context-line"><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> response = handler(request, *args, **kwargs)</pre> <span>...</span></li></ol>
519
520 <ol start='454' class="post-context" id="post139641805896736"><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre></pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> except Exception as exc:</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> response = self.handle_exception(exc)</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre></pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> self.response = self.finalize_response(request, response, *args, **kwargs)</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> return self.response</pre></li></ol>
521
522 </div>
523
524
525
526 <div class="commands">
527
528 <a href="#" onclick="return varToggle(this, '139641805896736')"><span>▶</span> Local vars</a>
529
530 </div>
531 <table class="vars" id="v139641805896736">
532 <thead>
533 <tr>
534 <th>Variable</th>
535 <th>Value</th>
536 </tr>
537 </thead>
538 <tbody>
539
540 <tr>
541 <td>exc</td>
542 <td class="code"><pre>TypeError(u"'org' is an invalid keyword argument for this function",)</pre></td>
543 </tr>
544
545 <tr>
546 <td>self</td>
547 <td class="code"><pre><rest_framework.decorators.course object at 0x7f00e43af390></pre></td>
548 </tr>
549
550 <tr>
551 <td>args</td>
552 <td class="code"><pre>()</pre></td>
553 </tr>
554
555 <tr>
556 <td>request</td>
557 <td class="code"><pre><rest_framework.request.Request object at 0x7f00e439a450></pre></td>
558 </tr>
559
560 <tr>
561 <td>handler</td>
562 <td class="code"><pre><bound method course.handler of <rest_framework.decorators.course object at 0x7f00e43af390>></pre></td>
563 </tr>
564
565 <tr>
566 <td>kwargs</td>
567 <td class="code"><pre>{}</pre></td>
568 </tr>
569
570 </tbody>
571 </table>
572
573 </li>
574
575 <li class="frame user">
576 <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/decorators.py</code> in <code>handler</code>
577
578
579 <div class="context" id="c139641805852040">
580
581 <ol start="43" class="pre-context" id="pre139641805852040"><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> assert isinstance(http_method_names, (list, tuple)), \</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> '@api_view expected a list of strings, received %s' % type(http_method_names).__name__</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre></pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> allowed_methods = set(http_method_names) | set(('options',))</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> WrappedAPIView.http_method_names = [method.lower() for method in allowed_methods]</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre></pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> def handler(self, *args, **kwargs):</pre></li></ol>
582
583 <ol start="50" class="context-line"><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> return func(*args, **kwargs)</pre> <span>...</span></li></ol>
584
585 <ol start='51' class="post-context" id="post139641805852040"><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre></pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> for method in http_method_names:</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> setattr(WrappedAPIView, method.lower(), handler)</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre></pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> WrappedAPIView.__name__ = func.__name__</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre></pre></li></ol>
586
587 </div>
588
589
590
591 <div class="commands">
592
593 <a href="#" onclick="return varToggle(this, '139641805852040')"><span>▶</span> Local vars</a>
594
595 </div>
596 <table class="vars" id="v139641805852040">
597 <thead>
598 <tr>
599 <th>Variable</th>
600 <th>Value</th>
601 </tr>
602 </thead>
603 <tbody>
604
605 <tr>
606 <td>self</td>
607 <td class="code"><pre><rest_framework.decorators.course object at 0x7f00e43af390></pre></td>
608 </tr>
609
610 <tr>
611 <td>args</td>
612 <td class="code"><pre>(<rest_framework.request.Request object at 0x7f00e439a450>,)</pre></td>
613 </tr>
614
615 <tr>
616 <td>func</td>
617 <td class="code"><pre><function course at 0x7f00e4435140></pre></td>
618 </tr>
619
620 <tr>
621 <td>kwargs</td>
622 <td class="code"><pre>{}</pre></td>
623 </tr>
624
625 </tbody>
626 </table>
627
628 </li>
629
630 <li class="frame user">
631 <code>/edx/app/sso/npoed-sso-edx/apps/openedx_objects/views.py</code> in <code>course</code>
632
633
634 <div class="context" id="c139641805906144">
635
636 <ol start="45" class="pre-context" id="pre139641805906144"><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> data['org'] = org_obj</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre></pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> if course_name is not None:</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> course_obj, course_created = EdxCourse.objects.update_or_create(name=course_name, org=org_obj)</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre></pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> if run_name is not None:</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> run_obj, run_created = EdxCourseRun.objects.update_or_create(name=run_name, course=course_obj,</pre></li></ol>
637
638 <ol start="52" class="context-line"><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> defaults=data)</pre> <span>...</span></li></ol>
639
640 <ol start='53' class="post-context" id="post139641805906144"><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> else:</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> run_obj, run_created = None, False</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre></pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> if course_created:</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> if not org_created:</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> api_course_create.send(course, obj=course_obj, request=request)</pre></li></ol>
641
642 </div>
643
644
645
646 <div class="commands">
647
648 <a href="#" onclick="return varToggle(this, '139641805906144')"><span>▶</span> Local vars</a>
649
650 </div>
651 <table class="vars" id="v139641805906144">
652 <thead>
653 <tr>
654 <th>Variable</th>
655 <th>Value</th>
656 </tr>
657 </thead>
658 <tbody>
659
660 <tr>
661 <td>course_created</td>
662 <td class="code"><pre>False</pre></td>
663 </tr>
664
665 <tr>
666 <td>org_name</td>
667 <td class="code"><pre>u'itmo'</pre></td>
668 </tr>
669
670 <tr>
671 <td>course_obj</td>
672 <td class="code"><pre><EdxCourse: new></pre></td>
673 </tr>
674
675 <tr>
676 <td>course_name</td>
677 <td class="code"><pre>u'new'</pre></td>
678 </tr>
679
680 <tr>
681 <td>org_created</td>
682 <td class="code"><pre>False</pre></td>
683 </tr>
684
685 <tr>
686 <td>request</td>
687 <td class="code"><pre><rest_framework.request.Request object at 0x7f00e439a450></pre></td>
688 </tr>
689
690 <tr>
691 <td>org_obj</td>
692 <td class="code"><pre><EdxOrg: itmo></pre></td>
693 </tr>
694
695 <tr>
696 <td>run_name</td>
697 <td class="code"><pre>u'session_2'</pre></td>
698 </tr>
699
700 <tr>
701 <td>data</td>
702 <td class="code"><pre>{'courserun_id': u'course-v1:itmo+new+session_2', 'org': <EdxOrg: itmo>}</pre></td>
703 </tr>
704
705 </tbody>
706 </table>
707
708 </li>
709
710 <li class="frame django">
711 <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/manager.py</code> in <code>manager_method</code>
712
713
714 <div class="context" id="c139641806107208">
715
716 <ol start="85" class="pre-context" id="pre139641806107208"><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> def check(self, **kwargs):</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> return []</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre></pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> @classmethod</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> def _get_queryset_methods(cls, queryset_class):</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> def create_method(name, method):</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> def manager_method(self, *args, **kwargs):</pre></li></ol>
717
718 <ol start="92" class="context-line"><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> return getattr(self.get_queryset(), name)(*args, **kwargs)</pre> <span>...</span></li></ol>
719
720 <ol start='93' class="post-context" id="post139641806107208"><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> manager_method.__name__ = method.__name__</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> manager_method.__doc__ = method.__doc__</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> return manager_method</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre></pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> new_methods = {}</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> # Refs http://bugs.python.org/issue1785.</pre></li></ol>
721
722 </div>
723
724
725
726 <div class="commands">
727
728 <a href="#" onclick="return varToggle(this, '139641806107208')"><span>▶</span> Local vars</a>
729
730 </div>
731 <table class="vars" id="v139641806107208">
732 <thead>
733 <tr>
734 <th>Variable</th>
735 <th>Value</th>
736 </tr>
737 </thead>
738 <tbody>
739
740 <tr>
741 <td>self</td>
742 <td class="code"><pre><django.db.models.manager.Manager object at 0x7f00e5380550></pre></td>
743 </tr>
744
745 <tr>
746 <td>args</td>
747 <td class="code"><pre>()</pre></td>
748 </tr>
749
750 <tr>
751 <td>name</td>
752 <td class="code"><pre>'update_or_create'</pre></td>
753 </tr>
754
755 <tr>
756 <td>kwargs</td>
757 <td class="code"><pre>{'course': <EdxCourse: new>,
758 'defaults': {'courserun_id': u'course-v1:itmo+new+session_2',
759 'org': <EdxOrg: itmo>},
760 'name': u'session_2'}</pre></td>
761 </tr>
762
763 </tbody>
764 </table>
765
766 </li>
767
768 <li class="frame django">
769 <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/query.py</code> in <code>update_or_create</code>
770
771
772 <div class="context" id="c139641805865760">
773
774 <ol start="432" class="pre-context" id="pre139641805865760"><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> """</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> defaults = defaults or {}</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> lookup, params = self._extract_model_params(defaults, **kwargs)</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> self._for_write = True</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> try:</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> obj = self.get(**lookup)</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> except self.model.DoesNotExist:</pre></li></ol>
775
776 <ol start="439" class="context-line"><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> obj, created = self._create_object_from_params(lookup, params)</pre> <span>...</span></li></ol>
777
778 <ol start='440' class="post-context" id="post139641805865760"><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> if created:</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> return obj, created</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> for k, v in six.iteritems(defaults):</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> setattr(obj, k, v)</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre></pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> with transaction.atomic(using=self.db):</pre></li></ol>
779
780 </div>
781
782
783
784 <div class="commands">
785
786 <a href="#" onclick="return varToggle(this, '139641805865760')"><span>▶</span> Local vars</a>
787
788 </div>
789 <table class="vars" id="v139641805865760">
790 <thead>
791 <tr>
792 <th>Variable</th>
793 <th>Value</th>
794 </tr>
795 </thead>
796 <tbody>
797
798 <tr>
799 <td>params</td>
800 <td class="code"><pre>{'course': <EdxCourse: new>,
801 'courserun_id': u'course-v1:itmo+new+session_2',
802 'name': u'session_2',
803 'org': <EdxOrg: itmo>}</pre></td>
804 </tr>
805
806 <tr>
807 <td>self</td>
808 <td class="code"><pre>[<EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, '...(remaining elements truncated)...']</pre></td>
809 </tr>
810
811 <tr>
812 <td>lookup</td>
813 <td class="code"><pre>{'course': <EdxCourse: new>, 'name': u'session_2'}</pre></td>
814 </tr>
815
816 <tr>
817 <td>defaults</td>
818 <td class="code"><pre>{'courserun_id': u'course-v1:itmo+new+session_2', 'org': <EdxOrg: itmo>}</pre></td>
819 </tr>
820
821 <tr>
822 <td>kwargs</td>
823 <td class="code"><pre>{'course': <EdxCourse: new>, 'name': u'session_2'}</pre></td>
824 </tr>
825
826 </tbody>
827 </table>
828
829 </li>
830
831 <li class="frame django">
832 <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/query.py</code> in <code>_create_object_from_params</code>
833
834
835 <div class="context" id="c139641805867344">
836
837 <ol start="447" class="pre-context" id="pre139641805867344"><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> return obj, False</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre></pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> def _create_object_from_params(self, lookup, params):</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> """</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> Tries to create an object using passed params.</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> Used by get_or_create and update_or_create</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> """</pre></li></ol>
838
839 <ol start="454" class="context-line"><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> obj = self.model(**params)</pre> <span>...</span></li></ol>
840
841 <ol start='455' class="post-context" id="post139641805867344"><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> try:</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> with transaction.atomic(using=self.db):</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> obj.save(force_insert=True, using=self.db)</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> return obj, True</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> except IntegrityError:</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> exc_info = sys.exc_info()</pre></li></ol>
842
843 </div>
844
845
846
847 <div class="commands">
848
849 <a href="#" onclick="return varToggle(this, '139641805867344')"><span>▶</span> Local vars</a>
850
851 </div>
852 <table class="vars" id="v139641805867344">
853 <thead>
854 <tr>
855 <th>Variable</th>
856 <th>Value</th>
857 </tr>
858 </thead>
859 <tbody>
860
861 <tr>
862 <td>params</td>
863 <td class="code"><pre>{'course': <EdxCourse: new>,
864 'courserun_id': u'course-v1:itmo+new+session_2',
865 'name': u'session_2',
866 'org': <EdxOrg: itmo>}</pre></td>
867 </tr>
868
869 <tr>
870 <td>self</td>
871 <td class="code"><pre>[<EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, '...(remaining elements truncated)...']</pre></td>
872 </tr>
873
874 <tr>
875 <td>lookup</td>
876 <td class="code"><pre>{'course': <EdxCourse: new>, 'name': u'session_2'}</pre></td>
877 </tr>
878
879 </tbody>
880 </table>
881
882 </li>
883
884 <li class="frame django">
885 <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/base.py</code> in <code>__init__</code>
886
887
888 <div class="context" id="c139641805907584">
889
890 <ol start="445" class="pre-context" id="pre139641805907584"><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> for prop in list(kwargs):</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> try:</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> if isinstance(getattr(self.__class__, prop), property):</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> setattr(self, prop, kwargs.pop(prop))</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> except AttributeError:</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> pass</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> if kwargs:</pre></li></ol>
891
892 <ol start="452" class="context-line"><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> raise TypeError("'%s' is an invalid keyword argument for this function" % list(kwargs)[0])</pre> <span>...</span></li></ol>
893
894 <ol start='453' class="post-context" id="post139641805907584"><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> super(Model, self).__init__()</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> signals.post_init.send(sender=self.__class__, instance=self)</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre></pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> def __repr__(self):</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> try:</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> u = six.text_type(self)</pre></li></ol>
895
896 </div>
897
898
899
900 <div class="commands">
901
902 <a href="#" onclick="return varToggle(this, '139641805907584')"><span>▶</span> Local vars</a>
903
904 </div>
905 <table class="vars" id="v139641805907584">
906 <thead>
907 <tr>
908 <th>Variable</th>
909 <th>Value</th>
910 </tr>
911 </thead>
912 <tbody>
913
914 <tr>
915 <td>rel_obj</td>
916 <td class="code"><pre><EdxCourse: new></pre></td>
917 </tr>
918
919 <tr>
920 <td>fields_iter</td>
921 <td class="code"><pre><listiterator object at 0x7f00e4354650></pre></td>
922 </tr>
923
924 <tr>
925 <td>val</td>
926 <td class="code"><pre>None</pre></td>
927 </tr>
928
929 <tr>
930 <td>args_len</td>
931 <td class="code"><pre>0</pre></td>
932 </tr>
933
934 <tr>
935 <td>self</td>
936 <td class="code"><pre><EdxCourseRun: session_2></pre></td>
937 </tr>
938
939 <tr>
940 <td>args</td>
941 <td class="code"><pre>()</pre></td>
942 </tr>
943
944 <tr>
945 <td>is_related_object</td>
946 <td class="code"><pre>True</pre></td>
947 </tr>
948
949 <tr>
950 <td>field</td>
951 <td class="code"><pre><django.db.models.fields.related.ForeignKey: course></pre></td>
952 </tr>
953
954 <tr>
955 <td>kwargs</td>
956 <td class="code"><pre>{'org': <EdxOrg: itmo>}</pre></td>
957 </tr>
958
959 <tr>
960 <td>prop</td>
961 <td class="code"><pre>'org'</pre></td>
962 </tr>
963
964 </tbody>
965 </table>
966
967 </li>
968
969 </ul>
970 </div>
971
972 <form action="http://dpaste.com/" name="pasteform" id="pasteform" method="post">
973
974 <div id="pastebinTraceback" class="pastebin">
975 <input type="hidden" name="language" value="PythonConsole">
976 <input type="hidden" name="title" value="TypeError at /api-edx/course/">
977 <input type="hidden" name="source" value="Django Dpaste Agent">
978 <input type="hidden" name="poster" value="Django">
979 <textarea name="content" id="traceback_area" cols="140" rows="25">
980Environment:
981
982
983Request Method: POST
984Request URL: https://sso-dev.icc.spbstu.ru/api-edx/course/
985
986Django Version: 1.7.10
987Python Version: 2.7.10
988Installed Applications:
989('django.contrib.admin',
990 'django.contrib.auth',
991 'django.contrib.sites',
992 'registration',
993 'django.contrib.contenttypes',
994 'django.contrib.sessions',
995 'django.contrib.messages',
996 'django.contrib.staticfiles',
997 'rest_framework',
998 'rest_framework.authtoken',
999 'provider',
1000 'provider.oauth2',
1001 'oauth2_provider',
1002 'gunicorn',
1003 'social.apps.django_app.default',
1004 'django_countries',
1005 'apps.core',
1006 'apps.profiler',
1007 'apps.permissions',
1008 'apps.openedx_objects',
1009 'apps.utm_tracker',
1010 'django_jenkins',
1011 'sslserver',
1012 'simple_history',
1013 'storages')
1014Installed Middleware:
1015('django.contrib.sessions.middleware.SessionMiddleware',
1016 'django.middleware.locale.LocaleMiddleware',
1017 'django.middleware.common.CommonMiddleware',
1018 'django.middleware.csrf.CsrfViewMiddleware',
1019 'django.contrib.auth.middleware.AuthenticationMiddleware',
1020 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
1021 'django.contrib.messages.middleware.MessageMiddleware',
1022 'django.middleware.clickjacking.XFrameOptionsMiddleware',
1023 'npoed_sso_edx.middleware.SocialAuthExceptionMiddleware',
1024 'apps.utm_tracker.middleware.UTMTrackingMiddleware')
1025
1026
1027Traceback:
1028File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
1029 111. response = wrapped_callback(request, *callback_args, **callback_kwargs)
1030File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/views/decorators/csrf.py" in wrapped_view
1031 57. return view_func(*args, **kwargs)
1032File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/views/generic/base.py" in view
1033 69. return self.dispatch(request, *args, **kwargs)
1034File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/views.py" in dispatch
1035 456. response = self.handle_exception(exc)
1036File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/views.py" in dispatch
1037 453. response = handler(request, *args, **kwargs)
1038File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/decorators.py" in handler
1039 50. return func(*args, **kwargs)
1040File "/edx/app/sso/npoed-sso-edx/apps/openedx_objects/views.py" in course
1041 52. defaults=data)
1042File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/manager.py" in manager_method
1043 92. return getattr(self.get_queryset(), name)(*args, **kwargs)
1044File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/query.py" in update_or_create
1045 439. obj, created = self._create_object_from_params(lookup, params)
1046File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/query.py" in _create_object_from_params
1047 454. obj = self.model(**params)
1048File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/base.py" in __init__
1049 452. raise TypeError("'%s' is an invalid keyword argument for this function" % list(kwargs)[0])
1050
1051Exception Type: TypeError at /api-edx/course/
1052Exception Value: 'org' is an invalid keyword argument for this function
1053</textarea>
1054 <br><br>
1055 <input type="submit" value="Share this traceback on a public Web site">
1056 </div>
1057</form>
1058</div>
1059
1060
1061
1062<div id="requestinfo">
1063 <h2>Request information</h2>
1064
1065
1066 <h3 id="get-info">GET</h3>
1067
1068 <p>No GET data</p>
1069
1070
1071 <h3 id="post-info">POST</h3>
1072
1073 <p>No POST data</p>
1074
1075 <h3 id="files-info">FILES</h3>
1076
1077 <p>No FILES data</p>
1078
1079
1080
1081 <h3 id="cookie-info">COOKIES</h3>
1082
1083 <p>No cookie data</p>
1084
1085
1086 <h3 id="meta-info">META</h3>
1087 <table class="req">
1088 <thead>
1089 <tr>
1090 <th>Variable</th>
1091 <th>Value</th>
1092 </tr>
1093 </thead>
1094 <tbody>
1095
1096 <tr>
1097 <td>SERVER_SOFTWARE</td>
1098 <td class="code"><pre>'gunicorn/19.3.0'</pre></td>
1099 </tr>
1100
1101 <tr>
1102 <td>SCRIPT_NAME</td>
1103 <td class="code"><pre>u''</pre></td>
1104 </tr>
1105
1106 <tr>
1107 <td>HTTP_X_SSO_API_KEY</td>
1108 <td class="code"><pre>'12345'</pre></td>
1109 </tr>
1110
1111 <tr>
1112 <td>HTTP_X_FORWARDED_PORT</td>
1113 <td class="code"><pre>'443'</pre></td>
1114 </tr>
1115
1116 <tr>
1117 <td>PATH_INFO</td>
1118 <td class="code"><pre>u'/api-edx/course/'</pre></td>
1119 </tr>
1120
1121 <tr>
1122 <td>SERVER_PROTOCOL</td>
1123 <td class="code"><pre>'HTTP/1.0'</pre></td>
1124 </tr>
1125
1126 <tr>
1127 <td>QUERY_STRING</td>
1128 <td class="code"><pre>''</pre></td>
1129 </tr>
1130
1131 <tr>
1132 <td>CONTENT_LENGTH</td>
1133 <td class="code"><pre>'97'</pre></td>
1134 </tr>
1135
1136 <tr>
1137 <td>HTTP_USER_AGENT</td>
1138 <td class="code"><pre>'python-requests/2.11.0'</pre></td>
1139 </tr>
1140
1141 <tr>
1142 <td>HTTP_CONNECTION</td>
1143 <td class="code"><pre>'close'</pre></td>
1144 </tr>
1145
1146 <tr>
1147 <td>REMOTE_PORT</td>
1148 <td class="code"><pre>'39935'</pre></td>
1149 </tr>
1150
1151 <tr>
1152 <td>SERVER_NAME</td>
1153 <td class="code"><pre>'127.0.0.1'</pre></td>
1154 </tr>
1155
1156 <tr>
1157 <td>REMOTE_ADDR</td>
1158 <td class="code"><pre>'127.0.0.1'</pre></td>
1159 </tr>
1160
1161 <tr>
1162 <td>wsgi.url_scheme</td>
1163 <td class="code"><pre>'https'</pre></td>
1164 </tr>
1165
1166 <tr>
1167 <td>SERVER_PORT</td>
1168 <td class="code"><pre>'18880'</pre></td>
1169 </tr>
1170
1171 <tr>
1172 <td>HTTP_X_FORWARDED_PROTO</td>
1173 <td class="code"><pre>'https,https'</pre></td>
1174 </tr>
1175
1176 <tr>
1177 <td>wsgi.input</td>
1178 <td class="code"><pre><gunicorn.http.body.Body object at 0x7f00e42fa850></pre></td>
1179 </tr>
1180
1181 <tr>
1182 <td>HTTP_HOST</td>
1183 <td class="code"><pre>'sso-dev.icc.spbstu.ru'</pre></td>
1184 </tr>
1185
1186 <tr>
1187 <td>wsgi.multithread</td>
1188 <td class="code"><pre>True</pre></td>
1189 </tr>
1190
1191 <tr>
1192 <td>HTTP_ACCEPT</td>
1193 <td class="code"><pre>'*/*'</pre></td>
1194 </tr>
1195
1196 <tr>
1197 <td>wsgi.version</td>
1198 <td class="code"><pre>(1, 0)</pre></td>
1199 </tr>
1200
1201 <tr>
1202 <td>RAW_URI</td>
1203 <td class="code"><pre>'/api-edx/course/'</pre></td>
1204 </tr>
1205
1206 <tr>
1207 <td>wsgi.run_once</td>
1208 <td class="code"><pre>False</pre></td>
1209 </tr>
1210
1211 <tr>
1212 <td>wsgi.errors</td>
1213 <td class="code"><pre><gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f00e42fa8d0></pre></td>
1214 </tr>
1215
1216 <tr>
1217 <td>wsgi.multiprocess</td>
1218 <td class="code"><pre>False</pre></td>
1219 </tr>
1220
1221 <tr>
1222 <td>gunicorn.socket</td>
1223 <td class="code"><pre><socket._socketobject object at 0x7f00e43174b0></pre></td>
1224 </tr>
1225
1226 <tr>
1227 <td>REQUEST_METHOD</td>
1228 <td class="code"><pre>'POST'</pre></td>
1229 </tr>
1230
1231 <tr>
1232 <td>CONTENT_TYPE</td>
1233 <td class="code"><pre>'application/json'</pre></td>
1234 </tr>
1235
1236 <tr>
1237 <td>HTTP_X_FORWARDED_FOR</td>
1238 <td class="code"><pre>'127.0.0.1'</pre></td>
1239 </tr>
1240
1241 <tr>
1242 <td>wsgi.file_wrapper</td>
1243 <td class="code"><pre>''</pre></td>
1244 </tr>
1245
1246 <tr>
1247 <td>CSRF_COOKIE</td>
1248 <td class="code"><pre>u'2WKt8mScvTLrPyzTkKuhOXv227CwBgxR'</pre></td>
1249 </tr>
1250
1251 <tr>
1252 <td>HTTP_ACCEPT_ENCODING</td>
1253 <td class="code"><pre>'gzip, deflate'</pre></td>
1254 </tr>
1255
1256 </tbody>
1257 </table>
1258
1259
1260 <h3 id="settings-info">Settings</h3>
1261 <h4>Using settings module <code>npoed_sso_edx.settings</code></h4>
1262 <table class="req">
1263 <thead>
1264 <tr>
1265 <th>Setting</th>
1266 <th>Value</th>
1267 </tr>
1268 </thead>
1269 <tbody>
1270
1271 <tr>
1272 <td>SOCIAL_AUTH_LOGIN_ERROR_URL</td>
1273 <td class="code"><pre>'/login'</pre></td>
1274 </tr>
1275
1276 <tr>
1277 <td>SOCIAL_ACCOUNT_TWITTER</td>
1278 <td class="code"><pre>'https://twitter.com/openeduRU'</pre></td>
1279 </tr>
1280
1281 <tr>
1282 <td>SOCIAL_AUTH_COMMUNITY_NPOED_SECRET</td>
1283 <td class="code"><pre>u'********************'</pre></td>
1284 </tr>
1285
1286 <tr>
1287 <td>SOCIAL_AUTH_FACEBOOK_SCOPE</td>
1288 <td class="code"><pre>['email']</pre></td>
1289 </tr>
1290
1291 <tr>
1292 <td>USE_L10N</td>
1293 <td class="code"><pre>True</pre></td>
1294 </tr>
1295
1296 <tr>
1297 <td>SOCIAL_AUTH_TWITTER_SECRET</td>
1298 <td class="code"><pre>u'********************'</pre></td>
1299 </tr>
1300
1301 <tr>
1302 <td>CSRF_COOKIE_SECURE</td>
1303 <td class="code"><pre>False</pre></td>
1304 </tr>
1305
1306 <tr>
1307 <td>SOCIAL_AUTH_MAILRU_OAUTH2_SECRET</td>
1308 <td class="code"><pre>u'********************'</pre></td>
1309 </tr>
1310
1311 <tr>
1312 <td>LANGUAGE_CODE</td>
1313 <td class="code"><pre>'ru'</pre></td>
1314 </tr>
1315
1316 <tr>
1317 <td>ROOT_URLCONF</td>
1318 <td class="code"><pre>'npoed_sso_edx.urls'</pre></td>
1319 </tr>
1320
1321 <tr>
1322 <td>MANAGERS</td>
1323 <td class="code"><pre>()</pre></td>
1324 </tr>
1325
1326 <tr>
1327 <td>TEMPLATE_LOADERS</td>
1328 <td class="code"><pre>('django.template.loaders.filesystem.Loader',
1329 'django.template.loaders.app_directories.Loader')</pre></td>
1330 </tr>
1331
1332 <tr>
1333 <td>BASE_DIR</td>
1334 <td class="code"><pre>'/edx/app/sso/npoed-sso-edx'</pre></td>
1335 </tr>
1336
1337 <tr>
1338 <td>TEST_NON_SERIALIZED_APPS</td>
1339 <td class="code"><pre>[]</pre></td>
1340 </tr>
1341
1342 <tr>
1343 <td>ACCOUNT_ACTIVATION_DAYS</td>
1344 <td class="code"><pre>7</pre></td>
1345 </tr>
1346
1347 <tr>
1348 <td>SESSION_SERIALIZER</td>
1349 <td class="code"><pre>'django.contrib.sessions.serializers.JSONSerializer'</pre></td>
1350 </tr>
1351
1352 <tr>
1353 <td>STATIC_ROOT</td>
1354 <td class="code"><pre>'/edx/app/sso/npoed-sso-edx/static_col'</pre></td>
1355 </tr>
1356
1357 <tr>
1358 <td>SET_COOKIE_DOMAIN</td>
1359 <td class="code"><pre>'.icc.spbstu.ru'</pre></td>
1360 </tr>
1361
1362 <tr>
1363 <td>USE_THOUSAND_SEPARATOR</td>
1364 <td class="code"><pre>False</pre></td>
1365 </tr>
1366
1367 <tr>
1368 <td>REXP_USERNAME</td>
1369 <td class="code"><pre>'^[-a-zA-Z0-9_]+$'</pre></td>
1370 </tr>
1371
1372 <tr>
1373 <td>EDX_CRETEUSER_URL</td>
1374 <td class="code"><pre>'https://studio-dev.icc.spbstu.ru/auth/complete/sso_npoed_cms-oauth2/'</pre></td>
1375 </tr>
1376
1377 <tr>
1378 <td>SOCIAL_AUTH_ASSOCIATE_URL_NAME</td>
1379 <td class="code"><pre>'socialauth_associate_complete'</pre></td>
1380 </tr>
1381
1382 <tr>
1383 <td>SOCIAL_ACCOUNT_FACEBOOK</td>
1384 <td class="code"><pre>'https://www.facebook.com/openeduRU'</pre></td>
1385 </tr>
1386
1387 <tr>
1388 <td>ALLOWED_HOSTS</td>
1389 <td class="code"><pre>['*']</pre></td>
1390 </tr>
1391
1392 <tr>
1393 <td>SOCIAL_AUTH_EMAIL_VALIDATION_FUNCTION</td>
1394 <td class="code"><pre>'apps.profiler.email.send_validation'</pre></td>
1395 </tr>
1396
1397 <tr>
1398 <td>MESSAGE_STORAGE</td>
1399 <td class="code"><pre>'django.contrib.messages.storage.fallback.FallbackStorage'</pre></td>
1400 </tr>
1401
1402 <tr>
1403 <td>EMAIL_SUBJECT_PREFIX</td>
1404 <td class="code"><pre>'[Django] '</pre></td>
1405 </tr>
1406
1407 <tr>
1408 <td>SEND_BROKEN_LINK_EMAILS</td>
1409 <td class="code"><pre>False</pre></td>
1410 </tr>
1411
1412 <tr>
1413 <td>SOCIAL_AUTH_REDIRECT_IS_HTTPS</td>
1414 <td class="code"><pre>True</pre></td>
1415 </tr>
1416
1417 <tr>
1418 <td>STATICFILES_FINDERS</td>
1419 <td class="code"><pre>('django.contrib.staticfiles.finders.FileSystemFinder',
1420 'django.contrib.staticfiles.finders.AppDirectoriesFinder')</pre></td>
1421 </tr>
1422
1423 <tr>
1424 <td>EMAIL_NOTIFICATIONS_FROM</td>
1425 <td class="code"><pre>('Open education', 'polyana.web@yandex.ru')</pre></td>
1426 </tr>
1427
1428 <tr>
1429 <td>SESSION_CACHE_ALIAS</td>
1430 <td class="code"><pre>'default'</pre></td>
1431 </tr>
1432
1433 <tr>
1434 <td>SESSION_COOKIE_DOMAIN</td>
1435 <td class="code"><pre>None</pre></td>
1436 </tr>
1437
1438 <tr>
1439 <td>SESSION_COOKIE_NAME</td>
1440 <td class="code"><pre>'sessionid'</pre></td>
1441 </tr>
1442
1443 <tr>
1444 <td>ADMIN_FOR</td>
1445 <td class="code"><pre>()</pre></td>
1446 </tr>
1447
1448 <tr>
1449 <td>TIME_INPUT_FORMATS</td>
1450 <td class="code"><pre>('%H:%M:%S', '%H:%M:%S.%f', '%H:%M')</pre></td>
1451 </tr>
1452
1453 <tr>
1454 <td>DATABASES</td>
1455 <td class="code"><pre>{'default': {'ATOMIC_REQUESTS': False,
1456 'AUTOCOMMIT': True,
1457 'CONN_MAX_AGE': 0,
1458 'ENGINE': 'django.db.backends.mysql',
1459 'HOST': '192.168.1.71',
1460 'NAME': 'sso',
1461 'OPTIONS': {},
1462 'PASSWORD': u'********************',
1463 'PORT': '3306',
1464 'TEST': {'CHARSET': None,
1465 'COLLATION': None,
1466 'MIRROR': None,
1467 'NAME': None},
1468 'TIME_ZONE': 'UTC',
1469 'USER': 'sso'}}</pre></td>
1470 </tr>
1471
1472 <tr>
1473 <td>FILE_UPLOAD_DIRECTORY_PERMISSIONS</td>
1474 <td class="code"><pre>None</pre></td>
1475 </tr>
1476
1477 <tr>
1478 <td>SOCIAL_AUTH_USERNAME_FORM_HTML</td>
1479 <td class="code"><pre>'username_signup.html'</pre></td>
1480 </tr>
1481
1482 <tr>
1483 <td>FILE_UPLOAD_PERMISSIONS</td>
1484 <td class="code"><pre>None</pre></td>
1485 </tr>
1486
1487 <tr>
1488 <td>SOCIAL_AUTH_SLUGIFY_FUNCTION</td>
1489 <td class="code"><pre>'apps.core.utils.slugify'</pre></td>
1490 </tr>
1491
1492 <tr>
1493 <td>FILE_UPLOAD_HANDLERS</td>
1494 <td class="code"><pre>('django.core.files.uploadhandler.MemoryFileUploadHandler',
1495 'django.core.files.uploadhandler.TemporaryFileUploadHandler')</pre></td>
1496 </tr>
1497
1498 <tr>
1499 <td>DEFAULT_CONTENT_TYPE</td>
1500 <td class="code"><pre>'text/html'</pre></td>
1501 </tr>
1502
1503 <tr>
1504 <td>SOCIAL_AUTH_FORCE_EMAIL_VALIDATION</td>
1505 <td class="code"><pre>True</pre></td>
1506 </tr>
1507
1508 <tr>
1509 <td>APPEND_SLASH</td>
1510 <td class="code"><pre>True</pre></td>
1511 </tr>
1512
1513 <tr>
1514 <td>FIRST_DAY_OF_WEEK</td>
1515 <td class="code"><pre>0</pre></td>
1516 </tr>
1517
1518 <tr>
1519 <td>DATABASE_ROUTERS</td>
1520 <td class="code"><pre>[]</pre></td>
1521 </tr>
1522
1523 <tr>
1524 <td>EDX_API_LOGIN_URL</td>
1525 <td class="code"><pre>u'********************'</pre></td>
1526 </tr>
1527
1528 <tr>
1529 <td>SOCIAL_AUTH_FACEBOOK_KEY</td>
1530 <td class="code"><pre>u'********************'</pre></td>
1531 </tr>
1532
1533 <tr>
1534 <td>YEAR_MONTH_FORMAT</td>
1535 <td class="code"><pre>'F Y'</pre></td>
1536 </tr>
1537
1538 <tr>
1539 <td>SOCIAL_AUTH_ASSOCIATE_BY_EMAIL</td>
1540 <td class="code"><pre>True</pre></td>
1541 </tr>
1542
1543 <tr>
1544 <td>STATICFILES_STORAGE</td>
1545 <td class="code"><pre>'django.contrib.staticfiles.storage.StaticFilesStorage'</pre></td>
1546 </tr>
1547
1548 <tr>
1549 <td>CACHES</td>
1550 <td class="code"><pre>{'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}</pre></td>
1551 </tr>
1552
1553 <tr>
1554 <td>SERVER_EMAIL</td>
1555 <td class="code"><pre>'polyana.web@yandex.ru'</pre></td>
1556 </tr>
1557
1558 <tr>
1559 <td>SESSION_COOKIE_PATH</td>
1560 <td class="code"><pre>'/'</pre></td>
1561 </tr>
1562
1563 <tr>
1564 <td>SILENCED_SYSTEM_CHECKS</td>
1565 <td class="code"><pre>[]</pre></td>
1566 </tr>
1567
1568 <tr>
1569 <td>MIDDLEWARE_CLASSES</td>
1570 <td class="code"><pre>('django.contrib.sessions.middleware.SessionMiddleware',
1571 'django.middleware.locale.LocaleMiddleware',
1572 'django.middleware.common.CommonMiddleware',
1573 'django.middleware.csrf.CsrfViewMiddleware',
1574 'django.contrib.auth.middleware.AuthenticationMiddleware',
1575 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
1576 'django.contrib.messages.middleware.MessageMiddleware',
1577 'django.middleware.clickjacking.XFrameOptionsMiddleware',
1578 'npoed_sso_edx.middleware.SocialAuthExceptionMiddleware',
1579 'apps.utm_tracker.middleware.UTMTrackingMiddleware')</pre></td>
1580 </tr>
1581
1582 <tr>
1583 <td>EMAIL_TAG</td>
1584 <td class="code"><pre>u'Npoed'</pre></td>
1585 </tr>
1586
1587 <tr>
1588 <td>THOUSAND_SEPARATOR</td>
1589 <td class="code"><pre>','</pre></td>
1590 </tr>
1591
1592 <tr>
1593 <td>SECRET_KEY</td>
1594 <td class="code"><pre>u'********************'</pre></td>
1595 </tr>
1596
1597 <tr>
1598 <td>MAX_AVATAR_UPLOAD_SIZE</td>
1599 <td class="code"><pre>6291456</pre></td>
1600 </tr>
1601
1602 <tr>
1603 <td>MIN_LENGTH_PASSWORD</td>
1604 <td class="code"><pre>u'********************'</pre></td>
1605 </tr>
1606
1607 <tr>
1608 <td>LANGUAGE_COOKIE_NAME</td>
1609 <td class="code"><pre>'django_language'</pre></td>
1610 </tr>
1611
1612 <tr>
1613 <td>FILE_UPLOAD_TEMP_DIR</td>
1614 <td class="code"><pre>None</pre></td>
1615 </tr>
1616
1617 <tr>
1618 <td>DEFAULT_TABLESPACE</td>
1619 <td class="code"><pre>''</pre></td>
1620 </tr>
1621
1622 <tr>
1623 <td>TRANSACTIONS_MANAGED</td>
1624 <td class="code"><pre>False</pre></td>
1625 </tr>
1626
1627 <tr>
1628 <td>LOGGING_CONFIG</td>
1629 <td class="code"><pre>'logging.config.dictConfig'</pre></td>
1630 </tr>
1631
1632 <tr>
1633 <td>SIGNING_BACKEND</td>
1634 <td class="code"><pre>'django.core.signing.TimestampSigner'</pre></td>
1635 </tr>
1636
1637 <tr>
1638 <td>SOCIAL_AUTH_PIPELINE</td>
1639 <td class="code"><pre>('social.pipeline.social_auth.social_details',
1640 'social.pipeline.social_auth.social_uid',
1641 'social.pipeline.social_auth.auth_allowed',
1642 'social.pipeline.social_auth.social_user',
1643 'social.pipeline.user.get_username',
1644 'apps.profiler.pipeline.get_username',
1645 'apps.profiler.pipeline.require_email',
1646 'apps.profiler.pipeline.mail_validation',
1647 'social.pipeline.social_auth.associate_by_email',
1648 'social.pipeline.user.create_user',
1649 'social.pipeline.social_auth.associate_user',
1650 'social.pipeline.social_auth.load_extra_data',
1651 'social.pipeline.user.user_details',
1652 'apps.profiler.pipeline.update_profile')</pre></td>
1653 </tr>
1654
1655 <tr>
1656 <td>LOGIN_ERROR_URL</td>
1657 <td class="code"><pre>'/login'</pre></td>
1658 </tr>
1659
1660 <tr>
1661 <td>SOCIAL_AUTH_FACEBOOK_SECRET</td>
1662 <td class="code"><pre>u'********************'</pre></td>
1663 </tr>
1664
1665 <tr>
1666 <td>EDX_COURSES_API</td>
1667 <td class="code"><pre>u'********************'</pre></td>
1668 </tr>
1669
1670 <tr>
1671 <td>WSGI_APPLICATION</td>
1672 <td class="code"><pre>'npoed_sso_edx.wsgi.application'</pre></td>
1673 </tr>
1674
1675 <tr>
1676 <td>TEMPLATE_DEBUG</td>
1677 <td class="code"><pre>True</pre></td>
1678 </tr>
1679
1680 <tr>
1681 <td>X_FRAME_OPTIONS</td>
1682 <td class="code"><pre>'SAMEORIGIN'</pre></td>
1683 </tr>
1684
1685 <tr>
1686 <td>CSRF_COOKIE_NAME</td>
1687 <td class="code"><pre>'csrftoken'</pre></td>
1688 </tr>
1689
1690 <tr>
1691 <td>SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET</td>
1692 <td class="code"><pre>u'********************'</pre></td>
1693 </tr>
1694
1695 <tr>
1696 <td>SOCIAL_AUTH_EMAIL_VALIDATION_URL</td>
1697 <td class="code"><pre>'/email-sent/'</pre></td>
1698 </tr>
1699
1700 <tr>
1701 <td>FORCE_SCRIPT_NAME</td>
1702 <td class="code"><pre>None</pre></td>
1703 </tr>
1704
1705 <tr>
1706 <td>USE_X_FORWARDED_HOST</td>
1707 <td class="code"><pre>False</pre></td>
1708 </tr>
1709
1710 <tr>
1711 <td>DEFAULT_CHARSET</td>
1712 <td class="code"><pre>'utf-8'</pre></td>
1713 </tr>
1714
1715 <tr>
1716 <td>SESSION_COOKIE_SECURE</td>
1717 <td class="code"><pre>False</pre></td>
1718 </tr>
1719
1720 <tr>
1721 <td>SOCIAL_AUTH_COMMUNITY_NPOED_KEY</td>
1722 <td class="code"><pre>u'********************'</pre></td>
1723 </tr>
1724
1725 <tr>
1726 <td>EDX_LIBRARIES_API</td>
1727 <td class="code"><pre>u'********************'</pre></td>
1728 </tr>
1729
1730 <tr>
1731 <td>CSRF_COOKIE_DOMAIN</td>
1732 <td class="code"><pre>None</pre></td>
1733 </tr>
1734
1735 <tr>
1736 <td>FILE_CHARSET</td>
1737 <td class="code"><pre>'utf-8'</pre></td>
1738 </tr>
1739
1740 <tr>
1741 <td>DEBUG</td>
1742 <td class="code"><pre>True</pre></td>
1743 </tr>
1744
1745 <tr>
1746 <td>LANGUAGE_COOKIE_DOMAIN</td>
1747 <td class="code"><pre>None</pre></td>
1748 </tr>
1749
1750 <tr>
1751 <td>DEFAULT_FILE_STORAGE</td>
1752 <td class="code"><pre>'django.core.files.storage.FileSystemStorage'</pre></td>
1753 </tr>
1754
1755 <tr>
1756 <td>INSTALLED_APPS</td>
1757 <td class="code"><pre>('django.contrib.admin',
1758 'django.contrib.auth',
1759 'django.contrib.sites',
1760 'registration',
1761 'django.contrib.contenttypes',
1762 'django.contrib.sessions',
1763 'django.contrib.messages',
1764 'django.contrib.staticfiles',
1765 'rest_framework',
1766 'rest_framework.authtoken',
1767 'provider',
1768 'provider.oauth2',
1769 'oauth2_provider',
1770 'gunicorn',
1771 'social.apps.django_app.default',
1772 'django_countries',
1773 'apps.core',
1774 'apps.profiler',
1775 'apps.permissions',
1776 'apps.openedx_objects',
1777 'apps.utm_tracker',
1778 'django_jenkins',
1779 'sslserver',
1780 'simple_history',
1781 'storages')</pre></td>
1782 </tr>
1783
1784 <tr>
1785 <td>LANGUAGES</td>
1786 <td class="code"><pre>(('ru', <django.utils.functional.__proxy__ object at 0x7f00e782c350>),)</pre></td>
1787 </tr>
1788
1789 <tr>
1790 <td>EDX_API_KEY</td>
1791 <td class="code"><pre>u'********************'</pre></td>
1792 </tr>
1793
1794 <tr>
1795 <td>EDX_LMS_URL</td>
1796 <td class="code"><pre>'courses-dev.icc.spbstu.ru'</pre></td>
1797 </tr>
1798
1799 <tr>
1800 <td>SOCIAL_AUTH_DEFAULT_USERNAME</td>
1801 <td class="code"><pre>'socialauth_user'</pre></td>
1802 </tr>
1803
1804 <tr>
1805 <td>SOCIAL_AUTH_VK_OAUTH2_SECRET</td>
1806 <td class="code"><pre>u'********************'</pre></td>
1807 </tr>
1808
1809 <tr>
1810 <td>PROJECT_APPS</td>
1811 <td class="code"><pre>('apps.core', 'apps.profiler', 'apps.permissions', 'apps.openedx_objects')</pre></td>
1812 </tr>
1813
1814 <tr>
1815 <td>PREPEND_WWW</td>
1816 <td class="code"><pre>False</pre></td>
1817 </tr>
1818
1819 <tr>
1820 <td>SECURE_PROXY_SSL_HEADER</td>
1821 <td class="code"><pre>('HTTP_X_FORWARDED_PROTO', 'https')</pre></td>
1822 </tr>
1823
1824 <tr>
1825 <td>SOCIAL_AUTH_URLOPEN_TIMEOUT</td>
1826 <td class="code"><pre>7</pre></td>
1827 </tr>
1828
1829 <tr>
1830 <td>LANGUAGE_COOKIE_AGE</td>
1831 <td class="code"><pre>None</pre></td>
1832 </tr>
1833
1834 <tr>
1835 <td>SESSION_COOKIE_HTTPONLY</td>
1836 <td class="code"><pre>True</pre></td>
1837 </tr>
1838
1839 <tr>
1840 <td>DEBUG_PROPAGATE_EXCEPTIONS</td>
1841 <td class="code"><pre>False</pre></td>
1842 </tr>
1843
1844 <tr>
1845 <td>INTERNAL_IPS</td>
1846 <td class="code"><pre>()</pre></td>
1847 </tr>
1848
1849 <tr>
1850 <td>SOCIAL_AUTH_MAILRU_OAUTH2_KEY</td>
1851 <td class="code"><pre>u'********************'</pre></td>
1852 </tr>
1853
1854 <tr>
1855 <td>URL_PREFIX</td>
1856 <td class="code"><pre>'https'</pre></td>
1857 </tr>
1858
1859 <tr>
1860 <td>MONTH_DAY_FORMAT</td>
1861 <td class="code"><pre>'F j'</pre></td>
1862 </tr>
1863
1864 <tr>
1865 <td>SOCIAL_AUTH_FORCE_RANDOM_USERNAME</td>
1866 <td class="code"><pre>False</pre></td>
1867 </tr>
1868
1869 <tr>
1870 <td>LOGIN_URL</td>
1871 <td class="code"><pre>'/login'</pre></td>
1872 </tr>
1873
1874 <tr>
1875 <td>SESSION_EXPIRE_AT_BROWSER_CLOSE</td>
1876 <td class="code"><pre>False</pre></td>
1877 </tr>
1878
1879 <tr>
1880 <td>PLP_CRETEUSER_URL</td>
1881 <td class="code"><pre>'https://plp-dev.icc.spbstu.ru/complete/npoedsso/'</pre></td>
1882 </tr>
1883
1884 <tr>
1885 <td>SOCIAL_AUTH_GOOGLE_OAUTH2_KEY</td>
1886 <td class="code"><pre>u'********************'</pre></td>
1887 </tr>
1888
1889 <tr>
1890 <td>RAVEN_CONFIG</td>
1891 <td class="code"><pre>None</pre></td>
1892 </tr>
1893
1894 <tr>
1895 <td>TIME_FORMAT</td>
1896 <td class="code"><pre>'P'</pre></td>
1897 </tr>
1898
1899 <tr>
1900 <td>URL_PREFIX_EDX</td>
1901 <td class="code"><pre>'https'</pre></td>
1902 </tr>
1903
1904 <tr>
1905 <td>SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS</td>
1906 <td class="code"><pre>{'fields': 'email,last_name,first_name,name,id,birthday,education,gender,timezone,location',
1907 'locale': 'ru_RU'}</pre></td>
1908 </tr>
1909
1910 <tr>
1911 <td>AUTH_USER_MODEL</td>
1912 <td class="code"><pre>'profiler.User'</pre></td>
1913 </tr>
1914
1915 <tr>
1916 <td>DATE_INPUT_FORMATS</td>
1917 <td class="code"><pre>('%Y-%m-%d',
1918 '%m/%d/%Y',
1919 '%m/%d/%y',
1920 '%b %d %Y',
1921 '%b %d, %Y',
1922 '%d %b %Y',
1923 '%d %b, %Y',
1924 '%B %d %Y',
1925 '%B %d, %Y',
1926 '%d %B %Y',
1927 '%d %B, %Y')</pre></td>
1928 </tr>
1929
1930 <tr>
1931 <td>AUTH_SESSION_COOKIE_DOMAIN</td>
1932 <td class="code"><pre>'.icc.spbstu.ru'</pre></td>
1933 </tr>
1934
1935 <tr>
1936 <td>AUTHENTICATION_BACKENDS</td>
1937 <td class="code"><pre>('social.backends.facebook.FacebookOAuth2',
1938 'social.backends.google.GoogleOAuth2',
1939 'social.backends.twitter.TwitterOAuth',
1940 'social.backends.mailru.MailruOAuth2',
1941 'social.backends.vk.VKOAuth2',
1942 'social.backends.email.EmailAuth',
1943 'apps.profiler.backends.npoed.NpoedBackend',
1944 'social.backends.username.UsernameAuth',
1945 'django.contrib.auth.backends.ModelBackend',
1946 'apps.profiler.backends.email.EmailLoginBackend')</pre></td>
1947 </tr>
1948
1949 <tr>
1950 <td>EMAIL_HOST_PASSWORD</td>
1951 <td class="code"><pre>u'********************'</pre></td>
1952 </tr>
1953
1954 <tr>
1955 <td>PASSWORD_RESET_TIMEOUT_DAYS</td>
1956 <td class="code"><pre>u'********************'</pre></td>
1957 </tr>
1958
1959 <tr>
1960 <td>SESSION_FILE_PATH</td>
1961 <td class="code"><pre>None</pre></td>
1962 </tr>
1963
1964 <tr>
1965 <td>CACHE_MIDDLEWARE_ALIAS</td>
1966 <td class="code"><pre>'default'</pre></td>
1967 </tr>
1968
1969 <tr>
1970 <td>SESSION_SAVE_EVERY_REQUEST</td>
1971 <td class="code"><pre>False</pre></td>
1972 </tr>
1973
1974 <tr>
1975 <td>NUMBER_GROUPING</td>
1976 <td class="code"><pre>0</pre></td>
1977 </tr>
1978
1979 <tr>
1980 <td>SOCIAL_AUTH_DISCONNECT_PIPELINE</td>
1981 <td class="code"><pre>('social.pipeline.disconnect.allowed_to_disconnect',
1982 'apps.profiler.pipeline.get_entries',
1983 'social.pipeline.disconnect.revoke_tokens',
1984 'social.pipeline.disconnect.disconnect')</pre></td>
1985 </tr>
1986
1987 <tr>
1988 <td>SESSION_ENGINE</td>
1989 <td class="code"><pre>'django.contrib.sessions.backends.db'</pre></td>
1990 </tr>
1991
1992 <tr>
1993 <td>CSRF_FAILURE_VIEW</td>
1994 <td class="code"><pre>'django.views.csrf.csrf_failure'</pre></td>
1995 </tr>
1996
1997 <tr>
1998 <td>CSRF_COOKIE_PATH</td>
1999 <td class="code"><pre>'/'</pre></td>
2000 </tr>
2001
2002 <tr>
2003 <td>LOGIN_REDIRECT_URL</td>
2004 <td class="code"><pre>'/'</pre></td>
2005 </tr>
2006
2007 <tr>
2008 <td>SOCIAL_AUTH_EMAIL_FORM_HTML</td>
2009 <td class="code"><pre>'email_signup.html'</pre></td>
2010 </tr>
2011
2012 <tr>
2013 <td>SOCIAL_AUTH_VK_OAUTH2_SCOPE</td>
2014 <td class="code"><pre>['email']</pre></td>
2015 </tr>
2016
2017 <tr>
2018 <td>SOCIAL_AUTH_ERROR_KEY</td>
2019 <td class="code"><pre>u'********************'</pre></td>
2020 </tr>
2021
2022 <tr>
2023 <td>DECIMAL_SEPARATOR</td>
2024 <td class="code"><pre>'.'</pre></td>
2025 </tr>
2026
2027 <tr>
2028 <td>IGNORABLE_404_URLS</td>
2029 <td class="code"><pre>()</pre></td>
2030 </tr>
2031
2032 <tr>
2033 <td>LOCALE_PATHS</td>
2034 <td class="code"><pre>('/edx/app/sso/npoed-sso-edx/locale',)</pre></td>
2035 </tr>
2036
2037 <tr>
2038 <td>TEMPLATE_STRING_IF_INVALID</td>
2039 <td class="code"><pre>''</pre></td>
2040 </tr>
2041
2042 <tr>
2043 <td>SOCIAL_AUTH_URL_NAMESPACE</td>
2044 <td class="code"><pre>'social'</pre></td>
2045 </tr>
2046
2047 <tr>
2048 <td>COMMENTS_ALLOW_PROFANITIES</td>
2049 <td class="code"><pre>False</pre></td>
2050 </tr>
2051
2052 <tr>
2053 <td>SOCIAL_ACCOUNT_VK</td>
2054 <td class="code"><pre>'https://vk.com/openeduRU'</pre></td>
2055 </tr>
2056
2057 <tr>
2058 <td>LOGOUT_URL</td>
2059 <td class="code"><pre>'/accounts/logout/'</pre></td>
2060 </tr>
2061
2062 <tr>
2063 <td>COUNTRIES_FIRST</td>
2064 <td class="code"><pre>['RU']</pre></td>
2065 </tr>
2066
2067 <tr>
2068 <td>EMAIL_USE_TLS</td>
2069 <td class="code"><pre>False</pre></td>
2070 </tr>
2071
2072 <tr>
2073 <td>SOCIAL_AUTH_RAISE_EXCEPTIONS</td>
2074 <td class="code"><pre>False</pre></td>
2075 </tr>
2076
2077 <tr>
2078 <td>FIXTURE_DIRS</td>
2079 <td class="code"><pre>()</pre></td>
2080 </tr>
2081
2082 <tr>
2083 <td>EMAIL_HOST</td>
2084 <td class="code"><pre>'smtp.yandex.ru'</pre></td>
2085 </tr>
2086
2087 <tr>
2088 <td>DATE_FORMAT</td>
2089 <td class="code"><pre>'N j, Y'</pre></td>
2090 </tr>
2091
2092 <tr>
2093 <td>MEDIA_ROOT</td>
2094 <td class="code"><pre>'/edx/app/sso/npoed-sso-edx/media'</pre></td>
2095 </tr>
2096
2097 <tr>
2098 <td>DEFAULT_EXCEPTION_REPORTER_FILTER</td>
2099 <td class="code"><pre>'django.views.debug.SafeExceptionReporterFilter'</pre></td>
2100 </tr>
2101
2102 <tr>
2103 <td>ADMINS</td>
2104 <td class="code"><pre>()</pre></td>
2105 </tr>
2106
2107 <tr>
2108 <td>SOCIAL_ACCOUNT_INSTAGRAM</td>
2109 <td class="code"><pre>'https://instagram.com/openeduRU'</pre></td>
2110 </tr>
2111
2112 <tr>
2113 <td>FORMAT_MODULE_PATH</td>
2114 <td class="code"><pre>None</pre></td>
2115 </tr>
2116
2117 <tr>
2118 <td>DEFAULT_FROM_EMAIL</td>
2119 <td class="code"><pre>u'Npoed <polyana.web@yandex.ru>'</pre></td>
2120 </tr>
2121
2122 <tr>
2123 <td>JENKINS_TASKS</td>
2124 <td class="code"><pre>('django_jenkins.tasks.run_pep8', 'django_jenkins.tasks.run_pyflakes')</pre></td>
2125 </tr>
2126
2127 <tr>
2128 <td>REST_FRAMEWORK</td>
2129 <td class="code"><pre>{'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework.authentication.TokenAuthentication',
2130 'rest_framework_oauth.authentication.OAuth2Authentication'),
2131 'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAdminUser',),
2132 'FORM_CONTENTTYPE_OVERRIDE': None,
2133 'FORM_CONTENT_OVERRIDE': None,
2134 'FORM_METHOD_OVERRIDE': None,
2135 'PAGE_SIZE': 10}</pre></td>
2136 </tr>
2137
2138 <tr>
2139 <td>SOCIAL_AUTH_EXTRA_DATA</td>
2140 <td class="code"><pre>['sex',
2141 'bdate',
2142 'birthday',
2143 'city',
2144 'country',
2145 'education',
2146 'universities',
2147 'schools',
2148 'timezone',
2149 'photo_100']</pre></td>
2150 </tr>
2151
2152 <tr>
2153 <td>MEDIA_URL</td>
2154 <td class="code"><pre>'/media/'</pre></td>
2155 </tr>
2156
2157 <tr>
2158 <td>DATETIME_FORMAT</td>
2159 <td class="code"><pre>'N j, Y, P'</pre></td>
2160 </tr>
2161
2162 <tr>
2163 <td>TEMPLATE_DIRS</td>
2164 <td class="code"><pre>['/edx/app/sso/npoed-sso-edx/templates']</pre></td>
2165 </tr>
2166
2167 <tr>
2168 <td>SITE_ID</td>
2169 <td class="code"><pre>1</pre></td>
2170 </tr>
2171
2172 <tr>
2173 <td>DISALLOWED_USER_AGENTS</td>
2174 <td class="code"><pre>()</pre></td>
2175 </tr>
2176
2177 <tr>
2178 <td>ALLOWED_INCLUDE_ROOTS</td>
2179 <td class="code"><pre>()</pre></td>
2180 </tr>
2181
2182 <tr>
2183 <td>USE_I18N</td>
2184 <td class="code"><pre>True</pre></td>
2185 </tr>
2186
2187 <tr>
2188 <td>LOGGING</td>
2189 <td class="code"><pre>{}</pre></td>
2190 </tr>
2191
2192 <tr>
2193 <td>SHORT_DATE_FORMAT</td>
2194 <td class="code"><pre>'m/d/Y'</pre></td>
2195 </tr>
2196
2197 <tr>
2198 <td>EMAIL_FROM</td>
2199 <td class="code"><pre>u'Npoed <polyana.web@yandex.ru>'</pre></td>
2200 </tr>
2201
2202 <tr>
2203 <td>EDX_CMS_URL</td>
2204 <td class="code"><pre>'studio-dev.icc.spbstu.ru'</pre></td>
2205 </tr>
2206
2207 <tr>
2208 <td>TEST_RUNNER</td>
2209 <td class="code"><pre>'django.test.runner.DiscoverRunner'</pre></td>
2210 </tr>
2211
2212 <tr>
2213 <td>SOCIAL_AUTH_GOOGLE_OAUTH2_SCOPE</td>
2214 <td class="code"><pre>['profile']</pre></td>
2215 </tr>
2216
2217 <tr>
2218 <td>CACHE_MIDDLEWARE_KEY_PREFIX</td>
2219 <td class="code"><pre>u'********************'</pre></td>
2220 </tr>
2221
2222 <tr>
2223 <td>EDX_ENROLLMENTS_API</td>
2224 <td class="code"><pre>u'********************'</pre></td>
2225 </tr>
2226
2227 <tr>
2228 <td>REGISTRATION_AUTO_LOGIN</td>
2229 <td class="code"><pre>True</pre></td>
2230 </tr>
2231
2232 <tr>
2233 <td>SOCIAL_AUTH_TWITTER_KEY</td>
2234 <td class="code"><pre>u'********************'</pre></td>
2235 </tr>
2236
2237 <tr>
2238 <td>FILE_UPLOAD_MAX_MEMORY_SIZE</td>
2239 <td class="code"><pre>2621440</pre></td>
2240 </tr>
2241
2242 <tr>
2243 <td>SOCIAL_AUTH_CREATE_USERS</td>
2244 <td class="code"><pre>True</pre></td>
2245 </tr>
2246
2247 <tr>
2248 <td>SOCIAL_AUTH_VK_OAUTH2_KEY</td>
2249 <td class="code"><pre>u'********************'</pre></td>
2250 </tr>
2251
2252 <tr>
2253 <td>EMAIL_BACKEND</td>
2254 <td class="code"><pre>'django.core.mail.backends.smtp.EmailBackend'</pre></td>
2255 </tr>
2256
2257 <tr>
2258 <td>STATICFILES_DIRS</td>
2259 <td class="code"><pre>('/edx/app/sso/npoed-sso-edx/static',)</pre></td>
2260 </tr>
2261
2262 <tr>
2263 <td>EMAIL_USE_SSL</td>
2264 <td class="code"><pre>True</pre></td>
2265 </tr>
2266
2267 <tr>
2268 <td>TEMPLATE_CONTEXT_PROCESSORS</td>
2269 <td class="code"><pre>('django.contrib.auth.context_processors.auth',
2270 'django.core.context_processors.debug',
2271 'django.core.context_processors.i18n',
2272 'django.core.context_processors.media',
2273 'django.core.context_processors.static',
2274 'django.core.context_processors.tz',
2275 'django.contrib.messages.context_processors.messages',
2276 'django.core.context_processors.request',
2277 'apps.profiler.context_processors.forms')</pre></td>
2278 </tr>
2279
2280 <tr>
2281 <td>MIGRATION_MODULES</td>
2282 <td class="code"><pre>{}</pre></td>
2283 </tr>
2284
2285 <tr>
2286 <td>SESSION_COOKIE_AGE</td>
2287 <td class="code"><pre>1209600</pre></td>
2288 </tr>
2289
2290 <tr>
2291 <td>SETTINGS_MODULE</td>
2292 <td class="code"><pre>'npoed_sso_edx.settings'</pre></td>
2293 </tr>
2294
2295 <tr>
2296 <td>USE_ETAGS</td>
2297 <td class="code"><pre>False</pre></td>
2298 </tr>
2299
2300 <tr>
2301 <td>OAUTH_OIDC_ISSUER</td>
2302 <td class="code"><pre>'https:///oauth2'</pre></td>
2303 </tr>
2304
2305 <tr>
2306 <td>LANGUAGES_BIDI</td>
2307 <td class="code"><pre>('he', 'ar', 'fa', 'ur')</pre></td>
2308 </tr>
2309
2310 <tr>
2311 <td>SOCIAL_AUTH_COMPLETE_URL_NAME</td>
2312 <td class="code"><pre>'socialauth_complete'</pre></td>
2313 </tr>
2314
2315 <tr>
2316 <td>SOCIAL_AUTH_PROTECTED_USER_FIELDS</td>
2317 <td class="code"><pre>['first_name', 'last_name']</pre></td>
2318 </tr>
2319
2320 <tr>
2321 <td>DEFAULT_INDEX_TABLESPACE</td>
2322 <td class="code"><pre>''</pre></td>
2323 </tr>
2324
2325 <tr>
2326 <td>CSRF_COOKIE_AGE</td>
2327 <td class="code"><pre>31449600</pre></td>
2328 </tr>
2329
2330 <tr>
2331 <td>STATIC_URL</td>
2332 <td class="code"><pre>'/static/'</pre></td>
2333 </tr>
2334
2335 <tr>
2336 <td>EMAIL_PORT</td>
2337 <td class="code"><pre>465</pre></td>
2338 </tr>
2339
2340 <tr>
2341 <td>SSO_API_KEY</td>
2342 <td class="code"><pre>u'********************'</pre></td>
2343 </tr>
2344
2345 <tr>
2346 <td>USE_TZ</td>
2347 <td class="code"><pre>True</pre></td>
2348 </tr>
2349
2350 <tr>
2351 <td>SHORT_DATETIME_FORMAT</td>
2352 <td class="code"><pre>'m/d/Y P'</pre></td>
2353 </tr>
2354
2355 <tr>
2356 <td>PASSWORD_HASHERS</td>
2357 <td class="code"><pre>u'********************'</pre></td>
2358 </tr>
2359
2360 <tr>
2361 <td>ABSOLUTE_URL_OVERRIDES</td>
2362 <td class="code"><pre>{}</pre></td>
2363 </tr>
2364
2365 <tr>
2366 <td>LANGUAGE_COOKIE_PATH</td>
2367 <td class="code"><pre>'/'</pre></td>
2368 </tr>
2369
2370 <tr>
2371 <td>PLP_URL</td>
2372 <td class="code"><pre>'https://plp-dev.icc.spbstu.ru'</pre></td>
2373 </tr>
2374
2375 <tr>
2376 <td>CACHE_MIDDLEWARE_SECONDS</td>
2377 <td class="code"><pre>600</pre></td>
2378 </tr>
2379
2380 <tr>
2381 <td>SOCIAL_ACCOUNT_OK</td>
2382 <td class="code"><pre>'http://ok.ru/group/52786563514445'</pre></td>
2383 </tr>
2384
2385 <tr>
2386 <td>CSRF_COOKIE_HTTPONLY</td>
2387 <td class="code"><pre>False</pre></td>
2388 </tr>
2389
2390 <tr>
2391 <td>DATETIME_INPUT_FORMATS</td>
2392 <td class="code"><pre>('%Y-%m-%d %H:%M:%S',
2393 '%Y-%m-%d %H:%M:%S.%f',
2394 '%Y-%m-%d %H:%M',
2395 '%Y-%m-%d',
2396 '%m/%d/%Y %H:%M:%S',
2397 '%m/%d/%Y %H:%M:%S.%f',
2398 '%m/%d/%Y %H:%M',
2399 '%m/%d/%Y',
2400 '%m/%d/%y %H:%M:%S',
2401 '%m/%d/%y %H:%M:%S.%f',
2402 '%m/%d/%y %H:%M',
2403 '%m/%d/%y')</pre></td>
2404 </tr>
2405
2406 <tr>
2407 <td>TIME_ZONE</td>
2408 <td class="code"><pre>'UTC'</pre></td>
2409 </tr>
2410
2411 <tr>
2412 <td>SOCIAL_AUTH_ADMIN_USER_SEARCH_FIELDS</td>
2413 <td class="code"><pre>['username', 'first_name', 'last_name', 'email', 'gender']</pre></td>
2414 </tr>
2415
2416 <tr>
2417 <td>EMAIL_HOST_USER</td>
2418 <td class="code"><pre>'polyana.web'</pre></td>
2419 </tr>
2420
2421 <tr>
2422 <td>PROFANITIES_LIST</td>
2423 <td class="code"><pre>u'********************'</pre></td>
2424 </tr>
2425
2426 </tbody>
2427 </table>
2428
2429</div>
2430
2431 <div id="explanation">
2432 <p>
2433 You're seeing this error because you have <code>DEBUG = True</code> in your
2434 Django settings file. Change that to <code>False</code>, and Django will
2435 display a standard 500 page.
2436 </p>
2437 </div>
2438
2439</body>
2440</html>
2441Request Method: POST
2442Request URL: https://plp-dev.icc.spbstu.ru/course-session/create/itmo/new/
2443Django Version: 1.8.4
2444Exception Type: SSONotAvailable
2445Exception Value:
2446Invalid SSO http response: 500
2447<!DOCTYPE html>
2448<html lang="en">
2449<head>
2450 <meta http-equiv="content-type" content="text/html; charset=utf-8">
2451 <meta name="robots" content="NONE,NOARCHIVE">
2452 <title>TypeError at /api-edx/course/</title>
2453 <style type="text/css">
2454 html * { padding:0; margin:0; }
2455 body * { padding:10px 20px; }
2456 body * * { padding:0; }
2457 body { font:small sans-serif; }
2458 body>div { border-bottom:1px solid #ddd; }
2459 h1 { font-weight:normal; }
2460 h2 { margin-bottom:.8em; }
2461 h2 span { font-size:80%; color:#666; font-weight:normal; }
2462 h3 { margin:1em 0 .5em 0; }
2463 h4 { margin:0 0 .5em 0; font-weight: normal; }
2464 code, pre { font-size: 100%; white-space: pre-wrap; }
2465 table { border:1px solid #ccc; border-collapse: collapse; width:100%; background:white; }
2466 tbody td, tbody th { vertical-align:top; padding:2px 3px; }
2467 thead th { padding:1px 6px 1px 3px; background:#fefefe; text-align:left; font-weight:normal; font-size:11px; border:1px solid #ddd; }
2468 tbody th { width:12em; text-align:right; color:#666; padding-right:.5em; }
2469 table.vars { margin:5px 0 2px 40px; }
2470 table.vars td, table.req td { font-family:monospace; }
2471 table td.code { width:100%; }
2472 table td.code pre { overflow:hidden; }
2473 table.source th { color:#666; }
2474 table.source td { font-family:monospace; white-space:pre; border-bottom:1px solid #eee; }
2475 ul.traceback { list-style-type:none; color: #222; }
2476 ul.traceback li.frame { padding-bottom:1em; color:#666; }
2477 ul.traceback li.user { background-color:#e0e0e0; color:#000 }
2478 div.context { padding:10px 0; overflow:hidden; }
2479 div.context ol { padding-left:30px; margin:0 10px; list-style-position: inside; }
2480 div.context ol li { font-family:monospace; white-space:pre; color:#777; cursor:pointer; }
2481 div.context ol li pre { display:inline; }
2482 div.context ol.context-line li { color:#505050; background-color:#dfdfdf; }
2483 div.context ol.context-line li span { position:absolute; right:32px; }
2484 .user div.context ol.context-line li { background-color:#bbb; color:#000; }
2485 .user div.context ol li { color:#666; }
2486 div.commands { margin-left: 40px; }
2487 div.commands a { color:#555; text-decoration:none; }
2488 .user div.commands a { color: black; }
2489 #summary { background: #ffc; }
2490 #summary h2 { font-weight: normal; color: #666; }
2491 #explanation { background:#eee; }
2492 #template, #template-not-exist { background:#f6f6f6; }
2493 #template-not-exist ul { margin: 0 0 0 20px; }
2494 #unicode-hint { background:#eee; }
2495 #traceback { background:#eee; }
2496 #requestinfo { background:#f6f6f6; padding-left:120px; }
2497 #summary table { border:none; background:transparent; }
2498 #requestinfo h2, #requestinfo h3 { position:relative; margin-left:-100px; }
2499 #requestinfo h3 { margin-bottom:-1em; }
2500 .error { background: #ffc; }
2501 .specific { color:#cc3300; font-weight:bold; }
2502 h2 span.commands { font-size:.7em;}
2503 span.commands a:link {color:#5E5694;}
2504 pre.exception_value { font-family: sans-serif; color: #666; font-size: 1.5em; margin: 10px 0 10px 0; }
2505 </style>
2506
2507 <script type="text/javascript">
2508 //<!--
2509 function getElementsByClassName(oElm, strTagName, strClassName){
2510 // Written by Jonathan Snook, http://www.snook.ca/jon; Add-ons by Robert Nyman, http://www.robertnyman.com
2511 var arrElements = (strTagName == "*" && document.all)? document.all :
2512 oElm.getElementsByTagName(strTagName);
2513 var arrReturnElements = new Array();
2514 strClassName = strClassName.replace(/\-/g, "\-");
2515 var oRegExp = new RegExp("(^|\s)" + strClassName + "(\s|$)");
2516 var oElement;
2517 for(var i=0; i<arrElements.length; i++){
2518 oElement = arrElements[i];
2519 if(oRegExp.test(oElement.className)){
2520 arrReturnElements.push(oElement);
2521 }
2522 }
2523 return (arrReturnElements)
2524 }
2525 function hideAll(elems) {
2526 for (var e = 0; e < elems.length; e++) {
2527 elems[e].style.display = 'none';
2528 }
2529 }
2530 window.onload = function() {
2531 hideAll(getElementsByClassName(document, 'table', 'vars'));
2532 hideAll(getElementsByClassName(document, 'ol', 'pre-context'));
2533 hideAll(getElementsByClassName(document, 'ol', 'post-context'));
2534 hideAll(getElementsByClassName(document, 'div', 'pastebin'));
2535 }
2536 function toggle() {
2537 for (var i = 0; i < arguments.length; i++) {
2538 var e = document.getElementById(arguments[i]);
2539 if (e) {
2540 e.style.display = e.style.display == 'none' ? 'block': 'none';
2541 }
2542 }
2543 return false;
2544 }
2545 function varToggle(link, id) {
2546 toggle('v' + id);
2547 var s = link.getElementsByTagName('span')[0];
2548 var uarr = String.fromCharCode(0x25b6);
2549 var darr = String.fromCharCode(0x25bc);
2550 s.innerHTML = s.innerHTML == uarr ? darr : uarr;
2551 return false;
2552 }
2553 function switchPastebinFriendly(link) {
2554 s1 = "Switch to copy-and-paste view";
2555 s2 = "Switch back to interactive view";
2556 link.innerHTML = link.innerHTML == s1 ? s2: s1;
2557 toggle('browserTraceback', 'pastebinTraceback');
2558 return false;
2559 }
2560 //-->
2561 </script>
2562
2563</head>
2564<body>
2565<div id="summary">
2566 <h1>TypeError at /api-edx/course/</h1>
2567 <pre class="exception_value">'org' is an invalid keyword argument for this function</pre>
2568 <table class="meta">
2569
2570 <tr>
2571 <th>Request Method:</th>
2572 <td>POST</td>
2573 </tr>
2574 <tr>
2575 <th>Request URL:</th>
2576 <td>https://sso-dev.icc.spbstu.ru/api-edx/course/</td>
2577 </tr>
2578
2579 <tr>
2580 <th>Django Version:</th>
2581 <td>1.7.10</td>
2582 </tr>
2583
2584 <tr>
2585 <th>Exception Type:</th>
2586 <td>TypeError</td>
2587 </tr>
2588
2589
2590 <tr>
2591 <th>Exception Value:</th>
2592 <td><pre>'org' is an invalid keyword argument for this function</pre></td>
2593 </tr>
2594
2595
2596 <tr>
2597 <th>Exception Location:</th>
2598 <td>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/base.py in __init__, line 452</td>
2599 </tr>
2600
2601 <tr>
2602 <th>Python Executable:</th>
2603 <td>/edx/app/sso/npoed-sso-edx/.env/bin/python</td>
2604 </tr>
2605 <tr>
2606 <th>Python Version:</th>
2607 <td>2.7.10</td>
2608 </tr>
2609 <tr>
2610 <th>Python Path:</th>
2611 <td><pre>['/edx/app/sso/npoed-sso-edx',
2612 '/edx/app/sso/npoed-sso-edx',
2613 '/edx/app/sso/npoed-sso-edx/.env/bin',
2614 '/edx/app/sso/npoed-sso-edx/.env/src/django-oauth2-provider',
2615 '/edx/app/sso/npoed-sso-edx/.env/src/edx-oauth2-provider',
2616 '/edx/app/sso/npoed-sso-edx/.env/lib/python2.7',
2617 '/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/plat-linux2',
2618 '/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/lib-tk',
2619 '/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/lib-old',
2620 '/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/lib-dynload',
2621 '/usr/lib/python2.7',
2622 '/usr/lib/python2.7/plat-linux2',
2623 '/usr/lib/python2.7/lib-tk',
2624 '/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages',
2625 '/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/site-packages']</pre></td>
2626 </tr>
2627 <tr>
2628 <th>Server time:</th>
2629 <td>Сбт, 3 Сен 2016 11:22:51 +0000</td>
2630 </tr>
2631 </table>
2632</div>
2633
2634
2635
2636
2637<div id="traceback">
2638 <h2>Traceback <span class="commands"><a href="#" onclick="return switchPastebinFriendly(this);">Switch to copy-and-paste view</a></span></h2>
2639
2640 <div id="browserTraceback">
2641 <ul class="traceback">
2642
2643 <li class="frame django">
2644 <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/core/handlers/base.py</code> in <code>get_response</code>
2645
2646
2647 <div class="context" id="c139641805897024">
2648
2649 <ol start="104" class="pre-context" id="pre139641805897024"><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> response = middleware_method(request, callback, callback_args, callback_kwargs)</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> if response:</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> break</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre></pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> if response is None:</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> wrapped_callback = self.make_view_atomic(callback)</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> try:</pre></li></ol>
2650
2651 <ol start="111" class="context-line"><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> response = wrapped_callback(request, *callback_args, **callback_kwargs)</pre> <span>...</span></li></ol>
2652
2653 <ol start='112' class="post-context" id="post139641805897024"><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> except Exception as e:</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> # If the view raised an exception, run it through exception</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> # middleware, and if the exception middleware returns a</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> # response, use that. Otherwise, reraise the exception.</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> for middleware_method in self._exception_middleware:</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> response = middleware_method(request, e)</pre></li></ol>
2654
2655 </div>
2656
2657
2658
2659 <div class="commands">
2660
2661 <a href="#" onclick="return varToggle(this, '139641805897024')"><span>▶</span> Local vars</a>
2662
2663 </div>
2664 <table class="vars" id="v139641805897024">
2665 <thead>
2666 <tr>
2667 <th>Variable</th>
2668 <th>Value</th>
2669 </tr>
2670 </thead>
2671 <tbody>
2672
2673 <tr>
2674 <td>e</td>
2675 <td class="code"><pre>TypeError(u"'org' is an invalid keyword argument for this function",)</pre></td>
2676 </tr>
2677
2678 <tr>
2679 <td>callback_args</td>
2680 <td class="code"><pre>()</pre></td>
2681 </tr>
2682
2683 <tr>
2684 <td>resolver_match</td>
2685 <td class="code"><pre>ResolverMatch(func=<function course at 0x7f00e4435230>, args=(), kwargs={}, url_name='course', app_name='None', namespace='api-edx')</pre></td>
2686 </tr>
2687
2688 <tr>
2689 <td>middleware_method</td>
2690 <td class="code"><pre><bound method SocialAuthExceptionMiddleware.process_exception of <npoed_sso_edx.middleware.SocialAuthExceptionMiddleware object at 0x7f00e4454a90>></pre></td>
2691 </tr>
2692
2693 <tr>
2694 <td>self</td>
2695 <td class="code"><pre><django.core.handlers.wsgi.WSGIHandler object at 0x7f00e7a94210></pre></td>
2696 </tr>
2697
2698 <tr>
2699 <td>request</td>
2700 <td class="code"><pre>"<WSGIRequest\npath:/api-edx/course/,\nGET:<QueryDict: {}>,\nPOST:<QueryDict: {}>,\nCOOKIES:{},\nMETA:{'CONTENT_LENGTH': '97',\n 'CONTENT_TYPE': 'application/json',\n u'CSRF_COOKIE': u'2WKt8mScvTLrPyzTkKuhOXv227CwBgxR',\n 'HTTP_ACCEPT': '*/*',\n 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',\n 'HTTP_CONNECTION': 'close',\n 'HTTP_HOST': 'sso-dev.icc.spbstu.ru',\n 'HTTP_USER_AGENT': 'python-requests/2.11.0',\n 'HTTP_X_FORWARDED_FOR': '127.0.0.1',\n 'HTTP_X_FORWARDED_PORT': '443',\n 'HTTP_X_FORWARDED_PROTO': 'https,https',\n 'HTTP_X_SSO_API_KEY': '12345',\n 'PATH_INFO': u'/api-edx/course/',\n 'QUERY_STRING': '',\n 'RAW_URI': '/api-edx/course/',\n 'REMOTE_ADDR': '127.0.0.1',\n 'REMOTE_PORT': '39935',\n 'REQUEST_METHOD': 'POST',\n 'SCRIPT_NAME': u'',\n 'SERVER_NAME': '127.0.0.1',\n 'SERVER_PORT': '18880',\n 'SERVER_PROTOCOL': 'HTTP/1.0',\n 'SERVER_SOFTWARE': 'gunicorn/19.3.0',\n 'gunicorn.socket': <socket._socketobject object at 0x7f00e43174b0>,\n 'wsgi.errors': <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f00e42fa8d0>,\n 'wsgi.file_wrapper': <class 'gunicorn.http.wsgi.FileWrapper'>,\n 'wsgi.input': <gunicorn.http.body.Body object at 0x7f00e42fa850>,\n 'wsgi.multiprocess': False,\n 'wsgi.multithread': True,\n 'wsgi.run_once': False,\n 'wsgi.url_scheme': 'https',\n 'wsgi.version': (1, 0)}>"</pre></td>
2701 </tr>
2702
2703 <tr>
2704 <td>callback</td>
2705 <td class="code"><pre><function course at 0x7f00e4435230></pre></td>
2706 </tr>
2707
2708 <tr>
2709 <td>wrapped_callback</td>
2710 <td class="code"><pre><function course at 0x7f00e4435230></pre></td>
2711 </tr>
2712
2713 <tr>
2714 <td>resolver</td>
2715 <td class="code"><pre><RegexURLResolver 'npoed_sso_edx.urls' (None:None) ^/></pre></td>
2716 </tr>
2717
2718 <tr>
2719 <td>callback_kwargs</td>
2720 <td class="code"><pre>{}</pre></td>
2721 </tr>
2722
2723 <tr>
2724 <td>response</td>
2725 <td class="code"><pre>None</pre></td>
2726 </tr>
2727
2728 <tr>
2729 <td>urlconf</td>
2730 <td class="code"><pre>'npoed_sso_edx.urls'</pre></td>
2731 </tr>
2732
2733 </tbody>
2734 </table>
2735
2736 </li>
2737
2738 <li class="frame django">
2739 <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/views/decorators/csrf.py</code> in <code>wrapped_view</code>
2740
2741
2742 <div class="context" id="c139641805895800">
2743
2744 <ol start="50" class="pre-context" id="pre139641805895800"><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> """</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> Marks a view function as being exempt from the CSRF view protection.</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> """</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> # We could just do view_func.csrf_exempt = True, but decorators</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> # are nicer if they don't have side-effects, so we return a new</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> # function.</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> def wrapped_view(*args, **kwargs):</pre></li></ol>
2745
2746 <ol start="57" class="context-line"><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> return view_func(*args, **kwargs)</pre> <span>...</span></li></ol>
2747
2748 <ol start='58' class="post-context" id="post139641805895800"><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> wrapped_view.csrf_exempt = True</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> return wraps(view_func, assigned=available_attrs(view_func))(wrapped_view)</pre></li></ol>
2749
2750 </div>
2751
2752
2753
2754 <div class="commands">
2755
2756 <a href="#" onclick="return varToggle(this, '139641805895800')"><span>▶</span> Local vars</a>
2757
2758 </div>
2759 <table class="vars" id="v139641805895800">
2760 <thead>
2761 <tr>
2762 <th>Variable</th>
2763 <th>Value</th>
2764 </tr>
2765 </thead>
2766 <tbody>
2767
2768 <tr>
2769 <td>args</td>
2770 <td class="code"><pre>(<WSGIRequest
2771path:/api-edx/course/,
2772GET:<QueryDict: {}>,
2773POST:<QueryDict: {}>,
2774COOKIES:{},
2775META:{'CONTENT_LENGTH': '97',
2776 'CONTENT_TYPE': 'application/json',
2777 u'CSRF_COOKIE': u'2WKt8mScvTLrPyzTkKuhOXv227CwBgxR',
2778 'HTTP_ACCEPT': '*/*',
2779 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
2780 'HTTP_CONNECTION': 'close',
2781 'HTTP_HOST': 'sso-dev.icc.spbstu.ru',
2782 'HTTP_USER_AGENT': 'python-requests/2.11.0',
2783 'HTTP_X_FORWARDED_FOR': '127.0.0.1',
2784 'HTTP_X_FORWARDED_PORT': '443',
2785 'HTTP_X_FORWARDED_PROTO': 'https,https',
2786 'HTTP_X_SSO_API_KEY': '12345',
2787 'PATH_INFO': u'/api-edx/course/',
2788 'QUERY_STRING': '',
2789 'RAW_URI': '/api-edx/course/',
2790 'REMOTE_ADDR': '127.0.0.1',
2791 'REMOTE_PORT': '39935',
2792 'REQUEST_METHOD': 'POST',
2793 'SCRIPT_NAME': u'',
2794 'SERVER_NAME': '127.0.0.1',
2795 'SERVER_PORT': '18880',
2796 'SERVER_PROTOCOL': 'HTTP/1.0',
2797 'SERVER_SOFTWARE': 'gunicorn/19.3.0',
2798 'gunicorn.socket': <socket._socketobject object at 0x7f00e43174b0>,
2799 'wsgi.errors': <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f00e42fa8d0>,
2800 'wsgi.file_wrapper': <class 'gunicorn.http.wsgi.FileWrapper'>,
2801 'wsgi.input': <gunicorn.http.body.Body object at 0x7f00e42fa850>,
2802 'wsgi.multiprocess': False,
2803 'wsgi.multithread': True,
2804 'wsgi.run_once': False,
2805 'wsgi.url_scheme': 'https',
2806 'wsgi.version': (1, 0)}>,)</pre></td>
2807 </tr>
2808
2809 <tr>
2810 <td>view_func</td>
2811 <td class="code"><pre><function course at 0x7f00e44351b8></pre></td>
2812 </tr>
2813
2814 <tr>
2815 <td>kwargs</td>
2816 <td class="code"><pre>{}</pre></td>
2817 </tr>
2818
2819 </tbody>
2820 </table>
2821
2822 </li>
2823
2824 <li class="frame django">
2825 <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/views/generic/base.py</code> in <code>view</code>
2826
2827
2828 <div class="context" id="c139641805896592">
2829
2830 <ol start="62" class="pre-context" id="pre139641805896592"><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> def view(request, *args, **kwargs):</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> self = cls(**initkwargs)</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> if hasattr(self, 'get') and not hasattr(self, 'head'):</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> self.head = self.get</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> self.request = request</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> self.args = args</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> self.kwargs = kwargs</pre></li></ol>
2831
2832 <ol start="69" class="context-line"><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> return self.dispatch(request, *args, **kwargs)</pre> <span>...</span></li></ol>
2833
2834 <ol start='70' class="post-context" id="post139641805896592"><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre></pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> # take name and docstring from class</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> update_wrapper(view, cls, updated=())</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre></pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> # and possible attributes set by decorators</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> # like csrf_exempt from dispatch</pre></li></ol>
2835
2836 </div>
2837
2838
2839
2840 <div class="commands">
2841
2842 <a href="#" onclick="return varToggle(this, '139641805896592')"><span>▶</span> Local vars</a>
2843
2844 </div>
2845 <table class="vars" id="v139641805896592">
2846 <thead>
2847 <tr>
2848 <th>Variable</th>
2849 <th>Value</th>
2850 </tr>
2851 </thead>
2852 <tbody>
2853
2854 <tr>
2855 <td>initkwargs</td>
2856 <td class="code"><pre>{}</pre></td>
2857 </tr>
2858
2859 <tr>
2860 <td>self</td>
2861 <td class="code"><pre><rest_framework.decorators.course object at 0x7f00e43af390></pre></td>
2862 </tr>
2863
2864 <tr>
2865 <td>args</td>
2866 <td class="code"><pre>()</pre></td>
2867 </tr>
2868
2869 <tr>
2870 <td>request</td>
2871 <td class="code"><pre>"<WSGIRequest\npath:/api-edx/course/,\nGET:<QueryDict: {}>,\nPOST:<QueryDict: {}>,\nCOOKIES:{},\nMETA:{'CONTENT_LENGTH': '97',\n 'CONTENT_TYPE': 'application/json',\n u'CSRF_COOKIE': u'2WKt8mScvTLrPyzTkKuhOXv227CwBgxR',\n 'HTTP_ACCEPT': '*/*',\n 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',\n 'HTTP_CONNECTION': 'close',\n 'HTTP_HOST': 'sso-dev.icc.spbstu.ru',\n 'HTTP_USER_AGENT': 'python-requests/2.11.0',\n 'HTTP_X_FORWARDED_FOR': '127.0.0.1',\n 'HTTP_X_FORWARDED_PORT': '443',\n 'HTTP_X_FORWARDED_PROTO': 'https,https',\n 'HTTP_X_SSO_API_KEY': '12345',\n 'PATH_INFO': u'/api-edx/course/',\n 'QUERY_STRING': '',\n 'RAW_URI': '/api-edx/course/',\n 'REMOTE_ADDR': '127.0.0.1',\n 'REMOTE_PORT': '39935',\n 'REQUEST_METHOD': 'POST',\n 'SCRIPT_NAME': u'',\n 'SERVER_NAME': '127.0.0.1',\n 'SERVER_PORT': '18880',\n 'SERVER_PROTOCOL': 'HTTP/1.0',\n 'SERVER_SOFTWARE': 'gunicorn/19.3.0',\n 'gunicorn.socket': <socket._socketobject object at 0x7f00e43174b0>,\n 'wsgi.errors': <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f00e42fa8d0>,\n 'wsgi.file_wrapper': <class 'gunicorn.http.wsgi.FileWrapper'>,\n 'wsgi.input': <gunicorn.http.body.Body object at 0x7f00e42fa850>,\n 'wsgi.multiprocess': False,\n 'wsgi.multithread': True,\n 'wsgi.run_once': False,\n 'wsgi.url_scheme': 'https',\n 'wsgi.version': (1, 0)}>"</pre></td>
2872 </tr>
2873
2874 <tr>
2875 <td>kwargs</td>
2876 <td class="code"><pre>{}</pre></td>
2877 </tr>
2878
2879 <tr>
2880 <td>cls</td>
2881 <td class="code"><pre><class 'rest_framework.decorators.course'></pre></td>
2882 </tr>
2883
2884 </tbody>
2885 </table>
2886
2887 </li>
2888
2889 <li class="frame user">
2890 <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/views.py</code> in <code>dispatch</code>
2891
2892
2893 <div class="context" id="c139641805895152">
2894
2895 <ol start="449" class="pre-context" id="pre139641805895152"><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> self.http_method_not_allowed)</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> else:</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> handler = self.http_method_not_allowed</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre></pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> response = handler(request, *args, **kwargs)</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre></pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> except Exception as exc:</pre></li></ol>
2896
2897 <ol start="456" class="context-line"><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> response = self.handle_exception(exc)</pre> <span>...</span></li></ol>
2898
2899 <ol start='457' class="post-context" id="post139641805895152"><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre></pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> self.response = self.finalize_response(request, response, *args, **kwargs)</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> return self.response</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre></pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> def options(self, request, *args, **kwargs):</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> """</pre></li></ol>
2900
2901 </div>
2902
2903
2904
2905 <div class="commands">
2906
2907 <a href="#" onclick="return varToggle(this, '139641805895152')"><span>▶</span> Local vars</a>
2908
2909 </div>
2910 <table class="vars" id="v139641805895152">
2911 <thead>
2912 <tr>
2913 <th>Variable</th>
2914 <th>Value</th>
2915 </tr>
2916 </thead>
2917 <tbody>
2918
2919 <tr>
2920 <td>exc</td>
2921 <td class="code"><pre>TypeError(u"'org' is an invalid keyword argument for this function",)</pre></td>
2922 </tr>
2923
2924 <tr>
2925 <td>self</td>
2926 <td class="code"><pre><rest_framework.decorators.course object at 0x7f00e43af390></pre></td>
2927 </tr>
2928
2929 <tr>
2930 <td>args</td>
2931 <td class="code"><pre>()</pre></td>
2932 </tr>
2933
2934 <tr>
2935 <td>request</td>
2936 <td class="code"><pre><rest_framework.request.Request object at 0x7f00e439a450></pre></td>
2937 </tr>
2938
2939 <tr>
2940 <td>handler</td>
2941 <td class="code"><pre><bound method course.handler of <rest_framework.decorators.course object at 0x7f00e43af390>></pre></td>
2942 </tr>
2943
2944 <tr>
2945 <td>kwargs</td>
2946 <td class="code"><pre>{}</pre></td>
2947 </tr>
2948
2949 </tbody>
2950 </table>
2951
2952 </li>
2953
2954 <li class="frame user">
2955 <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/views.py</code> in <code>dispatch</code>
2956
2957
2958 <div class="context" id="c139641805896736">
2959
2960 <ol start="446" class="pre-context" id="pre139641805896736"><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> # Get the appropriate handler method</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> if request.method.lower() in self.http_method_names:</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> handler = getattr(self, request.method.lower(),</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> self.http_method_not_allowed)</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> else:</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> handler = self.http_method_not_allowed</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre></pre></li></ol>
2961
2962 <ol start="453" class="context-line"><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> response = handler(request, *args, **kwargs)</pre> <span>...</span></li></ol>
2963
2964 <ol start='454' class="post-context" id="post139641805896736"><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre></pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> except Exception as exc:</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> response = self.handle_exception(exc)</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre></pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> self.response = self.finalize_response(request, response, *args, **kwargs)</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> return self.response</pre></li></ol>
2965
2966 </div>
2967
2968
2969
2970 <div class="commands">
2971
2972 <a href="#" onclick="return varToggle(this, '139641805896736')"><span>▶</span> Local vars</a>
2973
2974 </div>
2975 <table class="vars" id="v139641805896736">
2976 <thead>
2977 <tr>
2978 <th>Variable</th>
2979 <th>Value</th>
2980 </tr>
2981 </thead>
2982 <tbody>
2983
2984 <tr>
2985 <td>exc</td>
2986 <td class="code"><pre>TypeError(u"'org' is an invalid keyword argument for this function",)</pre></td>
2987 </tr>
2988
2989 <tr>
2990 <td>self</td>
2991 <td class="code"><pre><rest_framework.decorators.course object at 0x7f00e43af390></pre></td>
2992 </tr>
2993
2994 <tr>
2995 <td>args</td>
2996 <td class="code"><pre>()</pre></td>
2997 </tr>
2998
2999 <tr>
3000 <td>request</td>
3001 <td class="code"><pre><rest_framework.request.Request object at 0x7f00e439a450></pre></td>
3002 </tr>
3003
3004 <tr>
3005 <td>handler</td>
3006 <td class="code"><pre><bound method course.handler of <rest_framework.decorators.course object at 0x7f00e43af390>></pre></td>
3007 </tr>
3008
3009 <tr>
3010 <td>kwargs</td>
3011 <td class="code"><pre>{}</pre></td>
3012 </tr>
3013
3014 </tbody>
3015 </table>
3016
3017 </li>
3018
3019 <li class="frame user">
3020 <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/decorators.py</code> in <code>handler</code>
3021
3022
3023 <div class="context" id="c139641805852040">
3024
3025 <ol start="43" class="pre-context" id="pre139641805852040"><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> assert isinstance(http_method_names, (list, tuple)), \</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> '@api_view expected a list of strings, received %s' % type(http_method_names).__name__</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre></pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> allowed_methods = set(http_method_names) | set(('options',))</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> WrappedAPIView.http_method_names = [method.lower() for method in allowed_methods]</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre></pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> def handler(self, *args, **kwargs):</pre></li></ol>
3026
3027 <ol start="50" class="context-line"><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> return func(*args, **kwargs)</pre> <span>...</span></li></ol>
3028
3029 <ol start='51' class="post-context" id="post139641805852040"><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre></pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> for method in http_method_names:</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> setattr(WrappedAPIView, method.lower(), handler)</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre></pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> WrappedAPIView.__name__ = func.__name__</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre></pre></li></ol>
3030
3031 </div>
3032
3033
3034
3035 <div class="commands">
3036
3037 <a href="#" onclick="return varToggle(this, '139641805852040')"><span>▶</span> Local vars</a>
3038
3039 </div>
3040 <table class="vars" id="v139641805852040">
3041 <thead>
3042 <tr>
3043 <th>Variable</th>
3044 <th>Value</th>
3045 </tr>
3046 </thead>
3047 <tbody>
3048
3049 <tr>
3050 <td>self</td>
3051 <td class="code"><pre><rest_framework.decorators.course object at 0x7f00e43af390></pre></td>
3052 </tr>
3053
3054 <tr>
3055 <td>args</td>
3056 <td class="code"><pre>(<rest_framework.request.Request object at 0x7f00e439a450>,)</pre></td>
3057 </tr>
3058
3059 <tr>
3060 <td>func</td>
3061 <td class="code"><pre><function course at 0x7f00e4435140></pre></td>
3062 </tr>
3063
3064 <tr>
3065 <td>kwargs</td>
3066 <td class="code"><pre>{}</pre></td>
3067 </tr>
3068
3069 </tbody>
3070 </table>
3071
3072 </li>
3073
3074 <li class="frame user">
3075 <code>/edx/app/sso/npoed-sso-edx/apps/openedx_objects/views.py</code> in <code>course</code>
3076
3077
3078 <div class="context" id="c139641805906144">
3079
3080 <ol start="45" class="pre-context" id="pre139641805906144"><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> data['org'] = org_obj</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre></pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> if course_name is not None:</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> course_obj, course_created = EdxCourse.objects.update_or_create(name=course_name, org=org_obj)</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre></pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> if run_name is not None:</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> run_obj, run_created = EdxCourseRun.objects.update_or_create(name=run_name, course=course_obj,</pre></li></ol>
3081
3082 <ol start="52" class="context-line"><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> defaults=data)</pre> <span>...</span></li></ol>
3083
3084 <ol start='53' class="post-context" id="post139641805906144"><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> else:</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> run_obj, run_created = None, False</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre></pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> if course_created:</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> if not org_created:</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> api_course_create.send(course, obj=course_obj, request=request)</pre></li></ol>
3085
3086 </div>
3087
3088
3089
3090 <div class="commands">
3091
3092 <a href="#" onclick="return varToggle(this, '139641805906144')"><span>▶</span> Local vars</a>
3093
3094 </div>
3095 <table class="vars" id="v139641805906144">
3096 <thead>
3097 <tr>
3098 <th>Variable</th>
3099 <th>Value</th>
3100 </tr>
3101 </thead>
3102 <tbody>
3103
3104 <tr>
3105 <td>course_created</td>
3106 <td class="code"><pre>False</pre></td>
3107 </tr>
3108
3109 <tr>
3110 <td>org_name</td>
3111 <td class="code"><pre>u'itmo'</pre></td>
3112 </tr>
3113
3114 <tr>
3115 <td>course_obj</td>
3116 <td class="code"><pre><EdxCourse: new></pre></td>
3117 </tr>
3118
3119 <tr>
3120 <td>course_name</td>
3121 <td class="code"><pre>u'new'</pre></td>
3122 </tr>
3123
3124 <tr>
3125 <td>org_created</td>
3126 <td class="code"><pre>False</pre></td>
3127 </tr>
3128
3129 <tr>
3130 <td>request</td>
3131 <td class="code"><pre><rest_framework.request.Request object at 0x7f00e439a450></pre></td>
3132 </tr>
3133
3134 <tr>
3135 <td>org_obj</td>
3136 <td class="code"><pre><EdxOrg: itmo></pre></td>
3137 </tr>
3138
3139 <tr>
3140 <td>run_name</td>
3141 <td class="code"><pre>u'session_2'</pre></td>
3142 </tr>
3143
3144 <tr>
3145 <td>data</td>
3146 <td class="code"><pre>{'courserun_id': u'course-v1:itmo+new+session_2', 'org': <EdxOrg: itmo>}</pre></td>
3147 </tr>
3148
3149 </tbody>
3150 </table>
3151
3152 </li>
3153
3154 <li class="frame django">
3155 <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/manager.py</code> in <code>manager_method</code>
3156
3157
3158 <div class="context" id="c139641806107208">
3159
3160 <ol start="85" class="pre-context" id="pre139641806107208"><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> def check(self, **kwargs):</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> return []</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre></pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> @classmethod</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> def _get_queryset_methods(cls, queryset_class):</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> def create_method(name, method):</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> def manager_method(self, *args, **kwargs):</pre></li></ol>
3161
3162 <ol start="92" class="context-line"><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> return getattr(self.get_queryset(), name)(*args, **kwargs)</pre> <span>...</span></li></ol>
3163
3164 <ol start='93' class="post-context" id="post139641806107208"><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> manager_method.__name__ = method.__name__</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> manager_method.__doc__ = method.__doc__</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> return manager_method</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre></pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> new_methods = {}</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> # Refs http://bugs.python.org/issue1785.</pre></li></ol>
3165
3166 </div>
3167
3168
3169
3170 <div class="commands">
3171
3172 <a href="#" onclick="return varToggle(this, '139641806107208')"><span>▶</span> Local vars</a>
3173
3174 </div>
3175 <table class="vars" id="v139641806107208">
3176 <thead>
3177 <tr>
3178 <th>Variable</th>
3179 <th>Value</th>
3180 </tr>
3181 </thead>
3182 <tbody>
3183
3184 <tr>
3185 <td>self</td>
3186 <td class="code"><pre><django.db.models.manager.Manager object at 0x7f00e5380550></pre></td>
3187 </tr>
3188
3189 <tr>
3190 <td>args</td>
3191 <td class="code"><pre>()</pre></td>
3192 </tr>
3193
3194 <tr>
3195 <td>name</td>
3196 <td class="code"><pre>'update_or_create'</pre></td>
3197 </tr>
3198
3199 <tr>
3200 <td>kwargs</td>
3201 <td class="code"><pre>{'course': <EdxCourse: new>,
3202 'defaults': {'courserun_id': u'course-v1:itmo+new+session_2',
3203 'org': <EdxOrg: itmo>},
3204 'name': u'session_2'}</pre></td>
3205 </tr>
3206
3207 </tbody>
3208 </table>
3209
3210 </li>
3211
3212 <li class="frame django">
3213 <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/query.py</code> in <code>update_or_create</code>
3214
3215
3216 <div class="context" id="c139641805865760">
3217
3218 <ol start="432" class="pre-context" id="pre139641805865760"><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> """</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> defaults = defaults or {}</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> lookup, params = self._extract_model_params(defaults, **kwargs)</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> self._for_write = True</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> try:</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> obj = self.get(**lookup)</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> except self.model.DoesNotExist:</pre></li></ol>
3219
3220 <ol start="439" class="context-line"><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> obj, created = self._create_object_from_params(lookup, params)</pre> <span>...</span></li></ol>
3221
3222 <ol start='440' class="post-context" id="post139641805865760"><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> if created:</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> return obj, created</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> for k, v in six.iteritems(defaults):</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> setattr(obj, k, v)</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre></pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> with transaction.atomic(using=self.db):</pre></li></ol>
3223
3224 </div>
3225
3226
3227
3228 <div class="commands">
3229
3230 <a href="#" onclick="return varToggle(this, '139641805865760')"><span>▶</span> Local vars</a>
3231
3232 </div>
3233 <table class="vars" id="v139641805865760">
3234 <thead>
3235 <tr>
3236 <th>Variable</th>
3237 <th>Value</th>
3238 </tr>
3239 </thead>
3240 <tbody>
3241
3242 <tr>
3243 <td>params</td>
3244 <td class="code"><pre>{'course': <EdxCourse: new>,
3245 'courserun_id': u'course-v1:itmo+new+session_2',
3246 'name': u'session_2',
3247 'org': <EdxOrg: itmo>}</pre></td>
3248 </tr>
3249
3250 <tr>
3251 <td>self</td>
3252 <td class="code"><pre>[<EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, '...(remaining elements truncated)...']</pre></td>
3253 </tr>
3254
3255 <tr>
3256 <td>lookup</td>
3257 <td class="code"><pre>{'course': <EdxCourse: new>, 'name': u'session_2'}</pre></td>
3258 </tr>
3259
3260 <tr>
3261 <td>defaults</td>
3262 <td class="code"><pre>{'courserun_id': u'course-v1:itmo+new+session_2', 'org': <EdxOrg: itmo>}</pre></td>
3263 </tr>
3264
3265 <tr>
3266 <td>kwargs</td>
3267 <td class="code"><pre>{'course': <EdxCourse: new>, 'name': u'session_2'}</pre></td>
3268 </tr>
3269
3270 </tbody>
3271 </table>
3272
3273 </li>
3274
3275 <li class="frame django">
3276 <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/query.py</code> in <code>_create_object_from_params</code>
3277
3278
3279 <div class="context" id="c139641805867344">
3280
3281 <ol start="447" class="pre-context" id="pre139641805867344"><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> return obj, False</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre></pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> def _create_object_from_params(self, lookup, params):</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> """</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> Tries to create an object using passed params.</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> Used by get_or_create and update_or_create</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> """</pre></li></ol>
3282
3283 <ol start="454" class="context-line"><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> obj = self.model(**params)</pre> <span>...</span></li></ol>
3284
3285 <ol start='455' class="post-context" id="post139641805867344"><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> try:</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> with transaction.atomic(using=self.db):</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> obj.save(force_insert=True, using=self.db)</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> return obj, True</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> except IntegrityError:</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> exc_info = sys.exc_info()</pre></li></ol>
3286
3287 </div>
3288
3289
3290
3291 <div class="commands">
3292
3293 <a href="#" onclick="return varToggle(this, '139641805867344')"><span>▶</span> Local vars</a>
3294
3295 </div>
3296 <table class="vars" id="v139641805867344">
3297 <thead>
3298 <tr>
3299 <th>Variable</th>
3300 <th>Value</th>
3301 </tr>
3302 </thead>
3303 <tbody>
3304
3305 <tr>
3306 <td>params</td>
3307 <td class="code"><pre>{'course': <EdxCourse: new>,
3308 'courserun_id': u'course-v1:itmo+new+session_2',
3309 'name': u'session_2',
3310 'org': <EdxOrg: itmo>}</pre></td>
3311 </tr>
3312
3313 <tr>
3314 <td>self</td>
3315 <td class="code"><pre>[<EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, '...(remaining elements truncated)...']</pre></td>
3316 </tr>
3317
3318 <tr>
3319 <td>lookup</td>
3320 <td class="code"><pre>{'course': <EdxCourse: new>, 'name': u'session_2'}</pre></td>
3321 </tr>
3322
3323 </tbody>
3324 </table>
3325
3326 </li>
3327
3328 <li class="frame django">
3329 <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/base.py</code> in <code>__init__</code>
3330
3331
3332 <div class="context" id="c139641805907584">
3333
3334 <ol start="445" class="pre-context" id="pre139641805907584"><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> for prop in list(kwargs):</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> try:</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> if isinstance(getattr(self.__class__, prop), property):</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> setattr(self, prop, kwargs.pop(prop))</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> except AttributeError:</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> pass</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> if kwargs:</pre></li></ol>
3335
3336 <ol start="452" class="context-line"><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> raise TypeError("'%s' is an invalid keyword argument for this function" % list(kwargs)[0])</pre> <span>...</span></li></ol>
3337
3338 <ol start='453' class="post-context" id="post139641805907584"><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> super(Model, self).__init__()</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> signals.post_init.send(sender=self.__class__, instance=self)</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre></pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> def __repr__(self):</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> try:</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> u = six.text_type(self)</pre></li></ol>
3339
3340 </div>
3341
3342
3343
3344 <div class="commands">
3345
3346 <a href="#" onclick="return varToggle(this, '139641805907584')"><span>▶</span> Local vars</a>
3347
3348 </div>
3349 <table class="vars" id="v139641805907584">
3350 <thead>
3351 <tr>
3352 <th>Variable</th>
3353 <th>Value</th>
3354 </tr>
3355 </thead>
3356 <tbody>
3357
3358 <tr>
3359 <td>rel_obj</td>
3360 <td class="code"><pre><EdxCourse: new></pre></td>
3361 </tr>
3362
3363 <tr>
3364 <td>fields_iter</td>
3365 <td class="code"><pre><listiterator object at 0x7f00e4354650></pre></td>
3366 </tr>
3367
3368 <tr>
3369 <td>val</td>
3370 <td class="code"><pre>None</pre></td>
3371 </tr>
3372
3373 <tr>
3374 <td>args_len</td>
3375 <td class="code"><pre>0</pre></td>
3376 </tr>
3377
3378 <tr>
3379 <td>self</td>
3380 <td class="code"><pre><EdxCourseRun: session_2></pre></td>
3381 </tr>
3382
3383 <tr>
3384 <td>args</td>
3385 <td class="code"><pre>()</pre></td>
3386 </tr>
3387
3388 <tr>
3389 <td>is_related_object</td>
3390 <td class="code"><pre>True</pre></td>
3391 </tr>
3392
3393 <tr>
3394 <td>field</td>
3395 <td class="code"><pre><django.db.models.fields.related.ForeignKey: course></pre></td>
3396 </tr>
3397
3398 <tr>
3399 <td>kwargs</td>
3400 <td class="code"><pre>{'org': <EdxOrg: itmo>}</pre></td>
3401 </tr>
3402
3403 <tr>
3404 <td>prop</td>
3405 <td class="code"><pre>'org'</pre></td>
3406 </tr>
3407
3408 </tbody>
3409 </table>
3410
3411 </li>
3412
3413 </ul>
3414 </div>
3415
3416 <form action="http://dpaste.com/" name="pasteform" id="pasteform" method="post">
3417
3418 <div id="pastebinTraceback" class="pastebin">
3419 <input type="hidden" name="language" value="PythonConsole">
3420 <input type="hidden" name="title" value="TypeError at /api-edx/course/">
3421 <input type="hidden" name="source" value="Django Dpaste Agent">
3422 <input type="hidden" name="poster" value="Django">
3423 <textarea name="content" id="traceback_area" cols="140" rows="25">
3424Environment:
3425
3426
3427Request Method: POST
3428Request URL: https://sso-dev.icc.spbstu.ru/api-edx/course/
3429
3430Django Version: 1.7.10
3431Python Version: 2.7.10
3432Installed Applications:
3433('django.contrib.admin',
3434 'django.contrib.auth',
3435 'django.contrib.sites',
3436 'registration',
3437 'django.contrib.contenttypes',
3438 'django.contrib.sessions',
3439 'django.contrib.messages',
3440 'django.contrib.staticfiles',
3441 'rest_framework',
3442 'rest_framework.authtoken',
3443 'provider',
3444 'provider.oauth2',
3445 'oauth2_provider',
3446 'gunicorn',
3447 'social.apps.django_app.default',
3448 'django_countries',
3449 'apps.core',
3450 'apps.profiler',
3451 'apps.permissions',
3452 'apps.openedx_objects',
3453 'apps.utm_tracker',
3454 'django_jenkins',
3455 'sslserver',
3456 'simple_history',
3457 'storages')
3458Installed Middleware:
3459('django.contrib.sessions.middleware.SessionMiddleware',
3460 'django.middleware.locale.LocaleMiddleware',
3461 'django.middleware.common.CommonMiddleware',
3462 'django.middleware.csrf.CsrfViewMiddleware',
3463 'django.contrib.auth.middleware.AuthenticationMiddleware',
3464 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
3465 'django.contrib.messages.middleware.MessageMiddleware',
3466 'django.middleware.clickjacking.XFrameOptionsMiddleware',
3467 'npoed_sso_edx.middleware.SocialAuthExceptionMiddleware',
3468 'apps.utm_tracker.middleware.UTMTrackingMiddleware')
3469
3470
3471Traceback:
3472File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
3473 111. response = wrapped_callback(request, *callback_args, **callback_kwargs)
3474File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/views/decorators/csrf.py" in wrapped_view
3475 57. return view_func(*args, **kwargs)
3476File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/views/generic/base.py" in view
3477 69. return self.dispatch(request, *args, **kwargs)
3478File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/views.py" in dispatch
3479 456. response = self.handle_exception(exc)
3480File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/views.py" in dispatch
3481 453. response = handler(request, *args, **kwargs)
3482File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/decorators.py" in handler
3483 50. return func(*args, **kwargs)
3484File "/edx/app/sso/npoed-sso-edx/apps/openedx_objects/views.py" in course
3485 52. defaults=data)
3486File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/manager.py" in manager_method
3487 92. return getattr(self.get_queryset(), name)(*args, **kwargs)
3488File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/query.py" in update_or_create
3489 439. obj, created = self._create_object_from_params(lookup, params)
3490File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/query.py" in _create_object_from_params
3491 454. obj = self.model(**params)
3492File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/base.py" in __init__
3493 452. raise TypeError("'%s' is an invalid keyword argument for this function" % list(kwargs)[0])
3494
3495Exception Type: TypeError at /api-edx/course/
3496Exception Value: 'org' is an invalid keyword argument for this function
3497</textarea>
3498 <br><br>
3499 <input type="submit" value="Share this traceback on a public Web site">
3500 </div>
3501</form>
3502</div>
3503
3504
3505
3506<div id="requestinfo">
3507 <h2>Request information</h2>
3508
3509
3510 <h3 id="get-info">GET</h3>
3511
3512 <p>No GET data</p>
3513
3514
3515 <h3 id="post-info">POST</h3>
3516
3517 <p>No POST data</p>
3518
3519 <h3 id="files-info">FILES</h3>
3520
3521 <p>No FILES data</p>
3522
3523
3524
3525 <h3 id="cookie-info">COOKIES</h3>
3526
3527 <p>No cookie data</p>
3528
3529
3530 <h3 id="meta-info">META</h3>
3531 <table class="req">
3532 <thead>
3533 <tr>
3534 <th>Variable</th>
3535 <th>Value</th>
3536 </tr>
3537 </thead>
3538 <tbody>
3539
3540 <tr>
3541 <td>SERVER_SOFTWARE</td>
3542 <td class="code"><pre>'gunicorn/19.3.0'</pre></td>
3543 </tr>
3544
3545 <tr>
3546 <td>SCRIPT_NAME</td>
3547 <td class="code"><pre>u''</pre></td>
3548 </tr>
3549
3550 <tr>
3551 <td>HTTP_X_SSO_API_KEY</td>
3552 <td class="code"><pre>'12345'</pre></td>
3553 </tr>
3554
3555 <tr>
3556 <td>HTTP_X_FORWARDED_PORT</td>
3557 <td class="code"><pre>'443'</pre></td>
3558 </tr>
3559
3560 <tr>
3561 <td>PATH_INFO</td>
3562 <td class="code"><pre>u'/api-edx/course/'</pre></td>
3563 </tr>
3564
3565 <tr>
3566 <td>SERVER_PROTOCOL</td>
3567 <td class="code"><pre>'HTTP/1.0'</pre></td>
3568 </tr>
3569
3570 <tr>
3571 <td>QUERY_STRING</td>
3572 <td class="code"><pre>''</pre></td>
3573 </tr>
3574
3575 <tr>
3576 <td>CONTENT_LENGTH</td>
3577 <td class="code"><pre>'97'</pre></td>
3578 </tr>
3579
3580 <tr>
3581 <td>HTTP_USER_AGENT</td>
3582 <td class="code"><pre>'python-requests/2.11.0'</pre></td>
3583 </tr>
3584
3585 <tr>
3586 <td>HTTP_CONNECTION</td>
3587 <td class="code"><pre>'close'</pre></td>
3588 </tr>
3589
3590 <tr>
3591 <td>REMOTE_PORT</td>
3592 <td class="code"><pre>'39935'</pre></td>
3593 </tr>
3594
3595 <tr>
3596 <td>SERVER_NAME</td>
3597 <td class="code"><pre>'127.0.0.1'</pre></td>
3598 </tr>
3599
3600 <tr>
3601 <td>REMOTE_ADDR</td>
3602 <td class="code"><pre>'127.0.0.1'</pre></td>
3603 </tr>
3604
3605 <tr>
3606 <td>wsgi.url_scheme</td>
3607 <td class="code"><pre>'https'</pre></td>
3608 </tr>
3609
3610 <tr>
3611 <td>SERVER_PORT</td>
3612 <td class="code"><pre>'18880'</pre></td>
3613 </tr>
3614
3615 <tr>
3616 <td>HTTP_X_FORWARDED_PROTO</td>
3617 <td class="code"><pre>'https,https'</pre></td>
3618 </tr>
3619
3620 <tr>
3621 <td>wsgi.input</td>
3622 <td class="code"><pre><gunicorn.http.body.Body object at 0x7f00e42fa850></pre></td>
3623 </tr>
3624
3625 <tr>
3626 <td>HTTP_HOST</td>
3627 <td class="code"><pre>'sso-dev.icc.spbstu.ru'</pre></td>
3628 </tr>
3629
3630 <tr>
3631 <td>wsgi.multithread</td>
3632 <td class="code"><pre>True</pre></td>
3633 </tr>
3634
3635 <tr>
3636 <td>HTTP_ACCEPT</td>
3637 <td class="code"><pre>'*/*'</pre></td>
3638 </tr>
3639
3640 <tr>
3641 <td>wsgi.version</td>
3642 <td class="code"><pre>(1, 0)</pre></td>
3643 </tr>
3644
3645 <tr>
3646 <td>RAW_URI</td>
3647 <td class="code"><pre>'/api-edx/course/'</pre></td>
3648 </tr>
3649
3650 <tr>
3651 <td>wsgi.run_once</td>
3652 <td class="code"><pre>False</pre></td>
3653 </tr>
3654
3655 <tr>
3656 <td>wsgi.errors</td>
3657 <td class="code"><pre><gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f00e42fa8d0></pre></td>
3658 </tr>
3659
3660 <tr>
3661 <td>wsgi.multiprocess</td>
3662 <td class="code"><pre>False</pre></td>
3663 </tr>
3664
3665 <tr>
3666 <td>gunicorn.socket</td>
3667 <td class="code"><pre><socket._socketobject object at 0x7f00e43174b0></pre></td>
3668 </tr>
3669
3670 <tr>
3671 <td>REQUEST_METHOD</td>
3672 <td class="code"><pre>'POST'</pre></td>
3673 </tr>
3674
3675 <tr>
3676 <td>CONTENT_TYPE</td>
3677 <td class="code"><pre>'application/json'</pre></td>
3678 </tr>
3679
3680 <tr>
3681 <td>HTTP_X_FORWARDED_FOR</td>
3682 <td class="code"><pre>'127.0.0.1'</pre></td>
3683 </tr>
3684
3685 <tr>
3686 <td>wsgi.file_wrapper</td>
3687 <td class="code"><pre>''</pre></td>
3688 </tr>
3689
3690 <tr>
3691 <td>CSRF_COOKIE</td>
3692 <td class="code"><pre>u'2WKt8mScvTLrPyzTkKuhOXv227CwBgxR'</pre></td>
3693 </tr>
3694
3695 <tr>
3696 <td>HTTP_ACCEPT_ENCODING</td>
3697 <td class="code"><pre>'gzip, deflate'</pre></td>
3698 </tr>
3699
3700 </tbody>
3701 </table>
3702
3703
3704 <h3 id="settings-info">Settings</h3>
3705 <h4>Using settings module <code>npoed_sso_edx.settings</code></h4>
3706 <table class="req">
3707 <thead>
3708 <tr>
3709 <th>Setting</th>
3710 <th>Value</th>
3711 </tr>
3712 </thead>
3713 <tbody>
3714
3715 <tr>
3716 <td>SOCIAL_AUTH_LOGIN_ERROR_URL</td>
3717 <td class="code"><pre>'/login'</pre></td>
3718 </tr>
3719
3720 <tr>
3721 <td>SOCIAL_ACCOUNT_TWITTER</td>
3722 <td class="code"><pre>'https://twitter.com/openeduRU'</pre></td>
3723 </tr>
3724
3725 <tr>
3726 <td>SOCIAL_AUTH_COMMUNITY_NPOED_SECRET</td>
3727 <td class="code"><pre>u'********************'</pre></td>
3728 </tr>
3729
3730 <tr>
3731 <td>SOCIAL_AUTH_FACEBOOK_SCOPE</td>
3732 <td class="code"><pre>['email']</pre></td>
3733 </tr>
3734
3735 <tr>
3736 <td>USE_L10N</td>
3737 <td class="code"><pre>True</pre></td>
3738 </tr>
3739
3740 <tr>
3741 <td>SOCIAL_AUTH_TWITTER_SECRET</td>
3742 <td class="code"><pre>u'********************'</pre></td>
3743 </tr>
3744
3745 <tr>
3746 <td>CSRF_COOKIE_SECURE</td>
3747 <td class="code"><pre>False</pre></td>
3748 </tr>
3749
3750 <tr>
3751 <td>SOCIAL_AUTH_MAILRU_OAUTH2_SECRET</td>
3752 <td class="code"><pre>u'********************'</pre></td>
3753 </tr>
3754
3755 <tr>
3756 <td>LANGUAGE_CODE</td>
3757 <td class="code"><pre>'ru'</pre></td>
3758 </tr>
3759
3760 <tr>
3761 <td>ROOT_URLCONF</td>
3762 <td class="code"><pre>'npoed_sso_edx.urls'</pre></td>
3763 </tr>
3764
3765 <tr>
3766 <td>MANAGERS</td>
3767 <td class="code"><pre>()</pre></td>
3768 </tr>
3769
3770 <tr>
3771 <td>TEMPLATE_LOADERS</td>
3772 <td class="code"><pre>('django.template.loaders.filesystem.Loader',
3773 'django.template.loaders.app_directories.Loader')</pre></td>
3774 </tr>
3775
3776 <tr>
3777 <td>BASE_DIR</td>
3778 <td class="code"><pre>'/edx/app/sso/npoed-sso-edx'</pre></td>
3779 </tr>
3780
3781 <tr>
3782 <td>TEST_NON_SERIALIZED_APPS</td>
3783 <td class="code"><pre>[]</pre></td>
3784 </tr>
3785
3786 <tr>
3787 <td>ACCOUNT_ACTIVATION_DAYS</td>
3788 <td class="code"><pre>7</pre></td>
3789 </tr>
3790
3791 <tr>
3792 <td>SESSION_SERIALIZER</td>
3793 <td class="code"><pre>'django.contrib.sessions.serializers.JSONSerializer'</pre></td>
3794 </tr>
3795
3796 <tr>
3797 <td>STATIC_ROOT</td>
3798 <td class="code"><pre>'/edx/app/sso/npoed-sso-edx/static_col'</pre></td>
3799 </tr>
3800
3801 <tr>
3802 <td>SET_COOKIE_DOMAIN</td>
3803 <td class="code"><pre>'.icc.spbstu.ru'</pre></td>
3804 </tr>
3805
3806 <tr>
3807 <td>USE_THOUSAND_SEPARATOR</td>
3808 <td class="code"><pre>False</pre></td>
3809 </tr>
3810
3811 <tr>
3812 <td>REXP_USERNAME</td>
3813 <td class="code"><pre>'^[-a-zA-Z0-9_]+$'</pre></td>
3814 </tr>
3815
3816 <tr>
3817 <td>EDX_CRETEUSER_URL</td>
3818 <td class="code"><pre>'https://studio-dev.icc.spbstu.ru/auth/complete/sso_npoed_cms-oauth2/'</pre></td>
3819 </tr>
3820
3821 <tr>
3822 <td>SOCIAL_AUTH_ASSOCIATE_URL_NAME</td>
3823 <td class="code"><pre>'socialauth_associate_complete'</pre></td>
3824 </tr>
3825
3826 <tr>
3827 <td>SOCIAL_ACCOUNT_FACEBOOK</td>
3828 <td class="code"><pre>'https://www.facebook.com/openeduRU'</pre></td>
3829 </tr>
3830
3831 <tr>
3832 <td>ALLOWED_HOSTS</td>
3833 <td class="code"><pre>['*']</pre></td>
3834 </tr>
3835
3836 <tr>
3837 <td>SOCIAL_AUTH_EMAIL_VALIDATION_FUNCTION</td>
3838 <td class="code"><pre>'apps.profiler.email.send_validation'</pre></td>
3839 </tr>
3840
3841 <tr>
3842 <td>MESSAGE_STORAGE</td>
3843 <td class="code"><pre>'django.contrib.messages.storage.fallback.FallbackStorage'</pre></td>
3844 </tr>
3845
3846 <tr>
3847 <td>EMAIL_SUBJECT_PREFIX</td>
3848 <td class="code"><pre>'[Django] '</pre></td>
3849 </tr>
3850
3851 <tr>
3852 <td>SEND_BROKEN_LINK_EMAILS</td>
3853 <td class="code"><pre>False</pre></td>
3854 </tr>
3855
3856 <tr>
3857 <td>SOCIAL_AUTH_REDIRECT_IS_HTTPS</td>
3858 <td class="code"><pre>True</pre></td>
3859 </tr>
3860
3861 <tr>
3862 <td>STATICFILES_FINDERS</td>
3863 <td class="code"><pre>('django.contrib.staticfiles.finders.FileSystemFinder',
3864 'django.contrib.staticfiles.finders.AppDirectoriesFinder')</pre></td>
3865 </tr>
3866
3867 <tr>
3868 <td>EMAIL_NOTIFICATIONS_FROM</td>
3869 <td class="code"><pre>('Open education', 'polyana.web@yandex.ru')</pre></td>
3870 </tr>
3871
3872 <tr>
3873 <td>SESSION_CACHE_ALIAS</td>
3874 <td class="code"><pre>'default'</pre></td>
3875 </tr>
3876
3877 <tr>
3878 <td>SESSION_COOKIE_DOMAIN</td>
3879 <td class="code"><pre>None</pre></td>
3880 </tr>
3881
3882 <tr>
3883 <td>SESSION_COOKIE_NAME</td>
3884 <td class="code"><pre>'sessionid'</pre></td>
3885 </tr>
3886
3887 <tr>
3888 <td>ADMIN_FOR</td>
3889 <td class="code"><pre>()</pre></td>
3890 </tr>
3891
3892 <tr>
3893 <td>TIME_INPUT_FORMATS</td>
3894 <td class="code"><pre>('%H:%M:%S', '%H:%M:%S.%f', '%H:%M')</pre></td>
3895 </tr>
3896
3897 <tr>
3898 <td>DATABASES</td>
3899 <td class="code"><pre>{'default': {'ATOMIC_REQUESTS': False,
3900 'AUTOCOMMIT': True,
3901 'CONN_MAX_AGE': 0,
3902 'ENGINE': 'django.db.backends.mysql',
3903 'HOST': '192.168.1.71',
3904 'NAME': 'sso',
3905 'OPTIONS': {},
3906 'PASSWORD': u'********************',
3907 'PORT': '3306',
3908 'TEST': {'CHARSET': None,
3909 'COLLATION': None,
3910 'MIRROR': None,
3911 'NAME': None},
3912 'TIME_ZONE': 'UTC',
3913 'USER': 'sso'}}</pre></td>
3914 </tr>
3915
3916 <tr>
3917 <td>FILE_UPLOAD_DIRECTORY_PERMISSIONS</td>
3918 <td class="code"><pre>None</pre></td>
3919 </tr>
3920
3921 <tr>
3922 <td>SOCIAL_AUTH_USERNAME_FORM_HTML</td>
3923 <td class="code"><pre>'username_signup.html'</pre></td>
3924 </tr>
3925
3926 <tr>
3927 <td>FILE_UPLOAD_PERMISSIONS</td>
3928 <td class="code"><pre>None</pre></td>
3929 </tr>
3930
3931 <tr>
3932 <td>SOCIAL_AUTH_SLUGIFY_FUNCTION</td>
3933 <td class="code"><pre>'apps.core.utils.slugify'</pre></td>
3934 </tr>
3935
3936 <tr>
3937 <td>FILE_UPLOAD_HANDLERS</td>
3938 <td class="code"><pre>('django.core.files.uploadhandler.MemoryFileUploadHandler',
3939 'django.core.files.uploadhandler.TemporaryFileUploadHandler')</pre></td>
3940 </tr>
3941
3942 <tr>
3943 <td>DEFAULT_CONTENT_TYPE</td>
3944 <td class="code"><pre>'text/html'</pre></td>
3945 </tr>
3946
3947 <tr>
3948 <td>SOCIAL_AUTH_FORCE_EMAIL_VALIDATION</td>
3949 <td class="code"><pre>True</pre></td>
3950 </tr>
3951
3952 <tr>
3953 <td>APPEND_SLASH</td>
3954 <td class="code"><pre>True</pre></td>
3955 </tr>
3956
3957 <tr>
3958 <td>FIRST_DAY_OF_WEEK</td>
3959 <td class="code"><pre>0</pre></td>
3960 </tr>
3961
3962 <tr>
3963 <td>DATABASE_ROUTERS</td>
3964 <td class="code"><pre>[]</pre></td>
3965 </tr>
3966
3967 <tr>
3968 <td>EDX_API_LOGIN_URL</td>
3969 <td class="code"><pre>u'********************'</pre></td>
3970 </tr>
3971
3972 <tr>
3973 <td>SOCIAL_AUTH_FACEBOOK_KEY</td>
3974 <td class="code"><pre>u'********************'</pre></td>
3975 </tr>
3976
3977 <tr>
3978 <td>YEAR_MONTH_FORMAT</td>
3979 <td class="code"><pre>'F Y'</pre></td>
3980 </tr>
3981
3982 <tr>
3983 <td>SOCIAL_AUTH_ASSOCIATE_BY_EMAIL</td>
3984 <td class="code"><pre>True</pre></td>
3985 </tr>
3986
3987 <tr>
3988 <td>STATICFILES_STORAGE</td>
3989 <td class="code"><pre>'django.contrib.staticfiles.storage.StaticFilesStorage'</pre></td>
3990 </tr>
3991
3992 <tr>
3993 <td>CACHES</td>
3994 <td class="code"><pre>{'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}</pre></td>
3995 </tr>
3996
3997 <tr>
3998 <td>SERVER_EMAIL</td>
3999 <td class="code"><pre>'polyana.web@yandex.ru'</pre></td>
4000 </tr>
4001
4002 <tr>
4003 <td>SESSION_COOKIE_PATH</td>
4004 <td class="code"><pre>'/'</pre></td>
4005 </tr>
4006
4007 <tr>
4008 <td>SILENCED_SYSTEM_CHECKS</td>
4009 <td class="code"><pre>[]</pre></td>
4010 </tr>
4011
4012 <tr>
4013 <td>MIDDLEWARE_CLASSES</td>
4014 <td class="code"><pre>('django.contrib.sessions.middleware.SessionMiddleware',
4015 'django.middleware.locale.LocaleMiddleware',
4016 'django.middleware.common.CommonMiddleware',
4017 'django.middleware.csrf.CsrfViewMiddleware',
4018 'django.contrib.auth.middleware.AuthenticationMiddleware',
4019 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
4020 'django.contrib.messages.middleware.MessageMiddleware',
4021 'django.middleware.clickjacking.XFrameOptionsMiddleware',
4022 'npoed_sso_edx.middleware.SocialAuthExceptionMiddleware',
4023 'apps.utm_tracker.middleware.UTMTrackingMiddleware')</pre></td>
4024 </tr>
4025
4026 <tr>
4027 <td>EMAIL_TAG</td>
4028 <td class="code"><pre>u'Npoed'</pre></td>
4029 </tr>
4030
4031 <tr>
4032 <td>THOUSAND_SEPARATOR</td>
4033 <td class="code"><pre>','</pre></td>
4034 </tr>
4035
4036 <tr>
4037 <td>SECRET_KEY</td>
4038 <td class="code"><pre>u'********************'</pre></td>
4039 </tr>
4040
4041 <tr>
4042 <td>MAX_AVATAR_UPLOAD_SIZE</td>
4043 <td class="code"><pre>6291456</pre></td>
4044 </tr>
4045
4046 <tr>
4047 <td>MIN_LENGTH_PASSWORD</td>
4048 <td class="code"><pre>u'********************'</pre></td>
4049 </tr>
4050
4051 <tr>
4052 <td>LANGUAGE_COOKIE_NAME</td>
4053 <td class="code"><pre>'django_language'</pre></td>
4054 </tr>
4055
4056 <tr>
4057 <td>FILE_UPLOAD_TEMP_DIR</td>
4058 <td class="code"><pre>None</pre></td>
4059 </tr>
4060
4061 <tr>
4062 <td>DEFAULT_TABLESPACE</td>
4063 <td class="code"><pre>''</pre></td>
4064 </tr>
4065
4066 <tr>
4067 <td>TRANSACTIONS_MANAGED</td>
4068 <td class="code"><pre>False</pre></td>
4069 </tr>
4070
4071 <tr>
4072 <td>LOGGING_CONFIG</td>
4073 <td class="code"><pre>'logging.config.dictConfig'</pre></td>
4074 </tr>
4075
4076 <tr>
4077 <td>SIGNING_BACKEND</td>
4078 <td class="code"><pre>'django.core.signing.TimestampSigner'</pre></td>
4079 </tr>
4080
4081 <tr>
4082 <td>SOCIAL_AUTH_PIPELINE</td>
4083 <td class="code"><pre>('social.pipeline.social_auth.social_details',
4084 'social.pipeline.social_auth.social_uid',
4085 'social.pipeline.social_auth.auth_allowed',
4086 'social.pipeline.social_auth.social_user',
4087 'social.pipeline.user.get_username',
4088 'apps.profiler.pipeline.get_username',
4089 'apps.profiler.pipeline.require_email',
4090 'apps.profiler.pipeline.mail_validation',
4091 'social.pipeline.social_auth.associate_by_email',
4092 'social.pipeline.user.create_user',
4093 'social.pipeline.social_auth.associate_user',
4094 'social.pipeline.social_auth.load_extra_data',
4095 'social.pipeline.user.user_details',
4096 'apps.profiler.pipeline.update_profile')</pre></td>
4097 </tr>
4098
4099 <tr>
4100 <td>LOGIN_ERROR_URL</td>
4101 <td class="code"><pre>'/login'</pre></td>
4102 </tr>
4103
4104 <tr>
4105 <td>SOCIAL_AUTH_FACEBOOK_SECRET</td>
4106 <td class="code"><pre>u'********************'</pre></td>
4107 </tr>
4108
4109 <tr>
4110 <td>EDX_COURSES_API</td>
4111 <td class="code"><pre>u'********************'</pre></td>
4112 </tr>
4113
4114 <tr>
4115 <td>WSGI_APPLICATION</td>
4116 <td class="code"><pre>'npoed_sso_edx.wsgi.application'</pre></td>
4117 </tr>
4118
4119 <tr>
4120 <td>TEMPLATE_DEBUG</td>
4121 <td class="code"><pre>True</pre></td>
4122 </tr>
4123
4124 <tr>
4125 <td>X_FRAME_OPTIONS</td>
4126 <td class="code"><pre>'SAMEORIGIN'</pre></td>
4127 </tr>
4128
4129 <tr>
4130 <td>CSRF_COOKIE_NAME</td>
4131 <td class="code"><pre>'csrftoken'</pre></td>
4132 </tr>
4133
4134 <tr>
4135 <td>SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET</td>
4136 <td class="code"><pre>u'********************'</pre></td>
4137 </tr>
4138
4139 <tr>
4140 <td>SOCIAL_AUTH_EMAIL_VALIDATION_URL</td>
4141 <td class="code"><pre>'/email-sent/'</pre></td>
4142 </tr>
4143
4144 <tr>
4145 <td>FORCE_SCRIPT_NAME</td>
4146 <td class="code"><pre>None</pre></td>
4147 </tr>
4148
4149 <tr>
4150 <td>USE_X_FORWARDED_HOST</td>
4151 <td class="code"><pre>False</pre></td>
4152 </tr>
4153
4154 <tr>
4155 <td>DEFAULT_CHARSET</td>
4156 <td class="code"><pre>'utf-8'</pre></td>
4157 </tr>
4158
4159 <tr>
4160 <td>SESSION_COOKIE_SECURE</td>
4161 <td class="code"><pre>False</pre></td>
4162 </tr>
4163
4164 <tr>
4165 <td>SOCIAL_AUTH_COMMUNITY_NPOED_KEY</td>
4166 <td class="code"><pre>u'********************'</pre></td>
4167 </tr>
4168
4169 <tr>
4170 <td>EDX_LIBRARIES_API</td>
4171 <td class="code"><pre>u'********************'</pre></td>
4172 </tr>
4173
4174 <tr>
4175 <td>CSRF_COOKIE_DOMAIN</td>
4176 <td class="code"><pre>None</pre></td>
4177 </tr>
4178
4179 <tr>
4180 <td>FILE_CHARSET</td>
4181 <td class="code"><pre>'utf-8'</pre></td>
4182 </tr>
4183
4184 <tr>
4185 <td>DEBUG</td>
4186 <td class="code"><pre>True</pre></td>
4187 </tr>
4188
4189 <tr>
4190 <td>LANGUAGE_COOKIE_DOMAIN</td>
4191 <td class="code"><pre>None</pre></td>
4192 </tr>
4193
4194 <tr>
4195 <td>DEFAULT_FILE_STORAGE</td>
4196 <td class="code"><pre>'django.core.files.storage.FileSystemStorage'</pre></td>
4197 </tr>
4198
4199 <tr>
4200 <td>INSTALLED_APPS</td>
4201 <td class="code"><pre>('django.contrib.admin',
4202 'django.contrib.auth',
4203 'django.contrib.sites',
4204 'registration',
4205 'django.contrib.contenttypes',
4206 'django.contrib.sessions',
4207 'django.contrib.messages',
4208 'django.contrib.staticfiles',
4209 'rest_framework',
4210 'rest_framework.authtoken',
4211 'provider',
4212 'provider.oauth2',
4213 'oauth2_provider',
4214 'gunicorn',
4215 'social.apps.django_app.default',
4216 'django_countries',
4217 'apps.core',
4218 'apps.profiler',
4219 'apps.permissions',
4220 'apps.openedx_objects',
4221 'apps.utm_tracker',
4222 'django_jenkins',
4223 'sslserver',
4224 'simple_history',
4225 'storages')</pre></td>
4226 </tr>
4227
4228 <tr>
4229 <td>LANGUAGES</td>
4230 <td class="code"><pre>(('ru', <django.utils.functional.__proxy__ object at 0x7f00e782c350>),)</pre></td>
4231 </tr>
4232
4233 <tr>
4234 <td>EDX_API_KEY</td>
4235 <td class="code"><pre>u'********************'</pre></td>
4236 </tr>
4237
4238 <tr>
4239 <td>EDX_LMS_URL</td>
4240 <td class="code"><pre>'courses-dev.icc.spbstu.ru'</pre></td>
4241 </tr>
4242
4243 <tr>
4244 <td>SOCIAL_AUTH_DEFAULT_USERNAME</td>
4245 <td class="code"><pre>'socialauth_user'</pre></td>
4246 </tr>
4247
4248 <tr>
4249 <td>SOCIAL_AUTH_VK_OAUTH2_SECRET</td>
4250 <td class="code"><pre>u'********************'</pre></td>
4251 </tr>
4252
4253 <tr>
4254 <td>PROJECT_APPS</td>
4255 <td class="code"><pre>('apps.core', 'apps.profiler', 'apps.permissions', 'apps.openedx_objects')</pre></td>
4256 </tr>
4257
4258 <tr>
4259 <td>PREPEND_WWW</td>
4260 <td class="code"><pre>False</pre></td>
4261 </tr>
4262
4263 <tr>
4264 <td>SECURE_PROXY_SSL_HEADER</td>
4265 <td class="code"><pre>('HTTP_X_FORWARDED_PROTO', 'https')</pre></td>
4266 </tr>
4267
4268 <tr>
4269 <td>SOCIAL_AUTH_URLOPEN_TIMEOUT</td>
4270 <td class="code"><pre>7</pre></td>
4271 </tr>
4272
4273 <tr>
4274 <td>LANGUAGE_COOKIE_AGE</td>
4275 <td class="code"><pre>None</pre></td>
4276 </tr>
4277
4278 <tr>
4279 <td>SESSION_COOKIE_HTTPONLY</td>
4280 <td class="code"><pre>True</pre></td>
4281 </tr>
4282
4283 <tr>
4284 <td>DEBUG_PROPAGATE_EXCEPTIONS</td>
4285 <td class="code"><pre>False</pre></td>
4286 </tr>
4287
4288 <tr>
4289 <td>INTERNAL_IPS</td>
4290 <td class="code"><pre>()</pre></td>
4291 </tr>
4292
4293 <tr>
4294 <td>SOCIAL_AUTH_MAILRU_OAUTH2_KEY</td>
4295 <td class="code"><pre>u'********************'</pre></td>
4296 </tr>
4297
4298 <tr>
4299 <td>URL_PREFIX</td>
4300 <td class="code"><pre>'https'</pre></td>
4301 </tr>
4302
4303 <tr>
4304 <td>MONTH_DAY_FORMAT</td>
4305 <td class="code"><pre>'F j'</pre></td>
4306 </tr>
4307
4308 <tr>
4309 <td>SOCIAL_AUTH_FORCE_RANDOM_USERNAME</td>
4310 <td class="code"><pre>False</pre></td>
4311 </tr>
4312
4313 <tr>
4314 <td>LOGIN_URL</td>
4315 <td class="code"><pre>'/login'</pre></td>
4316 </tr>
4317
4318 <tr>
4319 <td>SESSION_EXPIRE_AT_BROWSER_CLOSE</td>
4320 <td class="code"><pre>False</pre></td>
4321 </tr>
4322
4323 <tr>
4324 <td>PLP_CRETEUSER_URL</td>
4325 <td class="code"><pre>'https://plp-dev.icc.spbstu.ru/complete/npoedsso/'</pre></td>
4326 </tr>
4327
4328 <tr>
4329 <td>SOCIAL_AUTH_GOOGLE_OAUTH2_KEY</td>
4330 <td class="code"><pre>u'********************'</pre></td>
4331 </tr>
4332
4333 <tr>
4334 <td>RAVEN_CONFIG</td>
4335 <td class="code"><pre>None</pre></td>
4336 </tr>
4337
4338 <tr>
4339 <td>TIME_FORMAT</td>
4340 <td class="code"><pre>'P'</pre></td>
4341 </tr>
4342
4343 <tr>
4344 <td>URL_PREFIX_EDX</td>
4345 <td class="code"><pre>'https'</pre></td>
4346 </tr>
4347
4348 <tr>
4349 <td>SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS</td>
4350 <td class="code"><pre>{'fields': 'email,last_name,first_name,name,id,birthday,education,gender,timezone,location',
4351 'locale': 'ru_RU'}</pre></td>
4352 </tr>
4353
4354 <tr>
4355 <td>AUTH_USER_MODEL</td>
4356 <td class="code"><pre>'profiler.User'</pre></td>
4357 </tr>
4358
4359 <tr>
4360 <td>DATE_INPUT_FORMATS</td>
4361 <td class="code"><pre>('%Y-%m-%d',
4362 '%m/%d/%Y',
4363 '%m/%d/%y',
4364 '%b %d %Y',
4365 '%b %d, %Y',
4366 '%d %b %Y',
4367 '%d %b, %Y',
4368 '%B %d %Y',
4369 '%B %d, %Y',
4370 '%d %B %Y',
4371 '%d %B, %Y')</pre></td>
4372 </tr>
4373
4374 <tr>
4375 <td>AUTH_SESSION_COOKIE_DOMAIN</td>
4376 <td class="code"><pre>'.icc.spbstu.ru'</pre></td>
4377 </tr>
4378
4379 <tr>
4380 <td>AUTHENTICATION_BACKENDS</td>
4381 <td class="code"><pre>('social.backends.facebook.FacebookOAuth2',
4382 'social.backends.google.GoogleOAuth2',
4383 'social.backends.twitter.TwitterOAuth',
4384 'social.backends.mailru.MailruOAuth2',
4385 'social.backends.vk.VKOAuth2',
4386 'social.backends.email.EmailAuth',
4387 'apps.profiler.backends.npoed.NpoedBackend',
4388 'social.backends.username.UsernameAuth',
4389 'django.contrib.auth.backends.ModelBackend',
4390 'apps.profiler.backends.email.EmailLoginBackend')</pre></td>
4391 </tr>
4392
4393 <tr>
4394 <td>EMAIL_HOST_PASSWORD</td>
4395 <td class="code"><pre>u'********************'</pre></td>
4396 </tr>
4397
4398 <tr>
4399 <td>PASSWORD_RESET_TIMEOUT_DAYS</td>
4400 <td class="code"><pre>u'********************'</pre></td>
4401 </tr>
4402
4403 <tr>
4404 <td>SESSION_FILE_PATH</td>
4405 <td class="code"><pre>None</pre></td>
4406 </tr>
4407
4408 <tr>
4409 <td>CACHE_MIDDLEWARE_ALIAS</td>
4410 <td class="code"><pre>'default'</pre></td>
4411 </tr>
4412
4413 <tr>
4414 <td>SESSION_SAVE_EVERY_REQUEST</td>
4415 <td class="code"><pre>False</pre></td>
4416 </tr>
4417
4418 <tr>
4419 <td>NUMBER_GROUPING</td>
4420 <td class="code"><pre>0</pre></td>
4421 </tr>
4422
4423 <tr>
4424 <td>SOCIAL_AUTH_DISCONNECT_PIPELINE</td>
4425 <td class="code"><pre>('social.pipeline.disconnect.allowed_to_disconnect',
4426 'apps.profiler.pipeline.get_entries',
4427 'social.pipeline.disconnect.revoke_tokens',
4428 'social.pipeline.disconnect.disconnect')</pre></td>
4429 </tr>
4430
4431 <tr>
4432 <td>SESSION_ENGINE</td>
4433 <td class="code"><pre>'django.contrib.sessions.backends.db'</pre></td>
4434 </tr>
4435
4436 <tr>
4437 <td>CSRF_FAILURE_VIEW</td>
4438 <td class="code"><pre>'django.views.csrf.csrf_failure'</pre></td>
4439 </tr>
4440
4441 <tr>
4442 <td>CSRF_COOKIE_PATH</td>
4443 <td class="code"><pre>'/'</pre></td>
4444 </tr>
4445
4446 <tr>
4447 <td>LOGIN_REDIRECT_URL</td>
4448 <td class="code"><pre>'/'</pre></td>
4449 </tr>
4450
4451 <tr>
4452 <td>SOCIAL_AUTH_EMAIL_FORM_HTML</td>
4453 <td class="code"><pre>'email_signup.html'</pre></td>
4454 </tr>
4455
4456 <tr>
4457 <td>SOCIAL_AUTH_VK_OAUTH2_SCOPE</td>
4458 <td class="code"><pre>['email']</pre></td>
4459 </tr>
4460
4461 <tr>
4462 <td>SOCIAL_AUTH_ERROR_KEY</td>
4463 <td class="code"><pre>u'********************'</pre></td>
4464 </tr>
4465
4466 <tr>
4467 <td>DECIMAL_SEPARATOR</td>
4468 <td class="code"><pre>'.'</pre></td>
4469 </tr>
4470
4471 <tr>
4472 <td>IGNORABLE_404_URLS</td>
4473 <td class="code"><pre>()</pre></td>
4474 </tr>
4475
4476 <tr>
4477 <td>LOCALE_PATHS</td>
4478 <td class="code"><pre>('/edx/app/sso/npoed-sso-edx/locale',)</pre></td>
4479 </tr>
4480
4481 <tr>
4482 <td>TEMPLATE_STRING_IF_INVALID</td>
4483 <td class="code"><pre>''</pre></td>
4484 </tr>
4485
4486 <tr>
4487 <td>SOCIAL_AUTH_URL_NAMESPACE</td>
4488 <td class="code"><pre>'social'</pre></td>
4489 </tr>
4490
4491 <tr>
4492 <td>COMMENTS_ALLOW_PROFANITIES</td>
4493 <td class="code"><pre>False</pre></td>
4494 </tr>
4495
4496 <tr>
4497 <td>SOCIAL_ACCOUNT_VK</td>
4498 <td class="code"><pre>'https://vk.com/openeduRU'</pre></td>
4499 </tr>
4500
4501 <tr>
4502 <td>LOGOUT_URL</td>
4503 <td class="code"><pre>'/accounts/logout/'</pre></td>
4504 </tr>
4505
4506 <tr>
4507 <td>COUNTRIES_FIRST</td>
4508 <td class="code"><pre>['RU']</pre></td>
4509 </tr>
4510
4511 <tr>
4512 <td>EMAIL_USE_TLS</td>
4513 <td class="code"><pre>False</pre></td>
4514 </tr>
4515
4516 <tr>
4517 <td>SOCIAL_AUTH_RAISE_EXCEPTIONS</td>
4518 <td class="code"><pre>False</pre></td>
4519 </tr>
4520
4521 <tr>
4522 <td>FIXTURE_DIRS</td>
4523 <td class="code"><pre>()</pre></td>
4524 </tr>
4525
4526 <tr>
4527 <td>EMAIL_HOST</td>
4528 <td class="code"><pre>'smtp.yandex.ru'</pre></td>
4529 </tr>
4530
4531 <tr>
4532 <td>DATE_FORMAT</td>
4533 <td class="code"><pre>'N j, Y'</pre></td>
4534 </tr>
4535
4536 <tr>
4537 <td>MEDIA_ROOT</td>
4538 <td class="code"><pre>'/edx/app/sso/npoed-sso-edx/media'</pre></td>
4539 </tr>
4540
4541 <tr>
4542 <td>DEFAULT_EXCEPTION_REPORTER_FILTER</td>
4543 <td class="code"><pre>'django.views.debug.SafeExceptionReporterFilter'</pre></td>
4544 </tr>
4545
4546 <tr>
4547 <td>ADMINS</td>
4548 <td class="code"><pre>()</pre></td>
4549 </tr>
4550
4551 <tr>
4552 <td>SOCIAL_ACCOUNT_INSTAGRAM</td>
4553 <td class="code"><pre>'https://instagram.com/openeduRU'</pre></td>
4554 </tr>
4555
4556 <tr>
4557 <td>FORMAT_MODULE_PATH</td>
4558 <td class="code"><pre>None</pre></td>
4559 </tr>
4560
4561 <tr>
4562 <td>DEFAULT_FROM_EMAIL</td>
4563 <td class="code"><pre>u'Npoed <polyana.web@yandex.ru>'</pre></td>
4564 </tr>
4565
4566 <tr>
4567 <td>JENKINS_TASKS</td>
4568 <td class="code"><pre>('django_jenkins.tasks.run_pep8', 'django_jenkins.tasks.run_pyflakes')</pre></td>
4569 </tr>
4570
4571 <tr>
4572 <td>REST_FRAMEWORK</td>
4573 <td class="code"><pre>{'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework.authentication.TokenAuthentication',
4574 'rest_framework_oauth.authentication.OAuth2Authentication'),
4575 'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAdminUser',),
4576 'FORM_CONTENTTYPE_OVERRIDE': None,
4577 'FORM_CONTENT_OVERRIDE': None,
4578 'FORM_METHOD_OVERRIDE': None,
4579 'PAGE_SIZE': 10}</pre></td>
4580 </tr>
4581
4582 <tr>
4583 <td>SOCIAL_AUTH_EXTRA_DATA</td>
4584 <td class="code"><pre>['sex',
4585 'bdate',
4586 'birthday',
4587 'city',
4588 'country',
4589 'education',
4590 'universities',
4591 'schools',
4592 'timezone',
4593 'photo_100']</pre></td>
4594 </tr>
4595
4596 <tr>
4597 <td>MEDIA_URL</td>
4598 <td class="code"><pre>'/media/'</pre></td>
4599 </tr>
4600
4601 <tr>
4602 <td>DATETIME_FORMAT</td>
4603 <td class="code"><pre>'N j, Y, P'</pre></td>
4604 </tr>
4605
4606 <tr>
4607 <td>TEMPLATE_DIRS</td>
4608 <td class="code"><pre>['/edx/app/sso/npoed-sso-edx/templates']</pre></td>
4609 </tr>
4610
4611 <tr>
4612 <td>SITE_ID</td>
4613 <td class="code"><pre>1</pre></td>
4614 </tr>
4615
4616 <tr>
4617 <td>DISALLOWED_USER_AGENTS</td>
4618 <td class="code"><pre>()</pre></td>
4619 </tr>
4620
4621 <tr>
4622 <td>ALLOWED_INCLUDE_ROOTS</td>
4623 <td class="code"><pre>()</pre></td>
4624 </tr>
4625
4626 <tr>
4627 <td>USE_I18N</td>
4628 <td class="code"><pre>True</pre></td>
4629 </tr>
4630
4631 <tr>
4632 <td>LOGGING</td>
4633 <td class="code"><pre>{}</pre></td>
4634 </tr>
4635
4636 <tr>
4637 <td>SHORT_DATE_FORMAT</td>
4638 <td class="code"><pre>'m/d/Y'</pre></td>
4639 </tr>
4640
4641 <tr>
4642 <td>EMAIL_FROM</td>
4643 <td class="code"><pre>u'Npoed <polyana.web@yandex.ru>'</pre></td>
4644 </tr>
4645
4646 <tr>
4647 <td>EDX_CMS_URL</td>
4648 <td class="code"><pre>'studio-dev.icc.spbstu.ru'</pre></td>
4649 </tr>
4650
4651 <tr>
4652 <td>TEST_RUNNER</td>
4653 <td class="code"><pre>'django.test.runner.DiscoverRunner'</pre></td>
4654 </tr>
4655
4656 <tr>
4657 <td>SOCIAL_AUTH_GOOGLE_OAUTH2_SCOPE</td>
4658 <td class="code"><pre>['profile']</pre></td>
4659 </tr>
4660
4661 <tr>
4662 <td>CACHE_MIDDLEWARE_KEY_PREFIX</td>
4663 <td class="code"><pre>u'********************'</pre></td>
4664 </tr>
4665
4666 <tr>
4667 <td>EDX_ENROLLMENTS_API</td>
4668 <td class="code"><pre>u'********************'</pre></td>
4669 </tr>
4670
4671 <tr>
4672 <td>REGISTRATION_AUTO_LOGIN</td>
4673 <td class="code"><pre>True</pre></td>
4674 </tr>
4675
4676 <tr>
4677 <td>SOCIAL_AUTH_TWITTER_KEY</td>
4678 <td class="code"><pre>u'********************'</pre></td>
4679 </tr>
4680
4681 <tr>
4682 <td>FILE_UPLOAD_MAX_MEMORY_SIZE</td>
4683 <td class="code"><pre>2621440</pre></td>
4684 </tr>
4685
4686 <tr>
4687 <td>SOCIAL_AUTH_CREATE_USERS</td>
4688 <td class="code"><pre>True</pre></td>
4689 </tr>
4690
4691 <tr>
4692 <td>SOCIAL_AUTH_VK_OAUTH2_KEY</td>
4693 <td class="code"><pre>u'********************'</pre></td>
4694 </tr>
4695
4696 <tr>
4697 <td>EMAIL_BACKEND</td>
4698 <td class="code"><pre>'django.core.mail.backends.smtp.EmailBackend'</pre></td>
4699 </tr>
4700
4701 <tr>
4702 <td>STATICFILES_DIRS</td>
4703 <td class="code"><pre>('/edx/app/sso/npoed-sso-edx/static',)</pre></td>
4704 </tr>
4705
4706 <tr>
4707 <td>EMAIL_USE_SSL</td>
4708 <td class="code"><pre>True</pre></td>
4709 </tr>
4710
4711 <tr>
4712 <td>TEMPLATE_CONTEXT_PROCESSORS</td>
4713 <td class="code"><pre>('django.contrib.auth.context_processors.auth',
4714 'django.core.context_processors.debug',
4715 'django.core.context_processors.i18n',
4716 'django.core.context_processors.media',
4717 'django.core.context_processors.static',
4718 'django.core.context_processors.tz',
4719 'django.contrib.messages.context_processors.messages',
4720 'django.core.context_processors.request',
4721 'apps.profiler.context_processors.forms')</pre></td>
4722 </tr>
4723
4724 <tr>
4725 <td>MIGRATION_MODULES</td>
4726 <td class="code"><pre>{}</pre></td>
4727 </tr>
4728
4729 <tr>
4730 <td>SESSION_COOKIE_AGE</td>
4731 <td class="code"><pre>1209600</pre></td>
4732 </tr>
4733
4734 <tr>
4735 <td>SETTINGS_MODULE</td>
4736 <td class="code"><pre>'npoed_sso_edx.settings'</pre></td>
4737 </tr>
4738
4739 <tr>
4740 <td>USE_ETAGS</td>
4741 <td class="code"><pre>False</pre></td>
4742 </tr>
4743
4744 <tr>
4745 <td>OAUTH_OIDC_ISSUER</td>
4746 <td class="code"><pre>'https:///oauth2'</pre></td>
4747 </tr>
4748
4749 <tr>
4750 <td>LANGUAGES_BIDI</td>
4751 <td class="code"><pre>('he', 'ar', 'fa', 'ur')</pre></td>
4752 </tr>
4753
4754 <tr>
4755 <td>SOCIAL_AUTH_COMPLETE_URL_NAME</td>
4756 <td class="code"><pre>'socialauth_complete'</pre></td>
4757 </tr>
4758
4759 <tr>
4760 <td>SOCIAL_AUTH_PROTECTED_USER_FIELDS</td>
4761 <td class="code"><pre>['first_name', 'last_name']</pre></td>
4762 </tr>
4763
4764 <tr>
4765 <td>DEFAULT_INDEX_TABLESPACE</td>
4766 <td class="code"><pre>''</pre></td>
4767 </tr>
4768
4769 <tr>
4770 <td>CSRF_COOKIE_AGE</td>
4771 <td class="code"><pre>31449600</pre></td>
4772 </tr>
4773
4774 <tr>
4775 <td>STATIC_URL</td>
4776 <td class="code"><pre>'/static/'</pre></td>
4777 </tr>
4778
4779 <tr>
4780 <td>EMAIL_PORT</td>
4781 <td class="code"><pre>465</pre></td>
4782 </tr>
4783
4784 <tr>
4785 <td>SSO_API_KEY</td>
4786 <td class="code"><pre>u'********************'</pre></td>
4787 </tr>
4788
4789 <tr>
4790 <td>USE_TZ</td>
4791 <td class="code"><pre>True</pre></td>
4792 </tr>
4793
4794 <tr>
4795 <td>SHORT_DATETIME_FORMAT</td>
4796 <td class="code"><pre>'m/d/Y P'</pre></td>
4797 </tr>
4798
4799 <tr>
4800 <td>PASSWORD_HASHERS</td>
4801 <td class="code"><pre>u'********************'</pre></td>
4802 </tr>
4803
4804 <tr>
4805 <td>ABSOLUTE_URL_OVERRIDES</td>
4806 <td class="code"><pre>{}</pre></td>
4807 </tr>
4808
4809 <tr>
4810 <td>LANGUAGE_COOKIE_PATH</td>
4811 <td class="code"><pre>'/'</pre></td>
4812 </tr>
4813
4814 <tr>
4815 <td>PLP_URL</td>
4816 <td class="code"><pre>'https://plp-dev.icc.spbstu.ru'</pre></td>
4817 </tr>
4818
4819 <tr>
4820 <td>CACHE_MIDDLEWARE_SECONDS</td>
4821 <td class="code"><pre>600</pre></td>
4822 </tr>
4823
4824 <tr>
4825 <td>SOCIAL_ACCOUNT_OK</td>
4826 <td class="code"><pre>'http://ok.ru/group/52786563514445'</pre></td>
4827 </tr>
4828
4829 <tr>
4830 <td>CSRF_COOKIE_HTTPONLY</td>
4831 <td class="code"><pre>False</pre></td>
4832 </tr>
4833
4834 <tr>
4835 <td>DATETIME_INPUT_FORMATS</td>
4836 <td class="code"><pre>('%Y-%m-%d %H:%M:%S',
4837 '%Y-%m-%d %H:%M:%S.%f',
4838 '%Y-%m-%d %H:%M',
4839 '%Y-%m-%d',
4840 '%m/%d/%Y %H:%M:%S',
4841 '%m/%d/%Y %H:%M:%S.%f',
4842 '%m/%d/%Y %H:%M',
4843 '%m/%d/%Y',
4844 '%m/%d/%y %H:%M:%S',
4845 '%m/%d/%y %H:%M:%S.%f',
4846 '%m/%d/%y %H:%M',
4847 '%m/%d/%y')</pre></td>
4848 </tr>
4849
4850 <tr>
4851 <td>TIME_ZONE</td>
4852 <td class="code"><pre>'UTC'</pre></td>
4853 </tr>
4854
4855 <tr>
4856 <td>SOCIAL_AUTH_ADMIN_USER_SEARCH_FIELDS</td>
4857 <td class="code"><pre>['username', 'first_name', 'last_name', 'email', 'gender']</pre></td>
4858 </tr>
4859
4860 <tr>
4861 <td>EMAIL_HOST_USER</td>
4862 <td class="code"><pre>'polyana.web'</pre></td>
4863 </tr>
4864
4865 <tr>
4866 <td>PROFANITIES_LIST</td>
4867 <td class="code"><pre>u'********************'</pre></td>
4868 </tr>
4869
4870 </tbody>
4871 </table>
4872
4873</div>
4874
4875 <div id="explanation">
4876 <p>
4877 You're seeing this error because you have <code>DEBUG = True</code> in your
4878 Django settings file. Change that to <code>False</code>, and Django will
4879 display a standard 500 page.
4880 </p>
4881 </div>
4882
4883</body>
4884</html>
4885Exception Location: /edx/app/plp/npoed-plp-edx/npoed_plp/plp/utils/sso.py in request, line 235
4886Python Executable: /edx/app/plp/npoed-plp-edx/.env/bin/python
4887Python Version: 2.7.10
4888Python Path:
4889['/edx/app/plp/npoed-plp-edx/npoed_plp',
4890 '/edx/app/plp/npoed-plp-edx/npoed_plp',
4891 '/edx/app/plp/npoed-plp-edx/.env/bin',
4892 '/edx/app/plp/npoed-plp-edx/.env/lib/python2.7',
4893 '/edx/app/plp/npoed-plp-edx/.env/lib/python2.7/plat-linux2',
4894 '/edx/app/plp/npoed-plp-edx/.env/lib/python2.7/lib-tk',
4895 '/edx/app/plp/npoed-plp-edx/.env/lib/python2.7/lib-old',
4896 '/edx/app/plp/npoed-plp-edx/.env/lib/python2.7/lib-dynload',
4897 '/usr/lib/python2.7',
4898 '/usr/lib/python2.7/plat-linux2',
4899 '/usr/lib/python2.7/lib-tk',
4900 '/edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages']
4901Server time: Сб, 3 Сен 2016 14:22:51 +0300
4902Traceback Switch to copy-and-paste view
4903
4904/edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/core/handlers/base.py in get_response
4905 response = wrapped_callback(request, *callback_args, **callback_kwargs) ...
4906â–¶ Local vars
4907/edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/views/generic/base.py in view
4908 return self.dispatch(request, *args, **kwargs) ...
4909â–¶ Local vars
4910/edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/utils/decorators.py in _wrapper
4911 return bound_func(*args, **kwargs) ...
4912â–¶ Local vars
4913/edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/contrib/auth/decorators.py in _wrapped_view
4914 return view_func(request, *args, **kwargs) ...
4915â–¶ Local vars
4916/edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/utils/decorators.py in bound_func
4917 return func.__get__(self, type(self))(*args2, **kwargs2) ...
4918â–¶ Local vars
4919/edx/app/plp/npoed-plp-edx/npoed_plp/plp/views/course_session.py in dispatch
4920 return super(CourseSessionCreateView, self).dispatch(request, *args, **kwargs) ...
4921â–¶ Local vars
4922/edx/app/plp/npoed-plp-edx/npoed_plp/plp/views/upd/mixins.py in dispatch
4923 return super(BaseUniversityMixin, self).dispatch(*args, **kwargs) ...
4924â–¶ Local vars
4925/edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/views/generic/base.py in dispatch
4926 return handler(request, *args, **kwargs) ...
4927â–¶ Local vars
4928/edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/views/generic/edit.py in post
4929 return super(BaseCreateView, self).post(request, *args, **kwargs) ...
4930â–¶ Local vars
4931/edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/views/generic/edit.py in post
4932 return self.form_valid(form) ...
4933â–¶ Local vars
4934/edx/app/plp/npoed-plp-edx/npoed_plp/plp/utils/logentry.py in form_valid
4935 res = super(LogModelChangeMixin, self).form_valid(*args, **kwargs) ...
4936â–¶ Local vars
4937/edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/views/generic/edit.py in form_valid
4938 self.object = form.save() ...
4939â–¶ Local vars
4940/edx/app/plp/npoed-plp-edx/npoed_plp/plp/forms.py in save
4941 push_course_session_to_sso(course_session) ...
4942â–¶ Local vars
4943/edx/app/plp/npoed-plp-edx/npoed_plp/plp/utils/sso.py in push_course_session_to_sso
4944 SSO(api_key=settings.SSO_API_KEY).push_edxcourserun(course_session) ...
4945â–¶ Local vars
4946/edx/app/plp/npoed-plp-edx/npoed_plp/plp/utils/sso.py in push_edxcourserun
4947 json=data) ...
4948â–¶ Local vars
4949/edx/app/plp/npoed-plp-edx/npoed_plp/plp/utils/sso.py in request
4950 response=r) ...
4951â–¶ Local vars
4952Request information
4953
4954GET
4955No GET data
4956POST
4957Variable Value
4958access_end_date
4959u''
4960honor_certificate
4961u'on'
4962result_knowledge
4963u''
4964result_abilities
4965u''
4966links
4967u''
4968access_start_date
4969u''
4970results
4971u''
4972course_team-__prefix__-course_team_autocomplete_selected
4973u''
4974session_enrollment_type-__prefix__-DELETE
4975u''
4976course
4977u'23'
4978datetime_ends
4979u''
4980session_enrollment_type-__prefix__-mode
4981u'audit'
4982session_enrollment_type-MIN_NUM_FORMS
4983u'0'
4984duration
4985u''
4986advertised_start_date
4987u''
4988additional_info
4989u''
4990session_enrollment_type-0-certificate_pk
4991u''
4992session_enrollment_type-TOTAL_FORMS
4993u'1'
4994session_enrollment_type-MAX_NUM_FORMS
4995u'1000'
4996course_name
4997u'new - log_test'
4998advertised_end_date
4999u''
5000session_enrollment_type-__prefix__-buy_start
5001u''
5002course_team-MIN_NUM_FORMS
5003u'0'
5004certification
5005u''
5006session_enrollment_type-INITIAL_FORMS
5007u'1'
5008workload_to
5009u''
5010session_enrollment_type-__prefix__-buy_expiration
5011u''
5012syllabus
5013u''
5014session_enrollment_type-__prefix__-certificate_pk
5015u''
5016session_enrollment_type-__prefix__-active
5017u'on'
5018session_enrollment_type-0-mode
5019u'honor'
5020csrfmiddlewaretoken
5021u'SrI4UR8vcV5fJk1YXr3G1goVuINF1uSS'
5022competence
5023u''
5024session_enrollment_type-__prefix__-description
5025u''
5026right_block_additional
5027u''
5028session_enrollment_type-0-DELETE
5029u''
5030specifications
5031u''
5032session_enrollment_type-__prefix__-price
5033u'0'
5034session_enrollment_type-0-price
5035u'0'
5036certificate_icon_pk
5037u''
5038edx_url
5039u''
5040course_format
5041u''
5042datetime_end_enroll
5043u''
5044instructor_order
5045u'[[40,"\u0418\u0431\u043d \u0410\u0431\u0434\u0443\u0440\u0430\u0445\u043c\u0430\u043d \u0411\u0430\u0431\u0430\u0435\u0432\u0438\u0447"]]'
5046workload_from
5047u''
5048formSubmit
5049u''
5050instructor_autocomplete_selected
5051u'40'
5052course_team-__prefix__-DELETE
5053u''
5054datetime_starts
5055u''
5056slug
5057u'session_2'
5058course_team-INITIAL_FORMS
5059u'0'
5060course_team-MAX_NUM_FORMS
5061u'1000'
5062session_enrollment_type-0-buy_expiration
5063u''
5064getting_conditions
5065u''
5066session_enrollment_type-0-buy_start
5067u''
5068university
5069u'2'
5070course_team-TOTAL_FORMS
5071u'0'
5072session_enrollment_type-__prefix__-about
5073u''
5074result_skills
5075u''
5076session_enrollment_type-0-active
5077u'on'
5078session_enrollment_type-0-about
5079u''
5080points
5081u''
5082session_enrollment_type-0-description
5083u''
5084datetime_start_enroll
5085u''
5086FILES
5087No FILES data
5088COOKIES
5089Variable Value
5090__utmz
5091'63931703.1472896646.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)'
5092authenticated
5093'1'
5094authenticated_user
5095'test_admin'
5096_ym_isad
5097'2'
5098_ga
5099'GA1.2.1116172974.1472735567'
5100_ym_uid
5101'1472735567441843361'
5102sessionid
5103'4tc6pkf7i5md8wlqkpcp771su4r3c74w'
5104_ym_visorc_32212994
5105'w'
5106csrftoken
5107'SrI4UR8vcV5fJk1YXr3G1goVuINF1uSS'
5108__utma
5109'63931703.888388191.1472896646.1472896646.1472896646.1'
5110__utmc
5111'63931703'
5112_gat
5113'1'
5114META
5115Variable Value
5116HTTP_REFERER
5117'https://plp-dev.icc.spbstu.ru/course-session/create/itmo/new/'
5118SERVER_SOFTWARE
5119'gunicorn/19.3.0'
5120SCRIPT_NAME
5121u''
5122HTTP_X_FORWARDED_PORT
5123'443'
5124PATH_INFO
5125u'/course-session/create/itmo/new/'
5126HTTP_ORIGIN
5127'https://plp-dev.icc.spbstu.ru'
5128SERVER_PROTOCOL
5129'HTTP/1.0'
5130QUERY_STRING
5131''
5132CONTENT_LENGTH
5133'8206'
5134HTTP_USER_AGENT
5135'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
5136HTTP_CONNECTION
5137'close'
5138HTTP_COOKIE
5139'_ym_uid=1472735567441843361; _ym_isad=2; authenticated=1; authenticated_user=test_admin; sessionid=4tc6pkf7i5md8wlqkpcp771su4r3c74w; __utma=63931703.888388191.1472896646.1472896646.1472896646.1; __utmc=63931703; __utmz=63931703.1472896646.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); _gat=1; _ga=GA1.2.1116172974.1472735567; _ym_visorc_32212994=w; csrftoken=SrI4UR8vcV5fJk1YXr3G1goVuINF1uSS'
5140SERVER_NAME
5141'127.0.0.1'
5142REMOTE_ADDR
5143'127.0.0.1'
5144wsgi.url_scheme
5145'https'
5146SERVER_PORT
5147'18890'
5148REMOTE_PORT
5149'59037'
5150HTTP_X_FORWARDED_PROTO
5151'https,https'
5152wsgi.input
5153<gunicorn.http.body.Body object at 0x7fd2a8472bd0>
5154HTTP_HOST
5155'plp-dev.icc.spbstu.ru'
5156wsgi.multithread
5157True
5158HTTP_UPGRADE_INSECURE_REQUESTS
5159'1'
5160HTTP_CACHE_CONTROL
5161'max-age=0'
5162HTTP_ACCEPT
5163'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
5164wsgi.version
5165(1, 0)
5166RAW_URI
5167'/course-session/create/itmo/new/'
5168wsgi.run_once
5169False
5170wsgi.errors
5171<gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7fd2a867ffd0>
5172wsgi.multiprocess
5173False
5174HTTP_ACCEPT_LANGUAGE
5175'ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4'
5176gunicorn.socket
5177<socket._socketobject object at 0x7fd2a873b210>
5178REQUEST_METHOD
5179'POST'
5180CONTENT_TYPE
5181'multipart/form-data; boundary=----WebKitFormBoundaryV340KKsRrXHeDc5G'
5182HTTP_X_FORWARDED_FOR
5183'192.168.1.55'
5184wsgi.file_wrapper
5185''
5186CSRF_COOKIE
5187u'SrI4UR8vcV5fJk1YXr3G1goVuINF1uSS'
5188HTTP_ACCEPT_ENCODING
5189'gzip, deflate, br'
5190Settings
5191Using settings module settings.local_settings
5192Setting Value
5193USE_TZ
5194True
5195SECURE_BROWSER_XSS_FILTER
5196False
5197IMAGEKIT_CACHEFILE_DIR
5198'CACHE/images'
5199USE_THOUSAND_SEPARATOR
5200False
5201POST_OFFICE_BACKEND
5202'djcelery_email.backends.CeleryEmailBackend'
5203CSRF_COOKIE_SECURE
5204False
5205LANGUAGE_CODE
5206'ru'
5207ROOT_URLCONF
5208'urls'
5209MANAGERS
5210()
5211POST_OFFICE
5212{'DEFAULT_PRIORITY': 'high'}
5213BROKER_URL
5214'amqp://myuser:mypassword@localhost:5672//'
5215BASE_DIR
5216'/edx/app/plp/npoed-plp-edx/npoed_plp'
5217SILENCED_SYSTEM_CHECKS
5218[]
5219DEFAULT_CHARSET
5220'utf-8'
5221SESSION_SERIALIZER
5222'django.contrib.sessions.serializers.JSONSerializer'
5223STATIC_ROOT
5224'/edx/app/plp/npoed-plp-edx/npoed_plp/static/'
5225SSO_API_TOKEN
5226u'********************'
5227CELERYBEAT_SCHEDULER
5228'djcelery.schedulers.DatabaseScheduler'
5229IMAGEKIT_USE_MEMCACHED_SAFE_CACHE_KEY
5230u'********************'
5231EMAIL_TO_DIRECTOR
5232()
5233ALLOWED_HOSTS
5234[]
5235MESSAGE_STORAGE
5236'django.contrib.messages.storage.fallback.FallbackStorage'
5237EMAIL_SUBJECT_PREFIX
5238'[Django] '
5239SERVER_EMAIL
5240'root@localhost'
5241SECURE_HSTS_SECONDS
52420
5243STATICFILES_FINDERS
5244('django.contrib.staticfiles.finders.FileSystemFinder',
5245 'django.contrib.staticfiles.finders.AppDirectoriesFinder')
5246EMAIL_NOTIFICATIONS_FROM
5247(<django.utils.functional.__proxy__ object at 0x7fd2b29f2a90>,
5248 'noreply@npoed.ru')
5249SESSION_CACHE_ALIAS
5250'default'
5251META_USE_OG_PROPERTIES
5252True
5253SOCIAL_AUTH_EXCLUDE_URL_PATTERN
5254'^/admin'
5255SESSION_COOKIE_DOMAIN
5256None
5257EMAIL_PROCTORING
5258()
5259META_SITE_PROTOCOL
5260'http'
5261TIME_INPUT_FORMATS
5262('%H:%M:%S', '%H:%M:%S.%f', '%H:%M')
5263SECURE_REDIRECT_EXEMPT
5264[]
5265DATABASES
5266{'default': {'ATOMIC_REQUESTS': False,
5267 'AUTOCOMMIT': True,
5268 'CONN_MAX_AGE': 0,
5269 'ENGINE': 'django.db.backends.mysql',
5270 'HOST': '192.168.1.71',
5271 'NAME': 'plp',
5272 'OPTIONS': {},
5273 'PASSWORD': u'********************',
5274 'PORT': '3306',
5275 'TEST': {'CHARSET': None,
5276 'COLLATION': None,
5277 'MIRROR': None,
5278 'NAME': None},
5279 'TIME_ZONE': 'UTC',
5280 'USER': 'plp'},
5281 'search': {'ATOMIC_REQUESTS': False,
5282 'AUTOCOMMIT': True,
5283 'CONN_MAX_AGE': 0,
5284 'ENGINE': 'django.db.backends.mysql',
5285 'HOST': '127.0.0.1',
5286 'NAME': 'courses',
5287 'OPTIONS': {},
5288 'PASSWORD': u'********************',
5289 'PORT': '9306',
5290 'TEST': {'CHARSET': None,
5291 'COLLATION': None,
5292 'MIRROR': None,
5293 'NAME': None},
5294 'TIME_ZONE': 'UTC',
5295 'USER': ''},
5296 'statistics': {'ATOMIC_REQUESTS': False,
5297 'AUTOCOMMIT': True,
5298 'CONN_MAX_AGE': 0,
5299 'ENGINE': 'django.db.backends.sqlite3',
5300 'HOST': '',
5301 'NAME': 'statistics.sqlite',
5302 'OPTIONS': {},
5303 'PASSWORD': u'********************',
5304 'PORT': '',
5305 'TEST': {'CHARSET': None,
5306 'COLLATION': None,
5307 'MIRROR': None,
5308 'NAME': None},
5309 'TIME_ZONE': 'UTC',
5310 'USER': ''}}
5311EMAIL_SSL_KEYFILE
5312u'********************'
5313TEMPLATE_DEBUG
5314False
5315FILE_UPLOAD_DIRECTORY_PERMISSIONS
5316None
5317STATIC_URL
5318'/static/'
5319FILE_UPLOAD_PERMISSIONS
5320None
5321FILE_UPLOAD_HANDLERS
5322('django.core.files.uploadhandler.MemoryFileUploadHandler',
5323 'django.core.files.uploadhandler.TemporaryFileUploadHandler')
5324DEFAULT_CONTENT_TYPE
5325'text/html'
5326YANDEX_MONEY_DEBUG
5327True
5328TEST_RUNNER
5329'django_coverage.coverage_runner.CoverageRunner'
5330TEMPLATE_LOADERS
5331('django.template.loaders.filesystem.Loader',
5332 'django.template.loaders.app_directories.Loader')
5333APPEND_SLASH
5334True
5335FIRST_DAY_OF_WEEK
53360
5337DATABASE_ROUTERS
5338['statistics.router.EnrollmentRouter']
5339DEFAULT_TABLESPACE
5340''
5341LOCAL_APPS
5342('plp', 'statistics', 'payments', 'metadata')
5343YEAR_MONTH_FORMAT
5344'F Y'
5345SSO_NPOED_BACKEND_NAME
5346'npoedsso'
5347STATICFILES_STORAGE
5348'django.contrib.staticfiles.storage.StaticFilesStorage'
5349CACHES
5350{'default': {'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
5351 'LOCATION': '127.0.0.1:11211',
5352 'TIMEOUT': 86400}}
5353BROKER_USER
5354'myuser'
5355IMAGEKIT_CACHE_BACKEND
5356'django.core.cache.backends.dummy.DummyCache'
5357SESSION_COOKIE_PATH
5358'/'
5359YANDEX_MONEY_SHOP_PASSWORD
5360u'********************'
5361YANDEX_MONEY_FAIL_URL
5362'https://plp-dev.icc.spbstu.ru/payment/yandex/fail-payment/'
5363AUTOCOMPLETE_EXCLUDE_URL_PATTERN
5364'^/autocomplete'
5365SECURE_CONTENT_TYPE_NOSNIFF
5366False
5367MIDDLEWARE_CLASSES
5368('django.contrib.sessions.middleware.SessionMiddleware',
5369 'django.middleware.locale.LocaleMiddleware',
5370 'django.middleware.common.CommonMiddleware',
5371 'django.middleware.csrf.CsrfViewMiddleware',
5372 'django.contrib.auth.middleware.AuthenticationMiddleware',
5373 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
5374 'django.contrib.messages.middleware.MessageMiddleware',
5375 'django.middleware.clickjacking.XFrameOptionsMiddleware',
5376 'django.middleware.security.SecurityMiddleware',
5377 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
5378 'plp.middleware.UTMTrackingMiddleware',
5379 'django_user_agents.middleware.UserAgentMiddleware',
5380 'pagination.middleware.PaginationMiddleware',
5381 'http_errors.middleware.HTTPErrorsMiddleware')
5382USE_I18N
5383True
5384SITE_NAME
5385'https://plp-dev.icc.spbstu.ru'
5386SECRET_KEY
5387u'********************'
5388LANGUAGE_COOKIE_NAME
5389'django_language'
5390IMAGEKIT_SPEC_CACHEFILE_NAMER
5391'imagekit.cachefiles.namers.source_name_as_path'
5392DEFAULT_INDEX_TABLESPACE
5393''
5394LOGGING_CONFIG
5395'logging.config.dictConfig'
5396SOCIAL_AUTH_ENABLED_BACKENDS
5397('npoedsso',)
5398BROKER_VHOST
5399'/'
5400SOCIAL_AUTH_LOGOUT_URL
5401'https://sso-dev.icc.spbstu.ru/logout/'
5402WSGI_APPLICATION
5403'wsgi.application'
5404IMAGEKIT_CACHE_PREFIX
5405'imagekit:'
5406X_FRAME_OPTIONS
5407'SAMEORIGIN'
5408CSRF_COOKIE_NAME
5409'csrftoken'
5410FORCE_SCRIPT_NAME
5411None
5412USE_X_FORWARDED_HOST
5413False
5414USE_ETAGS
5415False
5416EMAIL_TIMEOUT
5417None
5418SECURE_SSL_HOST
5419None
5420SIGNING_BACKEND
5421'django.core.signing.TimestampSigner'
5422SESSION_COOKIE_SECURE
5423False
5424YANDEX_MONEY_SCID
5425123
5426CSRF_COOKIE_DOMAIN
5427None
5428FILE_CHARSET
5429'utf-8'
5430DEBUG
5431True
5432BROKER_PORT
54335672
5434DEFAULT_FILE_STORAGE
5435'django.core.files.storage.FileSystemStorage'
5436INSTALLED_APPS
5437('dal',
5438 'dal_select2',
5439 'django.contrib.admin',
5440 'django.contrib.auth',
5441 'django.contrib.contenttypes',
5442 'django.contrib.sessions',
5443 'django.contrib.messages',
5444 'django.contrib.staticfiles',
5445 'django.contrib.sites',
5446 'django.contrib.flatpages',
5447 'django.contrib.sitemaps',
5448 'plp',
5449 'statistics',
5450 'payments',
5451 'metadata',
5452 'pytils',
5453 'imagekit',
5454 'social.apps.django_app.default',
5455 'meta',
5456 'rest_framework',
5457 'djcelery',
5458 'djcelery_email',
5459 'post_office',
5460 'simple_history',
5461 'django_user_agents',
5462 'widget_tweaks',
5463 'djangoformsetjs',
5464 'pagination')
5465LANGUAGES_BIDI
5466('he', 'ar', 'fa', 'ur')
5467USE_L10N
5468True
5469EDX_API_KEY
5470u'********************'
5471YANDEX_MONEY_SHOP_ID
5472456
5473SECURE_HSTS_INCLUDE_SUBDOMAINS
5474False
5475STATICFILES_DIRS
5476()
5477PREPEND_WWW
5478False
5479SECURE_PROXY_SSL_HEADER
5480('HTTP_X_FORWARDED_PROTO', 'https')
5481SOCIAL_NEXT_URL
5482'/'
5483LANGUAGE_COOKIE_AGE
5484None
5485SESSION_COOKIE_HTTPONLY
5486True
5487DEBUG_PROPAGATE_EXCEPTIONS
5488False
5489INTERNAL_IPS
5490()
5491EMAIL_TO_SUPPORT
5492(u'Support', 'student@openedu.ru')
5493URL_PREFIX
5494'http'
5495MONTH_DAY_FORMAT
5496'F j'
5497BROKER_PASSWORD
5498u'********************'
5499LOGIN_URL
5500'/login/npoedsso/'
5501SESSION_EXPIRE_AT_BROWSER_CLOSE
5502False
5503TIME_FORMAT
5504'P'
5505EDX_COURSE_LINK
5506'{edx_base}/courses/{course_id_v1}/courseware'
5507DEFAULT_APPS
5508('django.contrib.admin',
5509 'django.contrib.auth',
5510 'django.contrib.contenttypes',
5511 'django.contrib.sessions',
5512 'django.contrib.messages',
5513 'django.contrib.staticfiles',
5514 'django.contrib.sites',
5515 'django.contrib.flatpages',
5516 'django.contrib.sitemaps')
5517AUTH_USER_MODEL
5518'plp.User'
5519DATE_INPUT_FORMATS
5520('%Y-%m-%d',
5521 '%m/%d/%Y',
5522 '%m/%d/%y',
5523 '%b %d %Y',
5524 '%b %d, %Y',
5525 '%d %b %Y',
5526 '%d %b, %Y',
5527 '%B %d %Y',
5528 '%B %d, %Y',
5529 '%d %B %Y',
5530 '%d %B, %Y')
5531AUTHENTICATION_BACKENDS
5532('plp.auth.CustomNpoedBackend', 'django.contrib.auth.backends.ModelBackend')
5533EMAIL_HOST_PASSWORD
5534u'********************'
5535SSO_NPOED_URL
5536'https://sso-dev.icc.spbstu.ru'
5537PASSWORD_RESET_TIMEOUT_DAYS
5538u'********************'
5539LANGUAGE_COOKIE_DOMAIN
5540None
5541CACHE_MIDDLEWARE_ALIAS
5542'default'
5543SESSION_SAVE_EVERY_REQUEST
5544False
5545NUMBER_GROUPING
55460
5547CSV_ROOT
5548'/edx/app/plp/npoed-plp-edx/npoed_plp/csv_dumps/'
5549SESSION_ENGINE
5550'django.contrib.sessions.backends.db'
5551CSRF_FAILURE_VIEW
5552'django.views.csrf.csrf_failure'
5553CSRF_COOKIE_PATH
5554'/'
5555LOGIN_REDIRECT_URL
5556'/'
5557MAX_CERT_CSV_SIZE
5558102400
5559DECIMAL_SEPARATOR
5560'.'
5561IGNORABLE_404_URLS
5562()
5563LOCALE_PATHS
5564('/edx/app/plp/npoed-plp-edx/npoed_plp/locale',)
5565TEMPLATE_STRING_IF_INVALID
5566''
5567SESSION_FILE_PATH
5568None
5569LOGOUT_URL
5570'/sso-logout/'
5571EMAIL_USE_TLS
5572False
5573FIXTURE_DIRS
5574('plp/fixtures/',)
5575EMAIL_HOST
5576'localhost'
5577DATE_FORMAT
5578'N j, Y'
5579YANDEX_MONEY_SUCCESS_URL
5580'https://plp-dev.icc.spbstu.ru/payment/yandex/success-payment/'
5581MEDIA_ROOT
5582'/edx/app/plp/npoed-plp-edx/npoed_plp/media/'
5583LANGUAGE_COOKIE_PATH
5584'/'
5585DEFAULT_EXCEPTION_REPORTER_FILTER
5586'django.views.debug.SafeExceptionReporterFilter'
5587ADMINS
5588()
5589FORMAT_MODULE_PATH
5590None
5591DEFAULT_FROM_EMAIL
5592'webmaster@localhost'
5593THOUSAND_SEPARATOR
5594','
5595AMQP_HOST
5596'localhost'
5597MEDIA_URL
5598'/media/'
5599DATETIME_FORMAT
5600'N j, Y, P'
5601TEMPLATE_DIRS
5602()
5603IMAGEKIT_CACHEFILE_NAMER
5604'imagekit.cachefiles.namers.hash'
5605SITE_ID
56061
5607DISALLOWED_USER_AGENTS
5608()
5609ALLOWED_INCLUDE_ROOTS
5610()
5611EDX_UNSUBSCRIBE
5612'/api/extended/subscriptions'
5613LOGGING
5614{'disable_existing_loggers': True,
5615 'formatters': {'main_formatter': {'datefmt': '%Y-%m-%d %H:%M:%S',
5616 'format': '%(levelname)s:%(name)s: %(message)s (%(asctime)s; %(filename)s:%(lineno)d)'}},
5617 'handlers': {'console': {'class': 'logging.StreamHandler',
5618 'formatter': 'main_formatter',
5619 'level': 'DEBUG'}},
5620 'loggers': {'': {'handlers': ['console'], 'level': 'DEBUG'},
5621 'django.request': {'handlers': ['console'],
5622 'level': 'ERROR',
5623 'propagate': True}},
5624 'version': 1}
5625PLP_API_KEY
5626u'********************'
5627SHORT_DATE_FORMAT
5628'm/d/Y'
5629TEMPLATES
5630[{'APP_DIRS': True,
5631 'BACKEND': 'django.template.backends.django.DjangoTemplates',
5632 'DIRS': ['/edx/app/plp/npoed-plp-edx/npoed_plp/plp/templates'],
5633 'OPTIONS': {'context_processors': ['django.template.context_processors.debug',
5634 'django.template.context_processors.request',
5635 'django.template.context_processors.static',
5636 'django.contrib.auth.context_processors.auth',
5637 'django.contrib.messages.context_processors.messages',
5638 'django.template.context_processors.i18n',
5639 'django.core.context_processors.media'],
5640 'debug': True}}]
5641AUTOCOMPLETE_APP
5642('dal', 'dal_select2')
5643EDX_CMS_URL
5644'https://studio-dev.icc.spbstu.ru'
5645IMAGEKIT_DEFAULT_CACHEFILE_BACKEND
5646'imagekit.cachefiles.backends.Simple'
5647CACHE_MIDDLEWARE_KEY_PREFIX
5648u'********************'
5649SECURE_SSL_REDIRECT
5650False
5651TIME_ZONE
5652'Europe/Moscow'
5653FILE_UPLOAD_MAX_MEMORY_SIZE
56542621440
5655EMAIL_BACKEND
5656'django.core.mail.backends.smtp.EmailBackend'
5657CONNECTION_TIMEOUT
565825
5659IMAGEKIT_DEFAULT_CACHEFILE_STRATEGY
5660'imagekit.cachefiles.strategies.JustInTime'
5661EMAIL_USE_SSL
5662False
5663TEMPLATE_CONTEXT_PROCESSORS
5664('django.contrib.auth.context_processors.auth',
5665 'django.template.context_processors.debug',
5666 'django.template.context_processors.i18n',
5667 'django.template.context_processors.media',
5668 'django.template.context_processors.static',
5669 'django.template.context_processors.tz',
5670 'django.contrib.messages.context_processors.messages')
5671MIGRATION_MODULES
5672{}
5673EDX_ENROLLMENT_URL
5674'https://courses-dev.icc.spbstu.ru'
5675SESSION_COOKIE_AGE
56761209600
5677SETTINGS_MODULE
5678'settings.local_settings'
5679SSO_NPOED_TIMEOUT
568010
5681LANGUAGES
5682(('ru', <django.utils.functional.__proxy__ object at 0x7fd2b29f2a50>),)
5683FILE_UPLOAD_TEMP_DIR
5684None
5685CSRF_COOKIE_AGE
568631449600
5687SESSION_COOKIE_NAME
5688'sessionid'
5689BROKER_HOST
5690'localhost'
5691EMAIL_PORT
569225
5693SSO_API_KEY
5694u'********************'
5695META_USE_SITES
5696True
5697SHORT_DATETIME_FORMAT
5698'm/d/Y P'
5699CELERY_RESULT_BACKEND
5700'database'
5701TEST_NON_SERIALIZED_APPS
5702[]
5703PASSWORD_HASHERS
5704u'********************'
5705THIRD_PARTY_APPS
5706('pytils',
5707 'imagekit',
5708 'social.apps.django_app.default',
5709 'meta',
5710 'rest_framework',
5711 'djcelery',
5712 'djcelery_email',
5713 'post_office',
5714 'simple_history',
5715 'django_user_agents',
5716 'widget_tweaks',
5717 'djangoformsetjs',
5718 'pagination')
5719ABSOLUTE_URL_OVERRIDES
5720{}
5721IMAGEKIT_DEFAULT_FILE_STORAGE
5722'django.core.files.storage.FileSystemStorage'
5723SOCIAL_AUTH_NPOEDSSO_KEY
5724u'********************'
5725CACHE_MIDDLEWARE_SECONDS
5726600
5727EMAIL_SSL_CERTFILE
5728None
5729CSRF_COOKIE_HTTPONLY
5730False
5731DATETIME_INPUT_FORMATS
5732('%Y-%m-%d %H:%M:%S',
5733 '%Y-%m-%d %H:%M:%S.%f',
5734 '%Y-%m-%d %H:%M',
5735 '%Y-%m-%d',
5736 '%m/%d/%Y %H:%M:%S',
5737 '%m/%d/%Y %H:%M:%S.%f',
5738 '%m/%d/%Y %H:%M',
5739 '%m/%d/%Y',
5740 '%m/%d/%y %H:%M:%S',
5741 '%m/%d/%y %H:%M:%S.%f',
5742 '%m/%d/%y %H:%M',
5743 '%m/%d/%y')
5744SOCIAL_AUTH_NPOEDSSO_SECRET
5745u'********************'
5746PAGE_CACHE_TIME
5747300
5748EMAIL_HOST_USER
5749''
5750You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code.