NoReverseMatch at _admin_td_infant_infantoffstudy_add_.html

Melody Mathe, 16/01/2017 10:25

Download (165 KB)

 
1
<!DOCTYPE html>
2
<html lang="en"><head>
3
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
4
  <meta name="robots" content="NONE,NOARCHIVE">
5
  <title>NoReverseMatch at /admin/td_infant/infantoffstudy/add/</title>
6
  <style type="text/css">
7
    html * { padding:0; margin:0; }
8
    body * { padding:10px 20px; }
9
    body * * { padding:0; }
10
    body { font:small sans-serif; }
11
    body>div { border-bottom:1px solid #ddd; }
12
    h1 { font-weight:normal; }
13
    h2 { margin-bottom:.8em; }
14
    h2 span { font-size:80%; color:#666; font-weight:normal; }
15
    h3 { margin:1em 0 .5em 0; }
16
    h4 { margin:0 0 .5em 0; font-weight: normal; }
17
    code, pre { font-size: 100%; white-space: pre-wrap; }
18
    table { border:1px solid #ccc; border-collapse: collapse; width:100%; background:white; }
19
    tbody td, tbody th { vertical-align:top; padding:2px 3px; }
20
    thead th {
21
      padding:1px 6px 1px 3px; background:#fefefe; text-align:left;
22
      font-weight:normal; font-size:11px; border:1px solid #ddd;
23
    }
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; padding-left: 2px; }
37
    div.context ol li pre { display:inline; }
38
    div.context ol.context-line li { color:#505050; background-color:#dfdfdf; padding: 3px 2px; }
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 10px 20px; }
50
    #template-not-exist .postmortem-section { margin-bottom: 3px; }
51
    #unicode-hint { background:#eee; }
52
    #traceback { background:#eee; }
53
    #requestinfo { background:#f6f6f6; padding-left:120px; }
54
    #summary table { border:none; background:transparent; }
55
    #requestinfo h2, #requestinfo h3 { position:relative; margin-left:-100px; }
56
    #requestinfo h3 { margin-bottom:-1em; }
57
    .error { background: #ffc; }
58
    .specific { color:#cc3300; font-weight:bold; }
59
    h2 span.commands { font-size:.7em;}
60
    span.commands a:link {color:#5E5694;}
61
    pre.exception_value { font-family: sans-serif; color: #666; font-size: 1.5em; margin: 10px 0 10px 0; }
62
    .append-bottom { margin-bottom: 10px; }
63
  </style>
64
  
65
  <script type="text/javascript">
66
  //<!--
67
    function getElementsByClassName(oElm, strTagName, strClassName){
68
        // Written by Jonathan Snook, http://www.snook.ca/jon; Add-ons by Robert Nyman, http://www.robertnyman.com
69
        var arrElements = (strTagName == "*" && document.all)? document.all :
70
        oElm.getElementsByTagName(strTagName);
71
        var arrReturnElements = new Array();
72
        strClassName = strClassName.replace(/\-/g, "\-");
73
        var oRegExp = new RegExp("(^|\s)" + strClassName + "(\s|$)");
74
        var oElement;
75
        for(var i=0; i<arrElements.length; i++){
76
            oElement = arrElements[i];
77
            if(oRegExp.test(oElement.className)){
78
                arrReturnElements.push(oElement);
79
            }
80
        }
81
        return (arrReturnElements)
82
    }
83
    function hideAll(elems) {
84
      for (var e = 0; e < elems.length; e++) {
85
        elems[e].style.display = 'none';
86
      }
87
    }
88
    window.onload = function() {
89
      hideAll(getElementsByClassName(document, 'table', 'vars'));
90
      hideAll(getElementsByClassName(document, 'ol', 'pre-context'));
91
      hideAll(getElementsByClassName(document, 'ol', 'post-context'));
92
      hideAll(getElementsByClassName(document, 'div', 'pastebin'));
93
    }
94
    function toggle() {
95
      for (var i = 0; i < arguments.length; i++) {
96
        var e = document.getElementById(arguments[i]);
97
        if (e) {
98
          e.style.display = e.style.display == 'none' ? 'block': 'none';
99
        }
100
      }
101
      return false;
102
    }
103
    function varToggle(link, id) {
104
      toggle('v' + id);
105
      var s = link.getElementsByTagName('span')[0];
106
      var uarr = String.fromCharCode(0x25b6);
107
      var darr = String.fromCharCode(0x25bc);
108
      s.innerHTML = s.innerHTML == uarr ? darr : uarr;
109
      return false;
110
    }
111
    function switchPastebinFriendly(link) {
112
      s1 = "Switch to copy-and-paste view";
113
      s2 = "Switch back to interactive view";
114
      link.innerHTML = link.innerHTML.trim() == s1 ? s2: s1;
115
      toggle('browserTraceback', 'pastebinTraceback');
116
      return false;
117
    }
118
    //-->
119
  </script>
120
  
121
</head>
122
<body>
123
<div id="summary">
124
  <h1>NoReverseMatch at /admin/td_infant/infantoffstudy/add/</h1>
125
  <pre class="exception_value">Reverse for 'subject_dashboard_url' with arguments '()' and keyword arguments '{'section_name': None}' not found. 6 pattern(s) tried: ['td/dashboard/(?P&lt;dashboard_type&gt;infant)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|infant_birth)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/$', 'td/dashboard/(?P&lt;dashboard_type&gt;infant)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|infant_birth)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/(?P&lt;show&gt;appointments|forms)/$', 'td/dashboard/(?P&lt;dashboard_type&gt;infant)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|infant_birth)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/(?P&lt;show&gt;appointments|forms)/(?P&lt;appointment_code&gt;2000|2010|2030|2060|2090|2120)/$', 'td/dashboard/(?P&lt;dashboard_type&gt;maternal)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|maternal_eligibility)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/$', 'td/dashboard/(?P&lt;dashboard_type&gt;maternal)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|maternal_eligibility)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/(?P&lt;show&gt;appointments|forms)/$', 'td/dashboard/(?P&lt;dashboard_type&gt;maternal)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|maternal_eligibility)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/(?P&lt;show&gt;appointments|forms)/(?P&lt;appointment_code&gt;1000M|1100M|1200M|1600M|2200M|2800M|3400M|4000M|4600M)/$']</pre>
126
  <table class="meta">
127

    
128
    <tbody><tr>
129
      <th>Request Method:</th>
130
      <td>POST</td>
131
    </tr>
132
    <tr>
133
      <th>Request URL:</th>
134
      <td>http://127.0.0.1:9000/admin/td_infant/infantoffstudy/add/?next=subject_dashboard_url&amp;dashboard_type=infant&amp;dashboard_model=visit&amp;dashboard_id=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;show=forms&amp;registered_subject=1869b5f5-1b99-49fb-b802-f84b7167f5b1&amp;infant_visit=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;visit_attr=infant_visit&amp;entry_order=0&amp;group_title=None</td>
135
    </tr>
136

    
137
    <tr>
138
      <th>Django Version:</th>
139
      <td>1.9.2</td>
140
    </tr>
141

    
142
    <tr>
143
      <th>Exception Type:</th>
144
      <td>NoReverseMatch</td>
145
    </tr>
146

    
147

    
148
    <tr>
149
      <th>Exception Value:</th>
150
      <td><pre>Reverse for 'subject_dashboard_url' with arguments '()' and keyword arguments '{'section_name': None}' not found. 6 pattern(s) tried: ['td/dashboard/(?P&lt;dashboard_type&gt;infant)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|infant_birth)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/$', 'td/dashboard/(?P&lt;dashboard_type&gt;infant)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|infant_birth)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/(?P&lt;show&gt;appointments|forms)/$', 'td/dashboard/(?P&lt;dashboard_type&gt;infant)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|infant_birth)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/(?P&lt;show&gt;appointments|forms)/(?P&lt;appointment_code&gt;2000|2010|2030|2060|2090|2120)/$', 'td/dashboard/(?P&lt;dashboard_type&gt;maternal)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|maternal_eligibility)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/$', 'td/dashboard/(?P&lt;dashboard_type&gt;maternal)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|maternal_eligibility)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/(?P&lt;show&gt;appointments|forms)/$', 'td/dashboard/(?P&lt;dashboard_type&gt;maternal)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|maternal_eligibility)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/(?P&lt;show&gt;appointments|forms)/(?P&lt;appointment_code&gt;1000M|1100M|1200M|1600M|2200M|2800M|3400M|4000M|4600M)/$']</pre></td>
151
    </tr>
152

    
153

    
154
    <tr>
155
      <th>Exception Location:</th>
156
      <td>/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/core/urlresolvers.py
157
 in _reverse_with_prefix, line 508</td>
158
    </tr>
159

    
160
    <tr>
161
      <th>Python Executable:</th>
162
      <td>/home/django/.virtualenvs/tshilo_dikotla/bin/python3.5</td>
163
    </tr>
164
    <tr>
165
      <th>Python Version:</th>
166
      <td>3.5.2</td>
167
    </tr>
168
    <tr>
169
      <th>Python Path:</th>
170
      <td><pre>['/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/git/ext/gitdb',
171
 '/home/django/source/bhp085',
172
 '/home/django/.virtualenvs/tshilo_dikotla/bin',
173
 '/home/django/.virtualenvs/tshilo_dikotla/lib/python35.zip',
174
 '/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5',
175
 '/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/plat-x86_64-linux-gnu',
176
 '/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/lib-dynload',
177
 '/usr/lib/python3.5',
178
 '/usr/lib/python3.5/plat-x86_64-linux-gnu',
179
 '/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages',
180
 '/home/django/.virtualenvs/tshilo_dikotla/src/django-crypto-fields',
181
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-appointment',
182
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-base',
183
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-call-manager',
184
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-code-lists',
185
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-configuration',
186
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-consent',
187
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-constants',
188
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-content-type-map',
189
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-dashboard',
190
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-data-manager',
191
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-death-report',
192
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-device',
193
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-export',
194
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-identifier',
195
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-lab',
196
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-locator',
197
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-meta-data',
198
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-notification',
199
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-offstudy',
200
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-quota',
201
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-registration',
202
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-rest',
203
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-rule-groups',
204
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-sync',
205
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-templates',
206
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-testing',
207
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-visit-schedule',
208
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-visit-tracking',
209
 '/home/django/.virtualenvs/tshilo_dikotla/src/lab-requisition',
210
 '/home/django/.virtualenvs/tshilo_dikotla/src/lis',
211
 '/home/django/.virtualenvs/tshilo_dikotla/src/edc-sync-files',
212
 '/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/gitdb/ext/smmap']</pre></td>
213
    </tr>
214
    <tr>
215
      <th>Server time:</th>
216
      <td>Mon, 16 Jan 2017 08:28:08 +0200</td>
217
    </tr>
218
  </tbody></table>
219
</div>
220

    
221

    
222

    
223

    
224
<div id="traceback">
225
  <h2>Traceback <span class="commands"><a href="#" onclick="return switchPastebinFriendly(this);">
226
    Switch to copy-and-paste view</a></span>
227
  </h2>
228
  
229
  <div id="browserTraceback">
230
    <ul class="traceback">
231
      
232
        
233
        <li class="frame django">
234
          <code>/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/core/handlers/base.py</code> in <code>get_response</code>
235

    
236
          
237
            <div class="context" id="c139890740545672">
238
              
239
                <ol style="display: none;" start="142" class="pre-context" id="pre139890740545672">
240
                
241
                  <li onclick="toggle('pre139890740545672', 'post139890740545672')"><pre>                        break</pre></li>
242
                
243
                  <li onclick="toggle('pre139890740545672', 'post139890740545672')"><pre></pre></li>
244
                
245
                  <li onclick="toggle('pre139890740545672', 'post139890740545672')"><pre>            if response is None:</pre></li>
246
                
247
                  <li onclick="toggle('pre139890740545672', 'post139890740545672')"><pre>                wrapped_callback = self.make_view_atomic(callback)</pre></li>
248
                
249
                  <li onclick="toggle('pre139890740545672', 'post139890740545672')"><pre>                try:</pre></li>
250
                
251
                  <li onclick="toggle('pre139890740545672', 'post139890740545672')"><pre>                    response = wrapped_callback(request, *callback_args, **callback_kwargs)</pre></li>
252
                
253
                  <li onclick="toggle('pre139890740545672', 'post139890740545672')"><pre>                except Exception as e:</pre></li>
254
                
255
                </ol>
256
              
257
              <ol start="149" class="context-line">
258
                <li onclick="toggle('pre139890740545672', 'post139890740545672')"><pre>                    response = self.process_exception_by_middleware(e, request)</pre> <span>...</span></li></ol>
259
              
260
                <ol style="display: none;" start="150" class="post-context" id="post139890740545672">
261
                  
262
                  <li onclick="toggle('pre139890740545672', 'post139890740545672')"><pre></pre></li>
263
                  
264
                  <li onclick="toggle('pre139890740545672', 'post139890740545672')"><pre>            # Complain if the view returned None (a common error).</pre></li>
265
                  
266
                  <li onclick="toggle('pre139890740545672', 'post139890740545672')"><pre>            if response is None:</pre></li>
267
                  
268
                  <li onclick="toggle('pre139890740545672', 'post139890740545672')"><pre>                if isinstance(callback, types.FunctionType):    # FBV</pre></li>
269
                  
270
                  <li onclick="toggle('pre139890740545672', 'post139890740545672')"><pre>                    view_name = callback.__name__</pre></li>
271
                  
272
                  <li onclick="toggle('pre139890740545672', 'post139890740545672')"><pre>                else:                                           # CBV</pre></li>
273
                  
274
              </ol>
275
              
276
            </div>
277
          
278

    
279
          
280
            <div class="commands">
281
                
282
                    <a href="#" onclick="return varToggle(this, '139890740545672')"><span>â–¶</span> Local vars</a>
283
                
284
            </div>
285
            <table style="display: none;" class="vars" id="v139890740545672">
286
              <thead>
287
                <tr>
288
                  <th>Variable</th>
289
                  <th>Value</th>
290
                </tr>
291
              </thead>
292
              <tbody>
293
                
294
                  <tr>
295
                    <td>resolver</td>
296
                    <td class="code"><pre>&lt;RegexURLResolver 'tshilo_dikotla.urls' (None:None) ^/&gt;</pre></td>
297
                  </tr>
298
                
299
                  <tr>
300
                    <td>request</td>
301
                    <td class="code"><pre>&lt;WSGIRequest: POST '/admin/td_infant/infantoffstudy/add/?next=subject_dashboard_url&amp;dashboard_type=infant&amp;dashboard_model=visit&amp;dashboard_id=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;show=forms&amp;registered_subject=1869b5f5-1b99-49fb-b802-f84b7167f5b1&amp;infant_visit=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;visit_attr=infant_visit&amp;entry_order=0&amp;group_title=None'&gt;</pre></td>
302
                  </tr>
303
                
304
                  <tr>
305
                    <td>callback</td>
306
                    <td class="code"><pre>&lt;function ModelAdminFormInstructionsMixin.add_view at 0x7f3ade1528c8&gt;</pre></td>
307
                  </tr>
308
                
309
                  <tr>
310
                    <td>response_is_rendered</td>
311
                    <td class="code"><pre>False</pre></td>
312
                  </tr>
313
                
314
                  <tr>
315
                    <td>middleware_method</td>
316
                    <td class="code"><pre>&lt;bound method CsrfViewMiddleware.process_view of &lt;django.middleware.csrf.CsrfViewMiddleware object at 0x7f3ae17ea7b8&gt;&gt;</pre></td>
317
                  </tr>
318
                
319
                  <tr>
320
                    <td>resolver_match</td>
321
                    <td class="code"><pre>ResolverMatch(func=edc_base.modeladmin.mixins.add_view, args=(), kwargs={}, url_name=td_infant_infantoffstudy_add, app_names=['admin'], namespaces=['admin'])</pre></td>
322
                  </tr>
323
                
324
                  <tr>
325
                    <td>response</td>
326
                    <td class="code"><pre>None</pre></td>
327
                  </tr>
328
                
329
                  <tr>
330
                    <td>self</td>
331
                    <td class="code"><pre>&lt;django.core.handlers.wsgi.WSGIHandler object at 0x7f3ae17ea160&gt;</pre></td>
332
                  </tr>
333
                
334
                  <tr>
335
                    <td>callback_args</td>
336
                    <td class="code"><pre>()</pre></td>
337
                  </tr>
338
                
339
                  <tr>
340
                    <td>urlconf</td>
341
                    <td class="code"><pre>'tshilo_dikotla.urls'</pre></td>
342
                  </tr>
343
                
344
                  <tr>
345
                    <td>wrapped_callback</td>
346
                    <td class="code"><pre>&lt;function ModelAdminFormInstructionsMixin.add_view at 0x7f3ada32ad08&gt;</pre></td>
347
                  </tr>
348
                
349
                  <tr>
350
                    <td>callback_kwargs</td>
351
                    <td class="code"><pre>{}</pre></td>
352
                  </tr>
353
                
354
              </tbody>
355
            </table>
356
          
357
        </li>
358
      
359
        
360
        <li class="frame django">
361
          <code>/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/core/handlers/base.py</code> in <code>get_response</code>
362

    
363
          
364
            <div class="context" id="c139890740546824">
365
              
366
                <ol style="display: none;" start="140" class="pre-context" id="pre139890740546824">
367
                
368
                  <li onclick="toggle('pre139890740546824', 'post139890740546824')"><pre>                    response = middleware_method(request, callback, callback_args, callback_kwargs)</pre></li>
369
                
370
                  <li onclick="toggle('pre139890740546824', 'post139890740546824')"><pre>                    if response:</pre></li>
371
                
372
                  <li onclick="toggle('pre139890740546824', 'post139890740546824')"><pre>                        break</pre></li>
373
                
374
                  <li onclick="toggle('pre139890740546824', 'post139890740546824')"><pre></pre></li>
375
                
376
                  <li onclick="toggle('pre139890740546824', 'post139890740546824')"><pre>            if response is None:</pre></li>
377
                
378
                  <li onclick="toggle('pre139890740546824', 'post139890740546824')"><pre>                wrapped_callback = self.make_view_atomic(callback)</pre></li>
379
                
380
                  <li onclick="toggle('pre139890740546824', 'post139890740546824')"><pre>                try:</pre></li>
381
                
382
                </ol>
383
              
384
              <ol start="147" class="context-line">
385
                <li onclick="toggle('pre139890740546824', 'post139890740546824')"><pre>                    response = wrapped_callback(request, *callback_args, **callback_kwargs)</pre> <span>...</span></li></ol>
386
              
387
                <ol style="display: none;" start="148" class="post-context" id="post139890740546824">
388
                  
389
                  <li onclick="toggle('pre139890740546824', 'post139890740546824')"><pre>                except Exception as e:</pre></li>
390
                  
391
                  <li onclick="toggle('pre139890740546824', 'post139890740546824')"><pre>                    response = self.process_exception_by_middleware(e, request)</pre></li>
392
                  
393
                  <li onclick="toggle('pre139890740546824', 'post139890740546824')"><pre></pre></li>
394
                  
395
                  <li onclick="toggle('pre139890740546824', 'post139890740546824')"><pre>            # Complain if the view returned None (a common error).</pre></li>
396
                  
397
                  <li onclick="toggle('pre139890740546824', 'post139890740546824')"><pre>            if response is None:</pre></li>
398
                  
399
                  <li onclick="toggle('pre139890740546824', 'post139890740546824')"><pre>                if isinstance(callback, types.FunctionType):    # FBV</pre></li>
400
                  
401
              </ol>
402
              
403
            </div>
404
          
405

    
406
          
407
            <div class="commands">
408
                
409
                    <a href="#" onclick="return varToggle(this, '139890740546824')"><span>â–¶</span> Local vars</a>
410
                
411
            </div>
412
            <table style="display: none;" class="vars" id="v139890740546824">
413
              <thead>
414
                <tr>
415
                  <th>Variable</th>
416
                  <th>Value</th>
417
                </tr>
418
              </thead>
419
              <tbody>
420
                
421
                  <tr>
422
                    <td>resolver</td>
423
                    <td class="code"><pre>&lt;RegexURLResolver 'tshilo_dikotla.urls' (None:None) ^/&gt;</pre></td>
424
                  </tr>
425
                
426
                  <tr>
427
                    <td>request</td>
428
                    <td class="code"><pre>&lt;WSGIRequest: POST '/admin/td_infant/infantoffstudy/add/?next=subject_dashboard_url&amp;dashboard_type=infant&amp;dashboard_model=visit&amp;dashboard_id=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;show=forms&amp;registered_subject=1869b5f5-1b99-49fb-b802-f84b7167f5b1&amp;infant_visit=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;visit_attr=infant_visit&amp;entry_order=0&amp;group_title=None'&gt;</pre></td>
429
                  </tr>
430
                
431
                  <tr>
432
                    <td>callback</td>
433
                    <td class="code"><pre>&lt;function ModelAdminFormInstructionsMixin.add_view at 0x7f3ade1528c8&gt;</pre></td>
434
                  </tr>
435
                
436
                  <tr>
437
                    <td>response_is_rendered</td>
438
                    <td class="code"><pre>False</pre></td>
439
                  </tr>
440
                
441
                  <tr>
442
                    <td>middleware_method</td>
443
                    <td class="code"><pre>&lt;bound method CsrfViewMiddleware.process_view of &lt;django.middleware.csrf.CsrfViewMiddleware object at 0x7f3ae17ea7b8&gt;&gt;</pre></td>
444
                  </tr>
445
                
446
                  <tr>
447
                    <td>resolver_match</td>
448
                    <td class="code"><pre>ResolverMatch(func=edc_base.modeladmin.mixins.add_view, args=(), kwargs={}, url_name=td_infant_infantoffstudy_add, app_names=['admin'], namespaces=['admin'])</pre></td>
449
                  </tr>
450
                
451
                  <tr>
452
                    <td>response</td>
453
                    <td class="code"><pre>None</pre></td>
454
                  </tr>
455
                
456
                  <tr>
457
                    <td>self</td>
458
                    <td class="code"><pre>&lt;django.core.handlers.wsgi.WSGIHandler object at 0x7f3ae17ea160&gt;</pre></td>
459
                  </tr>
460
                
461
                  <tr>
462
                    <td>callback_args</td>
463
                    <td class="code"><pre>()</pre></td>
464
                  </tr>
465
                
466
                  <tr>
467
                    <td>urlconf</td>
468
                    <td class="code"><pre>'tshilo_dikotla.urls'</pre></td>
469
                  </tr>
470
                
471
                  <tr>
472
                    <td>wrapped_callback</td>
473
                    <td class="code"><pre>&lt;function ModelAdminFormInstructionsMixin.add_view at 0x7f3ada32ad08&gt;</pre></td>
474
                  </tr>
475
                
476
                  <tr>
477
                    <td>callback_kwargs</td>
478
                    <td class="code"><pre>{}</pre></td>
479
                  </tr>
480
                
481
              </tbody>
482
            </table>
483
          
484
        </li>
485
      
486
        
487
        <li class="frame user">
488
          <code>/usr/lib/python3.5/contextlib.py</code> in <code>inner</code>
489

    
490
          
491
            <div class="context" id="c139890740544264">
492
              
493
                <ol style="display: none;" start="23" class="pre-context" id="pre139890740544264">
494
                
495
                  <li onclick="toggle('pre139890740544264', 'post139890740544264')"><pre>        """</pre></li>
496
                
497
                  <li onclick="toggle('pre139890740544264', 'post139890740544264')"><pre>        return self</pre></li>
498
                
499
                  <li onclick="toggle('pre139890740544264', 'post139890740544264')"><pre></pre></li>
500
                
501
                  <li onclick="toggle('pre139890740544264', 'post139890740544264')"><pre>    def __call__(self, func):</pre></li>
502
                
503
                  <li onclick="toggle('pre139890740544264', 'post139890740544264')"><pre>        @wraps(func)</pre></li>
504
                
505
                  <li onclick="toggle('pre139890740544264', 'post139890740544264')"><pre>        def inner(*args, **kwds):</pre></li>
506
                
507
                  <li onclick="toggle('pre139890740544264', 'post139890740544264')"><pre>            with self._recreate_cm():</pre></li>
508
                
509
                </ol>
510
              
511
              <ol start="30" class="context-line">
512
                <li onclick="toggle('pre139890740544264', 'post139890740544264')"><pre>                return func(*args, **kwds)</pre> <span>...</span></li></ol>
513
              
514
                <ol style="display: none;" start="31" class="post-context" id="post139890740544264">
515
                  
516
                  <li onclick="toggle('pre139890740544264', 'post139890740544264')"><pre>        return inner</pre></li>
517
                  
518
                  <li onclick="toggle('pre139890740544264', 'post139890740544264')"><pre></pre></li>
519
                  
520
                  <li onclick="toggle('pre139890740544264', 'post139890740544264')"><pre></pre></li>
521
                  
522
                  <li onclick="toggle('pre139890740544264', 'post139890740544264')"><pre>class _GeneratorContextManager(ContextDecorator):</pre></li>
523
                  
524
                  <li onclick="toggle('pre139890740544264', 'post139890740544264')"><pre>    """Helper for @contextmanager decorator."""</pre></li>
525
                  
526
                  <li onclick="toggle('pre139890740544264', 'post139890740544264')"><pre></pre></li>
527
                  
528
              </ol>
529
              
530
            </div>
531
          
532

    
533
          
534
            <div class="commands">
535
                
536
                    <a href="#" onclick="return varToggle(this, '139890740544264')"><span>â–¶</span> Local vars</a>
537
                
538
            </div>
539
            <table style="display: none;" class="vars" id="v139890740544264">
540
              <thead>
541
                <tr>
542
                  <th>Variable</th>
543
                  <th>Value</th>
544
                </tr>
545
              </thead>
546
              <tbody>
547
                
548
                  <tr>
549
                    <td>func</td>
550
                    <td class="code"><pre>&lt;function ModelAdminFormInstructionsMixin.add_view at 0x7f3ade1528c8&gt;</pre></td>
551
                  </tr>
552
                
553
                  <tr>
554
                    <td>self</td>
555
                    <td class="code"><pre>&lt;django.db.transaction.Atomic object at 0x7f3ad9451c50&gt;</pre></td>
556
                  </tr>
557
                
558
                  <tr>
559
                    <td>args</td>
560
                    <td class="code"><pre>(&lt;WSGIRequest: POST '/admin/td_infant/infantoffstudy/add/?next=subject_dashboard_url&amp;dashboard_type=infant&amp;dashboard_model=visit&amp;dashboard_id=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;show=forms&amp;registered_subject=1869b5f5-1b99-49fb-b802-f84b7167f5b1&amp;infant_visit=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;visit_attr=infant_visit&amp;entry_order=0&amp;group_title=None'&gt;,)</pre></td>
561
                  </tr>
562
                
563
                  <tr>
564
                    <td>kwds</td>
565
                    <td class="code"><pre>{}</pre></td>
566
                  </tr>
567
                
568
              </tbody>
569
            </table>
570
          
571
        </li>
572
      
573
        
574
        <li class="frame django">
575
          <code>/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/contrib/admin/options.py</code> in <code>wrapper</code>
576

    
577
          
578
            <div class="context" id="c139890761526024">
579
              
580
                <ol style="display: none;" start="534" class="pre-context" id="pre139890761526024">
581
                
582
                  <li onclick="toggle('pre139890761526024', 'post139890761526024')"><pre>        return inline_instances</pre></li>
583
                
584
                  <li onclick="toggle('pre139890761526024', 'post139890761526024')"><pre></pre></li>
585
                
586
                  <li onclick="toggle('pre139890761526024', 'post139890761526024')"><pre>    def get_urls(self):</pre></li>
587
                
588
                  <li onclick="toggle('pre139890761526024', 'post139890761526024')"><pre>        from django.conf.urls import url</pre></li>
589
                
590
                  <li onclick="toggle('pre139890761526024', 'post139890761526024')"><pre></pre></li>
591
                
592
                  <li onclick="toggle('pre139890761526024', 'post139890761526024')"><pre>        def wrap(view):</pre></li>
593
                
594
                  <li onclick="toggle('pre139890761526024', 'post139890761526024')"><pre>            def wrapper(*args, **kwargs):</pre></li>
595
                
596
                </ol>
597
              
598
              <ol start="541" class="context-line">
599
                <li onclick="toggle('pre139890761526024', 'post139890761526024')"><pre>                return self.admin_site.admin_view(view)(*args, **kwargs)</pre> <span>...</span></li></ol>
600
              
601
                <ol style="display: none;" start="542" class="post-context" id="post139890761526024">
602
                  
603
                  <li onclick="toggle('pre139890761526024', 'post139890761526024')"><pre>            wrapper.model_admin = self</pre></li>
604
                  
605
                  <li onclick="toggle('pre139890761526024', 'post139890761526024')"><pre>            return update_wrapper(wrapper, view)</pre></li>
606
                  
607
                  <li onclick="toggle('pre139890761526024', 'post139890761526024')"><pre></pre></li>
608
                  
609
                  <li onclick="toggle('pre139890761526024', 'post139890761526024')"><pre>        info = self.model._meta.app_label, self.model._meta.model_name</pre></li>
610
                  
611
                  <li onclick="toggle('pre139890761526024', 'post139890761526024')"><pre></pre></li>
612
                  
613
                  <li onclick="toggle('pre139890761526024', 'post139890761526024')"><pre>        urlpatterns = [</pre></li>
614
                  
615
              </ol>
616
              
617
            </div>
618
          
619

    
620
          
621
            <div class="commands">
622
                
623
                    <a href="#" onclick="return varToggle(this, '139890761526024')"><span>â–¶</span> Local vars</a>
624
                
625
            </div>
626
            <table style="display: none;" class="vars" id="v139890761526024">
627
              <thead>
628
                <tr>
629
                  <th>Variable</th>
630
                  <th>Value</th>
631
                </tr>
632
              </thead>
633
              <tbody>
634
                
635
                  <tr>
636
                    <td>kwargs</td>
637
                    <td class="code"><pre>{}</pre></td>
638
                  </tr>
639
                
640
                  <tr>
641
                    <td>self</td>
642
                    <td class="code"><pre>&lt;td_infant.admin.infant_off_study_admin.InfantOffStudyAdmin object at 0x7f3ae1925e48&gt;</pre></td>
643
                  </tr>
644
                
645
                  <tr>
646
                    <td>args</td>
647
                    <td class="code"><pre>(&lt;WSGIRequest: POST '/admin/td_infant/infantoffstudy/add/?next=subject_dashboard_url&amp;dashboard_type=infant&amp;dashboard_model=visit&amp;dashboard_id=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;show=forms&amp;registered_subject=1869b5f5-1b99-49fb-b802-f84b7167f5b1&amp;infant_visit=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;visit_attr=infant_visit&amp;entry_order=0&amp;group_title=None'&gt;,)</pre></td>
648
                  </tr>
649
                
650
                  <tr>
651
                    <td>view</td>
652
                    <td class="code"><pre>&lt;bound method ModelAdminFormInstructionsMixin.add_view of &lt;td_infant.admin.infant_off_study_admin.InfantOffStudyAdmin object at 0x7f3ae1925e48&gt;&gt;</pre></td>
653
                  </tr>
654
                
655
              </tbody>
656
            </table>
657
          
658
        </li>
659
      
660
        
661
        <li class="frame django">
662
          <code>/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/utils/decorators.py</code> in <code>_wrapped_view</code>
663

    
664
          
665
            <div class="context" id="c139890767766536">
666
              
667
                <ol style="display: none;" start="142" class="pre-context" id="pre139890767766536">
668
                
669
                  <li onclick="toggle('pre139890767766536', 'post139890767766536')"><pre>                    if result is not None:</pre></li>
670
                
671
                  <li onclick="toggle('pre139890767766536', 'post139890767766536')"><pre>                        return result</pre></li>
672
                
673
                  <li onclick="toggle('pre139890767766536', 'post139890767766536')"><pre>                if hasattr(middleware, 'process_view'):</pre></li>
674
                
675
                  <li onclick="toggle('pre139890767766536', 'post139890767766536')"><pre>                    result = middleware.process_view(request, view_func, args, kwargs)</pre></li>
676
                
677
                  <li onclick="toggle('pre139890767766536', 'post139890767766536')"><pre>                    if result is not None:</pre></li>
678
                
679
                  <li onclick="toggle('pre139890767766536', 'post139890767766536')"><pre>                        return result</pre></li>
680
                
681
                  <li onclick="toggle('pre139890767766536', 'post139890767766536')"><pre>                try:</pre></li>
682
                
683
                </ol>
684
              
685
              <ol start="149" class="context-line">
686
                <li onclick="toggle('pre139890767766536', 'post139890767766536')"><pre>                    response = view_func(request, *args, **kwargs)</pre> <span>...</span></li></ol>
687
              
688
                <ol style="display: none;" start="150" class="post-context" id="post139890767766536">
689
                  
690
                  <li onclick="toggle('pre139890767766536', 'post139890767766536')"><pre>                except Exception as e:</pre></li>
691
                  
692
                  <li onclick="toggle('pre139890767766536', 'post139890767766536')"><pre>                    if hasattr(middleware, 'process_exception'):</pre></li>
693
                  
694
                  <li onclick="toggle('pre139890767766536', 'post139890767766536')"><pre>                        result = middleware.process_exception(request, e)</pre></li>
695
                  
696
                  <li onclick="toggle('pre139890767766536', 'post139890767766536')"><pre>                        if result is not None:</pre></li>
697
                  
698
                  <li onclick="toggle('pre139890767766536', 'post139890767766536')"><pre>                            return result</pre></li>
699
                  
700
                  <li onclick="toggle('pre139890767766536', 'post139890767766536')"><pre>                    raise</pre></li>
701
                  
702
              </ol>
703
              
704
            </div>
705
          
706

    
707
          
708
            <div class="commands">
709
                
710
                    <a href="#" onclick="return varToggle(this, '139890767766536')"><span>â–¶</span> Local vars</a>
711
                
712
            </div>
713
            <table style="display: none;" class="vars" id="v139890767766536">
714
              <thead>
715
                <tr>
716
                  <th>Variable</th>
717
                  <th>Value</th>
718
                </tr>
719
              </thead>
720
              <tbody>
721
                
722
                  <tr>
723
                    <td>args</td>
724
                    <td class="code"><pre>()</pre></td>
725
                  </tr>
726
                
727
                  <tr>
728
                    <td>middleware</td>
729
                    <td class="code"><pre>&lt;django.middleware.csrf.CsrfViewMiddleware object at 0x7f3aebfd1cf8&gt;</pre></td>
730
                  </tr>
731
                
732
                  <tr>
733
                    <td>view_func</td>
734
                    <td class="code"><pre>&lt;function AdminSite.admin_view.&lt;locals&gt;.inner at 0x7f3ad958c268&gt;</pre></td>
735
                  </tr>
736
                
737
                  <tr>
738
                    <td>request</td>
739
                    <td class="code"><pre>&lt;WSGIRequest: POST '/admin/td_infant/infantoffstudy/add/?next=subject_dashboard_url&amp;dashboard_type=infant&amp;dashboard_model=visit&amp;dashboard_id=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;show=forms&amp;registered_subject=1869b5f5-1b99-49fb-b802-f84b7167f5b1&amp;infant_visit=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;visit_attr=infant_visit&amp;entry_order=0&amp;group_title=None'&gt;</pre></td>
740
                  </tr>
741
                
742
                  <tr>
743
                    <td>kwargs</td>
744
                    <td class="code"><pre>{}</pre></td>
745
                  </tr>
746
                
747
                  <tr>
748
                    <td>result</td>
749
                    <td class="code"><pre>None</pre></td>
750
                  </tr>
751
                
752
              </tbody>
753
            </table>
754
          
755
        </li>
756
      
757
        
758
        <li class="frame django">
759
          <code>/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/views/decorators/cache.py</code> in <code>_wrapped_view_func</code>
760

    
761
          
762
            <div class="context" id="c139890759227208">
763
              
764
                <ol style="display: none;" start="50" class="pre-context" id="pre139890759227208">
765
                
766
                  <li onclick="toggle('pre139890759227208', 'post139890759227208')"><pre>def never_cache(view_func):</pre></li>
767
                
768
                  <li onclick="toggle('pre139890759227208', 'post139890759227208')"><pre>    """</pre></li>
769
                
770
                  <li onclick="toggle('pre139890759227208', 'post139890759227208')"><pre>    Decorator that adds headers to a response so that it will</pre></li>
771
                
772
                  <li onclick="toggle('pre139890759227208', 'post139890759227208')"><pre>    never be cached.</pre></li>
773
                
774
                  <li onclick="toggle('pre139890759227208', 'post139890759227208')"><pre>    """</pre></li>
775
                
776
                  <li onclick="toggle('pre139890759227208', 'post139890759227208')"><pre>    @wraps(view_func, assigned=available_attrs(view_func))</pre></li>
777
                
778
                  <li onclick="toggle('pre139890759227208', 'post139890759227208')"><pre>    def _wrapped_view_func(request, *args, **kwargs):</pre></li>
779
                
780
                </ol>
781
              
782
              <ol start="57" class="context-line">
783
                <li onclick="toggle('pre139890759227208', 'post139890759227208')"><pre>        response = view_func(request, *args, **kwargs)</pre> <span>...</span></li></ol>
784
              
785
                <ol style="display: none;" start="58" class="post-context" id="post139890759227208">
786
                  
787
                  <li onclick="toggle('pre139890759227208', 'post139890759227208')"><pre>        add_never_cache_headers(response)</pre></li>
788
                  
789
                  <li onclick="toggle('pre139890759227208', 'post139890759227208')"><pre>        return response</pre></li>
790
                  
791
                  <li onclick="toggle('pre139890759227208', 'post139890759227208')"><pre>    return _wrapped_view_func</pre></li>
792
                  
793
              </ol>
794
              
795
            </div>
796
          
797

    
798
          
799
            <div class="commands">
800
                
801
                    <a href="#" onclick="return varToggle(this, '139890759227208')"><span>â–¶</span> Local vars</a>
802
                
803
            </div>
804
            <table style="display: none;" class="vars" id="v139890759227208">
805
              <thead>
806
                <tr>
807
                  <th>Variable</th>
808
                  <th>Value</th>
809
                </tr>
810
              </thead>
811
              <tbody>
812
                
813
                  <tr>
814
                    <td>kwargs</td>
815
                    <td class="code"><pre>{}</pre></td>
816
                  </tr>
817
                
818
                  <tr>
819
                    <td>args</td>
820
                    <td class="code"><pre>()</pre></td>
821
                  </tr>
822
                
823
                  <tr>
824
                    <td>request</td>
825
                    <td class="code"><pre>&lt;WSGIRequest: POST '/admin/td_infant/infantoffstudy/add/?next=subject_dashboard_url&amp;dashboard_type=infant&amp;dashboard_model=visit&amp;dashboard_id=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;show=forms&amp;registered_subject=1869b5f5-1b99-49fb-b802-f84b7167f5b1&amp;infant_visit=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;visit_attr=infant_visit&amp;entry_order=0&amp;group_title=None'&gt;</pre></td>
826
                  </tr>
827
                
828
                  <tr>
829
                    <td>view_func</td>
830
                    <td class="code"><pre>&lt;function AdminSite.admin_view.&lt;locals&gt;.inner at 0x7f3add887ea0&gt;</pre></td>
831
                  </tr>
832
                
833
              </tbody>
834
            </table>
835
          
836
        </li>
837
      
838
        
839
        <li class="frame django">
840
          <code>/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/contrib/admin/sites.py</code> in <code>inner</code>
841

    
842
          
843
            <div class="context" id="c139890759226120">
844
              
845
                <ol style="display: none;" start="237" class="pre-context" id="pre139890759226120">
846
                
847
                  <li onclick="toggle('pre139890759226120', 'post139890759226120')"><pre>                # Inner import to prevent django.contrib.admin (app) from</pre></li>
848
                
849
                  <li onclick="toggle('pre139890759226120', 'post139890759226120')"><pre>                # importing django.contrib.auth.models.User (unrelated model).</pre></li>
850
                
851
                  <li onclick="toggle('pre139890759226120', 'post139890759226120')"><pre>                from django.contrib.auth.views import redirect_to_login</pre></li>
852
                
853
                  <li onclick="toggle('pre139890759226120', 'post139890759226120')"><pre>                return redirect_to_login(</pre></li>
854
                
855
                  <li onclick="toggle('pre139890759226120', 'post139890759226120')"><pre>                    request.get_full_path(),</pre></li>
856
                
857
                  <li onclick="toggle('pre139890759226120', 'post139890759226120')"><pre>                    reverse('admin:login', current_app=self.name)</pre></li>
858
                
859
                  <li onclick="toggle('pre139890759226120', 'post139890759226120')"><pre>                )</pre></li>
860
                
861
                </ol>
862
              
863
              <ol start="244" class="context-line">
864
                <li onclick="toggle('pre139890759226120', 'post139890759226120')"><pre>            return view(request, *args, **kwargs)</pre> <span>...</span></li></ol>
865
              
866
                <ol style="display: none;" start="245" class="post-context" id="post139890759226120">
867
                  
868
                  <li onclick="toggle('pre139890759226120', 'post139890759226120')"><pre>        if not cacheable:</pre></li>
869
                  
870
                  <li onclick="toggle('pre139890759226120', 'post139890759226120')"><pre>            inner = never_cache(inner)</pre></li>
871
                  
872
                  <li onclick="toggle('pre139890759226120', 'post139890759226120')"><pre>        # We add csrf_protect here so this function can be used as a utility</pre></li>
873
                  
874
                  <li onclick="toggle('pre139890759226120', 'post139890759226120')"><pre>        # function for any view, without having to repeat 'csrf_protect'.</pre></li>
875
                  
876
                  <li onclick="toggle('pre139890759226120', 'post139890759226120')"><pre>        if not getattr(view, 'csrf_exempt', False):</pre></li>
877
                  
878
                  <li onclick="toggle('pre139890759226120', 'post139890759226120')"><pre>            inner = csrf_protect(inner)</pre></li>
879
                  
880
              </ol>
881
              
882
            </div>
883
          
884

    
885
          
886
            <div class="commands">
887
                
888
                    <a href="#" onclick="return varToggle(this, '139890759226120')"><span>â–¶</span> Local vars</a>
889
                
890
            </div>
891
            <table style="display: none;" class="vars" id="v139890759226120">
892
              <thead>
893
                <tr>
894
                  <th>Variable</th>
895
                  <th>Value</th>
896
                </tr>
897
              </thead>
898
              <tbody>
899
                
900
                  <tr>
901
                    <td>kwargs</td>
902
                    <td class="code"><pre>{}</pre></td>
903
                  </tr>
904
                
905
                  <tr>
906
                    <td>self</td>
907
                    <td class="code"><pre>&lt;django.contrib.admin.sites.AdminSite object at 0x7f3aebf924a8&gt;</pre></td>
908
                  </tr>
909
                
910
                  <tr>
911
                    <td>args</td>
912
                    <td class="code"><pre>()</pre></td>
913
                  </tr>
914
                
915
                  <tr>
916
                    <td>request</td>
917
                    <td class="code"><pre>&lt;WSGIRequest: POST '/admin/td_infant/infantoffstudy/add/?next=subject_dashboard_url&amp;dashboard_type=infant&amp;dashboard_model=visit&amp;dashboard_id=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;show=forms&amp;registered_subject=1869b5f5-1b99-49fb-b802-f84b7167f5b1&amp;infant_visit=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;visit_attr=infant_visit&amp;entry_order=0&amp;group_title=None'&gt;</pre></td>
918
                  </tr>
919
                
920
                  <tr>
921
                    <td>view</td>
922
                    <td class="code"><pre>&lt;bound method ModelAdminFormInstructionsMixin.add_view of &lt;td_infant.admin.infant_off_study_admin.InfantOffStudyAdmin object at 0x7f3ae1925e48&gt;&gt;</pre></td>
923
                  </tr>
924
                
925
              </tbody>
926
            </table>
927
          
928
        </li>
929
      
930
        
931
        <li class="frame user">
932
          <code>/home/django/.virtualenvs/tshilo_dikotla/src/edc-base/edc_base/modeladmin/mixins.py</code> in <code>add_view</code>
933

    
934
          
935
            <div class="context" id="c139890759228808">
936
              
937
                <ol style="display: none;" start="334" class="pre-context" id="pre139890759228808">
938
                
939
                  <li onclick="toggle('pre139890759228808', 'post139890759228808')"><pre>        extra_context['additional_instructions'] = (</pre></li>
940
                
941
                  <li onclick="toggle('pre139890759228808', 'post139890759228808')"><pre>            self.change_additional_instructions or self.additional_instructions)</pre></li>
942
                
943
                  <li onclick="toggle('pre139890759228808', 'post139890759228808')"><pre>        return extra_context</pre></li>
944
                
945
                  <li onclick="toggle('pre139890759228808', 'post139890759228808')"><pre></pre></li>
946
                
947
                  <li onclick="toggle('pre139890759228808', 'post139890759228808')"><pre>    def add_view(self, request, form_url='', extra_context=None):</pre></li>
948
                
949
                  <li onclick="toggle('pre139890759228808', 'post139890759228808')"><pre>        extra_context = self.update_add_instructions(extra_context)</pre></li>
950
                
951
                  <li onclick="toggle('pre139890759228808', 'post139890759228808')"><pre>        return super(ModelAdminFormInstructionsMixin, self).add_view(</pre></li>
952
                
953
                </ol>
954
              
955
              <ol start="341" class="context-line">
956
                <li onclick="toggle('pre139890759228808', 'post139890759228808')"><pre>            request, form_url=form_url, extra_context=extra_context)</pre> <span>...</span></li></ol>
957
              
958
                <ol style="display: none;" start="342" class="post-context" id="post139890759228808">
959
                  
960
                  <li onclick="toggle('pre139890759228808', 'post139890759228808')"><pre></pre></li>
961
                  
962
                  <li onclick="toggle('pre139890759228808', 'post139890759228808')"><pre>    def change_view(self, request, object_id, form_url='', extra_context=None):</pre></li>
963
                  
964
                  <li onclick="toggle('pre139890759228808', 'post139890759228808')"><pre>        extra_context = self.update_change_instructions(extra_context)</pre></li>
965
                  
966
                  <li onclick="toggle('pre139890759228808', 'post139890759228808')"><pre>        return super(ModelAdminFormInstructionsMixin, self).change_view(</pre></li>
967
                  
968
                  <li onclick="toggle('pre139890759228808', 'post139890759228808')"><pre>            request, object_id, form_url=form_url, extra_context=extra_context)</pre></li>
969
                  
970
                  <li onclick="toggle('pre139890759228808', 'post139890759228808')"><pre></pre></li>
971
                  
972
              </ol>
973
              
974
            </div>
975
          
976

    
977
          
978
            <div class="commands">
979
                
980
                    <a href="#" onclick="return varToggle(this, '139890759228808')"><span>â–¶</span> Local vars</a>
981
                
982
            </div>
983
            <table style="display: none;" class="vars" id="v139890759228808">
984
              <thead>
985
                <tr>
986
                  <th>Variable</th>
987
                  <th>Value</th>
988
                </tr>
989
              </thead>
990
              <tbody>
991
                
992
                  <tr>
993
                    <td>self</td>
994
                    <td class="code"><pre>&lt;td_infant.admin.infant_off_study_admin.InfantOffStudyAdmin object at 0x7f3ae1925e48&gt;</pre></td>
995
                  </tr>
996
                
997
                  <tr>
998
                    <td>form_url</td>
999
                    <td class="code"><pre>''</pre></td>
1000
                  </tr>
1001
                
1002
                  <tr>
1003
                    <td>__class__</td>
1004
                    <td class="code"><pre>&lt;class 'edc_base.modeladmin.mixins.ModelAdminFormInstructionsMixin'&gt;</pre></td>
1005
                  </tr>
1006
                
1007
                  <tr>
1008
                    <td>request</td>
1009
                    <td class="code"><pre>&lt;WSGIRequest: POST '/admin/td_infant/infantoffstudy/add/?next=subject_dashboard_url&amp;dashboard_type=infant&amp;dashboard_model=visit&amp;dashboard_id=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;show=forms&amp;registered_subject=1869b5f5-1b99-49fb-b802-f84b7167f5b1&amp;infant_visit=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;visit_attr=infant_visit&amp;entry_order=0&amp;group_title=None'&gt;</pre></td>
1010
                  </tr>
1011
                
1012
                  <tr>
1013
                    <td>extra_context</td>
1014
                    <td class="code"><pre>{'additional_instructions': None,
1015
 'instructions': 'Please complete the form below. Required questions are in '
1016
                 'bold. When all required questions are complete click SAVE '
1017
                 'or, if available, SAVE NEXT. Based on your responses, '
1018
                 'additional questions may be required or some answers may '
1019
                 'need to be corrected.'}</pre></td>
1020
                  </tr>
1021
                
1022
              </tbody>
1023
            </table>
1024
          
1025
        </li>
1026
      
1027
        
1028
        <li class="frame django">
1029
          <code>/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/contrib/admin/options.py</code> in <code>add_view</code>
1030

    
1031
          
1032
            <div class="context" id="c139890759227528">
1033
              
1034
                <ol style="display: none;" start="1430" class="pre-context" id="pre139890759227528">
1035
                
1036
                  <li onclick="toggle('pre139890759227528', 'post139890759227528')"><pre>            add = False</pre></li>
1037
                
1038
                  <li onclick="toggle('pre139890759227528', 'post139890759227528')"><pre></pre></li>
1039
                
1040
                  <li onclick="toggle('pre139890759227528', 'post139890759227528')"><pre>        context.update(extra_context or {})</pre></li>
1041
                
1042
                  <li onclick="toggle('pre139890759227528', 'post139890759227528')"><pre></pre></li>
1043
                
1044
                  <li onclick="toggle('pre139890759227528', 'post139890759227528')"><pre>        return self.render_change_form(request, context, add=add, change=not add, obj=obj, form_url=form_url)</pre></li>
1045
                
1046
                  <li onclick="toggle('pre139890759227528', 'post139890759227528')"><pre></pre></li>
1047
                
1048
                  <li onclick="toggle('pre139890759227528', 'post139890759227528')"><pre>    def add_view(self, request, form_url='', extra_context=None):</pre></li>
1049
                
1050
                </ol>
1051
              
1052
              <ol start="1437" class="context-line">
1053
                <li onclick="toggle('pre139890759227528', 'post139890759227528')"><pre>        return self.changeform_view(request, None, form_url, extra_context)</pre> <span>...</span></li></ol>
1054
              
1055
                <ol style="display: none;" start="1438" class="post-context" id="post139890759227528">
1056
                  
1057
                  <li onclick="toggle('pre139890759227528', 'post139890759227528')"><pre></pre></li>
1058
                  
1059
                  <li onclick="toggle('pre139890759227528', 'post139890759227528')"><pre>    def change_view(self, request, object_id, form_url='', extra_context=None):</pre></li>
1060
                  
1061
                  <li onclick="toggle('pre139890759227528', 'post139890759227528')"><pre>        return self.changeform_view(request, object_id, form_url, extra_context)</pre></li>
1062
                  
1063
                  <li onclick="toggle('pre139890759227528', 'post139890759227528')"><pre></pre></li>
1064
                  
1065
                  <li onclick="toggle('pre139890759227528', 'post139890759227528')"><pre>    @csrf_protect_m</pre></li>
1066
                  
1067
                  <li onclick="toggle('pre139890759227528', 'post139890759227528')"><pre>    def changelist_view(self, request, extra_context=None):</pre></li>
1068
                  
1069
              </ol>
1070
              
1071
            </div>
1072
          
1073

    
1074
          
1075
            <div class="commands">
1076
                
1077
                    <a href="#" onclick="return varToggle(this, '139890759227528')"><span>â–¶</span> Local vars</a>
1078
                
1079
            </div>
1080
            <table style="display: none;" class="vars" id="v139890759227528">
1081
              <thead>
1082
                <tr>
1083
                  <th>Variable</th>
1084
                  <th>Value</th>
1085
                </tr>
1086
              </thead>
1087
              <tbody>
1088
                
1089
                  <tr>
1090
                    <td>self</td>
1091
                    <td class="code"><pre>&lt;td_infant.admin.infant_off_study_admin.InfantOffStudyAdmin object at 0x7f3ae1925e48&gt;</pre></td>
1092
                  </tr>
1093
                
1094
                  <tr>
1095
                    <td>form_url</td>
1096
                    <td class="code"><pre>''</pre></td>
1097
                  </tr>
1098
                
1099
                  <tr>
1100
                    <td>request</td>
1101
                    <td class="code"><pre>&lt;WSGIRequest: POST '/admin/td_infant/infantoffstudy/add/?next=subject_dashboard_url&amp;dashboard_type=infant&amp;dashboard_model=visit&amp;dashboard_id=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;show=forms&amp;registered_subject=1869b5f5-1b99-49fb-b802-f84b7167f5b1&amp;infant_visit=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;visit_attr=infant_visit&amp;entry_order=0&amp;group_title=None'&gt;</pre></td>
1102
                  </tr>
1103
                
1104
                  <tr>
1105
                    <td>extra_context</td>
1106
                    <td class="code"><pre>{'additional_instructions': None,
1107
 'instructions': 'Please complete the form below. Required questions are in '
1108
                 'bold. When all required questions are complete click SAVE '
1109
                 'or, if available, SAVE NEXT. Based on your responses, '
1110
                 'additional questions may be required or some answers may '
1111
                 'need to be corrected.'}</pre></td>
1112
                  </tr>
1113
                
1114
              </tbody>
1115
            </table>
1116
          
1117
        </li>
1118
      
1119
        
1120
        <li class="frame django">
1121
          <code>/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/utils/decorators.py</code> in <code>_wrapper</code>
1122

    
1123
          
1124
            <div class="context" id="c139890801082056">
1125
              
1126
                <ol style="display: none;" start="60" class="pre-context" id="pre139890801082056">
1127
                
1128
                  <li onclick="toggle('pre139890801082056', 'post139890801082056')"><pre>        def _wrapper(self, *args, **kwargs):</pre></li>
1129
                
1130
                  <li onclick="toggle('pre139890801082056', 'post139890801082056')"><pre>            @decorate</pre></li>
1131
                
1132
                  <li onclick="toggle('pre139890801082056', 'post139890801082056')"><pre>            def bound_func(*args2, **kwargs2):</pre></li>
1133
                
1134
                  <li onclick="toggle('pre139890801082056', 'post139890801082056')"><pre>                return func.__get__(self, type(self))(*args2, **kwargs2)</pre></li>
1135
                
1136
                  <li onclick="toggle('pre139890801082056', 'post139890801082056')"><pre>            # bound_func has the signature that 'decorator' expects i.e.  no</pre></li>
1137
                
1138
                  <li onclick="toggle('pre139890801082056', 'post139890801082056')"><pre>            # 'self' argument, but it is a closure over self so it can call</pre></li>
1139
                
1140
                  <li onclick="toggle('pre139890801082056', 'post139890801082056')"><pre>            # 'func' correctly.</pre></li>
1141
                
1142
                </ol>
1143
              
1144
              <ol start="67" class="context-line">
1145
                <li onclick="toggle('pre139890801082056', 'post139890801082056')"><pre>            return bound_func(*args, **kwargs)</pre> <span>...</span></li></ol>
1146
              
1147
                <ol style="display: none;" start="68" class="post-context" id="post139890801082056">
1148
                  
1149
                  <li onclick="toggle('pre139890801082056', 'post139890801082056')"><pre>        # In case 'decorator' adds attributes to the function it decorates, we</pre></li>
1150
                  
1151
                  <li onclick="toggle('pre139890801082056', 'post139890801082056')"><pre>        # want to copy those. We don't have access to bound_func in this scope,</pre></li>
1152
                  
1153
                  <li onclick="toggle('pre139890801082056', 'post139890801082056')"><pre>        # but we can cheat by using it on a dummy function.</pre></li>
1154
                  
1155
                  <li onclick="toggle('pre139890801082056', 'post139890801082056')"><pre></pre></li>
1156
                  
1157
                  <li onclick="toggle('pre139890801082056', 'post139890801082056')"><pre>        @decorate</pre></li>
1158
                  
1159
                  <li onclick="toggle('pre139890801082056', 'post139890801082056')"><pre>        def dummy(*args, **kwargs):</pre></li>
1160
                  
1161
              </ol>
1162
              
1163
            </div>
1164
          
1165

    
1166
          
1167
            <div class="commands">
1168
                
1169
                    <a href="#" onclick="return varToggle(this, '139890801082056')"><span>â–¶</span> Local vars</a>
1170
                
1171
            </div>
1172
            <table style="display: none;" class="vars" id="v139890801082056">
1173
              <thead>
1174
                <tr>
1175
                  <th>Variable</th>
1176
                  <th>Value</th>
1177
                </tr>
1178
              </thead>
1179
              <tbody>
1180
                
1181
                  <tr>
1182
                    <td>self</td>
1183
                    <td class="code"><pre>&lt;td_infant.admin.infant_off_study_admin.InfantOffStudyAdmin object at 0x7f3ae1925e48&gt;</pre></td>
1184
                  </tr>
1185
                
1186
                  <tr>
1187
                    <td>args</td>
1188
                    <td class="code"><pre>(&lt;WSGIRequest: POST '/admin/td_infant/infantoffstudy/add/?next=subject_dashboard_url&amp;dashboard_type=infant&amp;dashboard_model=visit&amp;dashboard_id=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;show=forms&amp;registered_subject=1869b5f5-1b99-49fb-b802-f84b7167f5b1&amp;infant_visit=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;visit_attr=infant_visit&amp;entry_order=0&amp;group_title=None'&gt;,
1189
 None,
1190
 '',
1191
 {'additional_instructions': None,
1192
  'instructions': 'Please complete the form below. Required questions are in '
1193
                  'bold. When all required questions are complete click SAVE '
1194
                  'or, if available, SAVE NEXT. Based on your responses, '
1195
                  'additional questions may be required or some answers may '
1196
                  'need to be corrected.'})</pre></td>
1197
                  </tr>
1198
                
1199
                  <tr>
1200
                    <td>bound_func</td>
1201
                    <td class="code"><pre>&lt;function method_decorator.&lt;locals&gt;._dec.&lt;locals&gt;._wrapper.&lt;locals&gt;.bound_func at 0x7f3ad958c620&gt;</pre></td>
1202
                  </tr>
1203
                
1204
                  <tr>
1205
                    <td>decorate</td>
1206
                    <td class="code"><pre>&lt;function method_decorator.&lt;locals&gt;._dec.&lt;locals&gt;.decorate at 0x7f3aebf869d8&gt;</pre></td>
1207
                  </tr>
1208
                
1209
                  <tr>
1210
                    <td>func</td>
1211
                    <td class="code"><pre>&lt;function ModelAdmin.changeform_view at 0x7f3aebf86950&gt;</pre></td>
1212
                  </tr>
1213
                
1214
                  <tr>
1215
                    <td>kwargs</td>
1216
                    <td class="code"><pre>{}</pre></td>
1217
                  </tr>
1218
                
1219
              </tbody>
1220
            </table>
1221
          
1222
        </li>
1223
      
1224
        
1225
        <li class="frame django">
1226
          <code>/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/utils/decorators.py</code> in <code>_wrapped_view</code>
1227

    
1228
          
1229
            <div class="context" id="c139890796444552">
1230
              
1231
                <ol style="display: none;" start="142" class="pre-context" id="pre139890796444552">
1232
                
1233
                  <li onclick="toggle('pre139890796444552', 'post139890796444552')"><pre>                    if result is not None:</pre></li>
1234
                
1235
                  <li onclick="toggle('pre139890796444552', 'post139890796444552')"><pre>                        return result</pre></li>
1236
                
1237
                  <li onclick="toggle('pre139890796444552', 'post139890796444552')"><pre>                if hasattr(middleware, 'process_view'):</pre></li>
1238
                
1239
                  <li onclick="toggle('pre139890796444552', 'post139890796444552')"><pre>                    result = middleware.process_view(request, view_func, args, kwargs)</pre></li>
1240
                
1241
                  <li onclick="toggle('pre139890796444552', 'post139890796444552')"><pre>                    if result is not None:</pre></li>
1242
                
1243
                  <li onclick="toggle('pre139890796444552', 'post139890796444552')"><pre>                        return result</pre></li>
1244
                
1245
                  <li onclick="toggle('pre139890796444552', 'post139890796444552')"><pre>                try:</pre></li>
1246
                
1247
                </ol>
1248
              
1249
              <ol start="149" class="context-line">
1250
                <li onclick="toggle('pre139890796444552', 'post139890796444552')"><pre>                    response = view_func(request, *args, **kwargs)</pre> <span>...</span></li></ol>
1251
              
1252
                <ol style="display: none;" start="150" class="post-context" id="post139890796444552">
1253
                  
1254
                  <li onclick="toggle('pre139890796444552', 'post139890796444552')"><pre>                except Exception as e:</pre></li>
1255
                  
1256
                  <li onclick="toggle('pre139890796444552', 'post139890796444552')"><pre>                    if hasattr(middleware, 'process_exception'):</pre></li>
1257
                  
1258
                  <li onclick="toggle('pre139890796444552', 'post139890796444552')"><pre>                        result = middleware.process_exception(request, e)</pre></li>
1259
                  
1260
                  <li onclick="toggle('pre139890796444552', 'post139890796444552')"><pre>                        if result is not None:</pre></li>
1261
                  
1262
                  <li onclick="toggle('pre139890796444552', 'post139890796444552')"><pre>                            return result</pre></li>
1263
                  
1264
                  <li onclick="toggle('pre139890796444552', 'post139890796444552')"><pre>                    raise</pre></li>
1265
                  
1266
              </ol>
1267
              
1268
            </div>
1269
          
1270

    
1271
          
1272
            <div class="commands">
1273
                
1274
                    <a href="#" onclick="return varToggle(this, '139890796444552')"><span>â–¶</span> Local vars</a>
1275
                
1276
            </div>
1277
            <table style="display: none;" class="vars" id="v139890796444552">
1278
              <thead>
1279
                <tr>
1280
                  <th>Variable</th>
1281
                  <th>Value</th>
1282
                </tr>
1283
              </thead>
1284
              <tbody>
1285
                
1286
                  <tr>
1287
                    <td>args</td>
1288
                    <td class="code"><pre>(None,
1289
 '',
1290
 {'additional_instructions': None,
1291
  'instructions': 'Please complete the form below. Required questions are in '
1292
                  'bold. When all required questions are complete click SAVE '
1293
                  'or, if available, SAVE NEXT. Based on your responses, '
1294
                  'additional questions may be required or some answers may '
1295
                  'need to be corrected.'})</pre></td>
1296
                  </tr>
1297
                
1298
                  <tr>
1299
                    <td>middleware</td>
1300
                    <td class="code"><pre>&lt;django.middleware.csrf.CsrfViewMiddleware object at 0x7f3aebfd1cf8&gt;</pre></td>
1301
                  </tr>
1302
                
1303
                  <tr>
1304
                    <td>view_func</td>
1305
                    <td class="code"><pre>&lt;function method_decorator.&lt;locals&gt;._dec.&lt;locals&gt;._wrapper.&lt;locals&gt;.bound_func at 0x7f3ad958c378&gt;</pre></td>
1306
                  </tr>
1307
                
1308
                  <tr>
1309
                    <td>request</td>
1310
                    <td class="code"><pre>&lt;WSGIRequest: POST '/admin/td_infant/infantoffstudy/add/?next=subject_dashboard_url&amp;dashboard_type=infant&amp;dashboard_model=visit&amp;dashboard_id=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;show=forms&amp;registered_subject=1869b5f5-1b99-49fb-b802-f84b7167f5b1&amp;infant_visit=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;visit_attr=infant_visit&amp;entry_order=0&amp;group_title=None'&gt;</pre></td>
1311
                  </tr>
1312
                
1313
                  <tr>
1314
                    <td>kwargs</td>
1315
                    <td class="code"><pre>{}</pre></td>
1316
                  </tr>
1317
                
1318
                  <tr>
1319
                    <td>result</td>
1320
                    <td class="code"><pre>None</pre></td>
1321
                  </tr>
1322
                
1323
              </tbody>
1324
            </table>
1325
          
1326
        </li>
1327
      
1328
        
1329
        <li class="frame django">
1330
          <code>/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/utils/decorators.py</code> in <code>bound_func</code>
1331

    
1332
          
1333
            <div class="context" id="c139890737546568">
1334
              
1335
                <ol style="display: none;" start="56" class="pre-context" id="pre139890737546568">
1336
                
1337
                  <li onclick="toggle('pre139890737546568', 'post139890737546568')"><pre>                    function = dec(function)</pre></li>
1338
                
1339
                  <li onclick="toggle('pre139890737546568', 'post139890737546568')"><pre>                return function</pre></li>
1340
                
1341
                  <li onclick="toggle('pre139890737546568', 'post139890737546568')"><pre>            return decorator(function)</pre></li>
1342
                
1343
                  <li onclick="toggle('pre139890737546568', 'post139890737546568')"><pre></pre></li>
1344
                
1345
                  <li onclick="toggle('pre139890737546568', 'post139890737546568')"><pre>        def _wrapper(self, *args, **kwargs):</pre></li>
1346
                
1347
                  <li onclick="toggle('pre139890737546568', 'post139890737546568')"><pre>            @decorate</pre></li>
1348
                
1349
                  <li onclick="toggle('pre139890737546568', 'post139890737546568')"><pre>            def bound_func(*args2, **kwargs2):</pre></li>
1350
                
1351
                </ol>
1352
              
1353
              <ol start="63" class="context-line">
1354
                <li onclick="toggle('pre139890737546568', 'post139890737546568')"><pre>                return func.__get__(self, type(self))(*args2, **kwargs2)</pre> <span>...</span></li></ol>
1355
              
1356
                <ol style="display: none;" start="64" class="post-context" id="post139890737546568">
1357
                  
1358
                  <li onclick="toggle('pre139890737546568', 'post139890737546568')"><pre>            # bound_func has the signature that 'decorator' expects i.e.  no</pre></li>
1359
                  
1360
                  <li onclick="toggle('pre139890737546568', 'post139890737546568')"><pre>            # 'self' argument, but it is a closure over self so it can call</pre></li>
1361
                  
1362
                  <li onclick="toggle('pre139890737546568', 'post139890737546568')"><pre>            # 'func' correctly.</pre></li>
1363
                  
1364
                  <li onclick="toggle('pre139890737546568', 'post139890737546568')"><pre>            return bound_func(*args, **kwargs)</pre></li>
1365
                  
1366
                  <li onclick="toggle('pre139890737546568', 'post139890737546568')"><pre>        # In case 'decorator' adds attributes to the function it decorates, we</pre></li>
1367
                  
1368
                  <li onclick="toggle('pre139890737546568', 'post139890737546568')"><pre>        # want to copy those. We don't have access to bound_func in this scope,</pre></li>
1369
                  
1370
              </ol>
1371
              
1372
            </div>
1373
          
1374

    
1375
          
1376
            <div class="commands">
1377
                
1378
                    <a href="#" onclick="return varToggle(this, '139890737546568')"><span>â–¶</span> Local vars</a>
1379
                
1380
            </div>
1381
            <table style="display: none;" class="vars" id="v139890737546568">
1382
              <thead>
1383
                <tr>
1384
                  <th>Variable</th>
1385
                  <th>Value</th>
1386
                </tr>
1387
              </thead>
1388
              <tbody>
1389
                
1390
                  <tr>
1391
                    <td>func</td>
1392
                    <td class="code"><pre>&lt;function ModelAdmin.changeform_view at 0x7f3aebf86950&gt;</pre></td>
1393
                  </tr>
1394
                
1395
                  <tr>
1396
                    <td>self</td>
1397
                    <td class="code"><pre>&lt;td_infant.admin.infant_off_study_admin.InfantOffStudyAdmin object at 0x7f3ae1925e48&gt;</pre></td>
1398
                  </tr>
1399
                
1400
                  <tr>
1401
                    <td>kwargs2</td>
1402
                    <td class="code"><pre>{}</pre></td>
1403
                  </tr>
1404
                
1405
                  <tr>
1406
                    <td>args2</td>
1407
                    <td class="code"><pre>(&lt;WSGIRequest: POST '/admin/td_infant/infantoffstudy/add/?next=subject_dashboard_url&amp;dashboard_type=infant&amp;dashboard_model=visit&amp;dashboard_id=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;show=forms&amp;registered_subject=1869b5f5-1b99-49fb-b802-f84b7167f5b1&amp;infant_visit=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;visit_attr=infant_visit&amp;entry_order=0&amp;group_title=None'&gt;,
1408
 None,
1409
 '',
1410
 {'additional_instructions': None,
1411
  'instructions': 'Please complete the form below. Required questions are in '
1412
                  'bold. When all required questions are complete click SAVE '
1413
                  'or, if available, SAVE NEXT. Based on your responses, '
1414
                  'additional questions may be required or some answers may '
1415
                  'need to be corrected.'})</pre></td>
1416
                  </tr>
1417
                
1418
              </tbody>
1419
            </table>
1420
          
1421
        </li>
1422
      
1423
        
1424
        <li class="frame user">
1425
          <code>/usr/lib/python3.5/contextlib.py</code> in <code>inner</code>
1426

    
1427
          
1428
            <div class="context" id="c139890801949832">
1429
              
1430
                <ol style="display: none;" start="23" class="pre-context" id="pre139890801949832">
1431
                
1432
                  <li onclick="toggle('pre139890801949832', 'post139890801949832')"><pre>        """</pre></li>
1433
                
1434
                  <li onclick="toggle('pre139890801949832', 'post139890801949832')"><pre>        return self</pre></li>
1435
                
1436
                  <li onclick="toggle('pre139890801949832', 'post139890801949832')"><pre></pre></li>
1437
                
1438
                  <li onclick="toggle('pre139890801949832', 'post139890801949832')"><pre>    def __call__(self, func):</pre></li>
1439
                
1440
                  <li onclick="toggle('pre139890801949832', 'post139890801949832')"><pre>        @wraps(func)</pre></li>
1441
                
1442
                  <li onclick="toggle('pre139890801949832', 'post139890801949832')"><pre>        def inner(*args, **kwds):</pre></li>
1443
                
1444
                  <li onclick="toggle('pre139890801949832', 'post139890801949832')"><pre>            with self._recreate_cm():</pre></li>
1445
                
1446
                </ol>
1447
              
1448
              <ol start="30" class="context-line">
1449
                <li onclick="toggle('pre139890801949832', 'post139890801949832')"><pre>                return func(*args, **kwds)</pre> <span>...</span></li></ol>
1450
              
1451
                <ol style="display: none;" start="31" class="post-context" id="post139890801949832">
1452
                  
1453
                  <li onclick="toggle('pre139890801949832', 'post139890801949832')"><pre>        return inner</pre></li>
1454
                  
1455
                  <li onclick="toggle('pre139890801949832', 'post139890801949832')"><pre></pre></li>
1456
                  
1457
                  <li onclick="toggle('pre139890801949832', 'post139890801949832')"><pre></pre></li>
1458
                  
1459
                  <li onclick="toggle('pre139890801949832', 'post139890801949832')"><pre>class _GeneratorContextManager(ContextDecorator):</pre></li>
1460
                  
1461
                  <li onclick="toggle('pre139890801949832', 'post139890801949832')"><pre>    """Helper for @contextmanager decorator."""</pre></li>
1462
                  
1463
                  <li onclick="toggle('pre139890801949832', 'post139890801949832')"><pre></pre></li>
1464
                  
1465
              </ol>
1466
              
1467
            </div>
1468
          
1469

    
1470
          
1471
            <div class="commands">
1472
                
1473
                    <a href="#" onclick="return varToggle(this, '139890801949832')"><span>â–¶</span> Local vars</a>
1474
                
1475
            </div>
1476
            <table style="display: none;" class="vars" id="v139890801949832">
1477
              <thead>
1478
                <tr>
1479
                  <th>Variable</th>
1480
                  <th>Value</th>
1481
                </tr>
1482
              </thead>
1483
              <tbody>
1484
                
1485
                  <tr>
1486
                    <td>func</td>
1487
                    <td class="code"><pre>&lt;function ModelAdmin.changeform_view at 0x7f3aebf868c8&gt;</pre></td>
1488
                  </tr>
1489
                
1490
                  <tr>
1491
                    <td>self</td>
1492
                    <td class="code"><pre>&lt;django.db.transaction.Atomic object at 0x7f3aebf7eac8&gt;</pre></td>
1493
                  </tr>
1494
                
1495
                  <tr>
1496
                    <td>args</td>
1497
                    <td class="code"><pre>(&lt;td_infant.admin.infant_off_study_admin.InfantOffStudyAdmin object at 0x7f3ae1925e48&gt;,
1498
 &lt;WSGIRequest: POST '/admin/td_infant/infantoffstudy/add/?next=subject_dashboard_url&amp;dashboard_type=infant&amp;dashboard_model=visit&amp;dashboard_id=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;show=forms&amp;registered_subject=1869b5f5-1b99-49fb-b802-f84b7167f5b1&amp;infant_visit=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;visit_attr=infant_visit&amp;entry_order=0&amp;group_title=None'&gt;,
1499
 None,
1500
 '',
1501
 {'additional_instructions': None,
1502
  'instructions': 'Please complete the form below. Required questions are in '
1503
                  'bold. When all required questions are complete click SAVE '
1504
                  'or, if available, SAVE NEXT. Based on your responses, '
1505
                  'additional questions may be required or some answers may '
1506
                  'need to be corrected.'})</pre></td>
1507
                  </tr>
1508
                
1509
                  <tr>
1510
                    <td>kwds</td>
1511
                    <td class="code"><pre>{}</pre></td>
1512
                  </tr>
1513
                
1514
              </tbody>
1515
            </table>
1516
          
1517
        </li>
1518
      
1519
        
1520
        <li class="frame django">
1521
          <code>/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/contrib/admin/options.py</code> in <code>changeform_view</code>
1522

    
1523
          
1524
            <div class="context" id="c139890805970056">
1525
              
1526
                <ol style="display: none;" start="1376" class="pre-context" id="pre139890805970056">
1527
                
1528
                  <li onclick="toggle('pre139890805970056', 'post139890805970056')"><pre>            formsets, inline_instances = self._create_formsets(request, new_object, change=not add)</pre></li>
1529
                
1530
                  <li onclick="toggle('pre139890805970056', 'post139890805970056')"><pre>            if all_valid(formsets) and form_validated:</pre></li>
1531
                
1532
                  <li onclick="toggle('pre139890805970056', 'post139890805970056')"><pre>                self.save_model(request, new_object, form, not add)</pre></li>
1533
                
1534
                  <li onclick="toggle('pre139890805970056', 'post139890805970056')"><pre>                self.save_related(request, form, formsets, not add)</pre></li>
1535
                
1536
                  <li onclick="toggle('pre139890805970056', 'post139890805970056')"><pre>                change_message = self.construct_change_message(request, form, formsets, add)</pre></li>
1537
                
1538
                  <li onclick="toggle('pre139890805970056', 'post139890805970056')"><pre>                if add:</pre></li>
1539
                
1540
                  <li onclick="toggle('pre139890805970056', 'post139890805970056')"><pre>                    self.log_addition(request, new_object, change_message)</pre></li>
1541
                
1542
                </ol>
1543
              
1544
              <ol start="1383" class="context-line">
1545
                <li onclick="toggle('pre139890805970056', 'post139890805970056')"><pre>                    return self.response_add(request, new_object)</pre> <span>...</span></li></ol>
1546
              
1547
                <ol style="display: none;" start="1384" class="post-context" id="post139890805970056">
1548
                  
1549
                  <li onclick="toggle('pre139890805970056', 'post139890805970056')"><pre>                else:</pre></li>
1550
                  
1551
                  <li onclick="toggle('pre139890805970056', 'post139890805970056')"><pre>                    self.log_change(request, new_object, change_message)</pre></li>
1552
                  
1553
                  <li onclick="toggle('pre139890805970056', 'post139890805970056')"><pre>                    return self.response_change(request, new_object)</pre></li>
1554
                  
1555
                  <li onclick="toggle('pre139890805970056', 'post139890805970056')"><pre>            else:</pre></li>
1556
                  
1557
                  <li onclick="toggle('pre139890805970056', 'post139890805970056')"><pre>                form_validated = False</pre></li>
1558
                  
1559
                  <li onclick="toggle('pre139890805970056', 'post139890805970056')"><pre>        else:</pre></li>
1560
                  
1561
              </ol>
1562
              
1563
            </div>
1564
          
1565

    
1566
          
1567
            <div class="commands">
1568
                
1569
                    <a href="#" onclick="return varToggle(this, '139890805970056')"><span>â–¶</span> Local vars</a>
1570
                
1571
            </div>
1572
            <table style="display: none;" class="vars" id="v139890805970056">
1573
              <thead>
1574
                <tr>
1575
                  <th>Variable</th>
1576
                  <th>Value</th>
1577
                </tr>
1578
              </thead>
1579
              <tbody>
1580
                
1581
                  <tr>
1582
                    <td>model</td>
1583
                    <td class="code"><pre>&lt;class 'td_infant.models.infant_off_study.InfantOffStudy'&gt;</pre></td>
1584
                  </tr>
1585
                
1586
                  <tr>
1587
                    <td>add</td>
1588
                    <td class="code"><pre>True</pre></td>
1589
                  </tr>
1590
                
1591
                  <tr>
1592
                    <td>request</td>
1593
                    <td class="code"><pre>&lt;WSGIRequest: POST '/admin/td_infant/infantoffstudy/add/?next=subject_dashboard_url&amp;dashboard_type=infant&amp;dashboard_model=visit&amp;dashboard_id=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;show=forms&amp;registered_subject=1869b5f5-1b99-49fb-b802-f84b7167f5b1&amp;infant_visit=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;visit_attr=infant_visit&amp;entry_order=0&amp;group_title=None'&gt;</pre></td>
1594
                  </tr>
1595
                
1596
                  <tr>
1597
                    <td>opts</td>
1598
                    <td class="code"><pre>&lt;Options for InfantOffStudy&gt;</pre></td>
1599
                  </tr>
1600
                
1601
                  <tr>
1602
                    <td>form_validated</td>
1603
                    <td class="code"><pre>True</pre></td>
1604
                  </tr>
1605
                
1606
                  <tr>
1607
                    <td>ModelForm</td>
1608
                    <td class="code"><pre>&lt;class 'django.forms.widgets.InfantOffStudyForm'&gt;</pre></td>
1609
                  </tr>
1610
                
1611
                  <tr>
1612
                    <td>to_field</td>
1613
                    <td class="code"><pre>None</pre></td>
1614
                  </tr>
1615
                
1616
                  <tr>
1617
                    <td>form</td>
1618
                    <td class="code"><pre>&lt;InfantOffStudyForm bound=True, valid=True, fields=(infant_visit;report_datetime;offstudy_date;reason;reason_other;comment)&gt;</pre></td>
1619
                  </tr>
1620
                
1621
                  <tr>
1622
                    <td>self</td>
1623
                    <td class="code"><pre>&lt;td_infant.admin.infant_off_study_admin.InfantOffStudyAdmin object at 0x7f3ae1925e48&gt;</pre></td>
1624
                  </tr>
1625
                
1626
                  <tr>
1627
                    <td>form_url</td>
1628
                    <td class="code"><pre>''</pre></td>
1629
                  </tr>
1630
                
1631
                  <tr>
1632
                    <td>formsets</td>
1633
                    <td class="code"><pre>[]</pre></td>
1634
                  </tr>
1635
                
1636
                  <tr>
1637
                    <td>extra_context</td>
1638
                    <td class="code"><pre>{'additional_instructions': None,
1639
 'instructions': 'Please complete the form below. Required questions are in '
1640
                 'bold. When all required questions are complete click SAVE '
1641
                 'or, if available, SAVE NEXT. Based on your responses, '
1642
                 'additional questions may be required or some answers may '
1643
                 'need to be corrected.'}</pre></td>
1644
                  </tr>
1645
                
1646
                  <tr>
1647
                    <td>object_id</td>
1648
                    <td class="code"><pre>None</pre></td>
1649
                  </tr>
1650
                
1651
                  <tr>
1652
                    <td>inline_instances</td>
1653
                    <td class="code"><pre>[]</pre></td>
1654
                  </tr>
1655
                
1656
                  <tr>
1657
                    <td>obj</td>
1658
                    <td class="code"><pre>None</pre></td>
1659
                  </tr>
1660
                
1661
                  <tr>
1662
                    <td>new_object</td>
1663
                    <td class="code"><pre>&lt;InfantOffStudy: 085-40990002-6-10 OTSILE 2010&gt;</pre></td>
1664
                  </tr>
1665
                
1666
                  <tr>
1667
                    <td>change_message</td>
1668
                    <td class="code"><pre>'Added.'</pre></td>
1669
                  </tr>
1670
                
1671
              </tbody>
1672
            </table>
1673
          
1674
        </li>
1675
      
1676
        
1677
        <li class="frame user">
1678
          <code>/home/django/.virtualenvs/tshilo_dikotla/src/edc-base/edc_base/modeladmin/mixins.py</code> in <code>response_add</code>
1679

    
1680
          
1681
            <div class="context" id="c139890741615944">
1682
              
1683
                <ol style="display: none;" start="118" class="pre-context" id="pre139890741615944">
1684
                
1685
                  <li onclick="toggle('pre139890741615944', 'post139890741615944')"><pre></pre></li>
1686
                
1687
                  <li onclick="toggle('pre139890741615944', 'post139890741615944')"><pre>    def redirect_url_on_delete(self, request, obj_display, obj_id):</pre></li>
1688
                
1689
                  <li onclick="toggle('pre139890741615944', 'post139890741615944')"><pre>        return None</pre></li>
1690
                
1691
                  <li onclick="toggle('pre139890741615944', 'post139890741615944')"><pre></pre></li>
1692
                
1693
                  <li onclick="toggle('pre139890741615944', 'post139890741615944')"><pre>    def response_add(self, request, obj, post_url_continue=None):</pre></li>
1694
                
1695
                  <li onclick="toggle('pre139890741615944', 'post139890741615944')"><pre>        redirect_url = None</pre></li>
1696
                
1697
                  <li onclick="toggle('pre139890741615944', 'post139890741615944')"><pre>        if '_addanother' not in request.POST and '_continue' not in request.POST:</pre></li>
1698
                
1699
                </ol>
1700
              
1701
              <ol start="125" class="context-line">
1702
                <li onclick="toggle('pre139890741615944', 'post139890741615944')"><pre>            redirect_url = self.redirect_url_on_add(request, obj)</pre> <span>...</span></li></ol>
1703
              
1704
                <ol style="display: none;" start="126" class="post-context" id="post139890741615944">
1705
                  
1706
                  <li onclick="toggle('pre139890741615944', 'post139890741615944')"><pre>        if redirect_url:</pre></li>
1707
                  
1708
                  <li onclick="toggle('pre139890741615944', 'post139890741615944')"><pre>            return HttpResponseRedirect(redirect_url)</pre></li>
1709
                  
1710
                  <li onclick="toggle('pre139890741615944', 'post139890741615944')"><pre>        return super(ModelAdminRedirectMixin, self).response_add(request, obj)</pre></li>
1711
                  
1712
                  <li onclick="toggle('pre139890741615944', 'post139890741615944')"><pre></pre></li>
1713
                  
1714
                  <li onclick="toggle('pre139890741615944', 'post139890741615944')"><pre>    def response_change(self, request, obj, post_url_continue=None):</pre></li>
1715
                  
1716
                  <li onclick="toggle('pre139890741615944', 'post139890741615944')"><pre>        redirect_url = None</pre></li>
1717
                  
1718
              </ol>
1719
              
1720
            </div>
1721
          
1722

    
1723
          
1724
            <div class="commands">
1725
                
1726
                    <a href="#" onclick="return varToggle(this, '139890741615944')"><span>â–¶</span> Local vars</a>
1727
                
1728
            </div>
1729
            <table style="display: none;" class="vars" id="v139890741615944">
1730
              <thead>
1731
                <tr>
1732
                  <th>Variable</th>
1733
                  <th>Value</th>
1734
                </tr>
1735
              </thead>
1736
              <tbody>
1737
                
1738
                  <tr>
1739
                    <td>redirect_url</td>
1740
                    <td class="code"><pre>None</pre></td>
1741
                  </tr>
1742
                
1743
                  <tr>
1744
                    <td>post_url_continue</td>
1745
                    <td class="code"><pre>None</pre></td>
1746
                  </tr>
1747
                
1748
                  <tr>
1749
                    <td>self</td>
1750
                    <td class="code"><pre>&lt;td_infant.admin.infant_off_study_admin.InfantOffStudyAdmin object at 0x7f3ae1925e48&gt;</pre></td>
1751
                  </tr>
1752
                
1753
                  <tr>
1754
                    <td>request</td>
1755
                    <td class="code"><pre>&lt;WSGIRequest: POST '/admin/td_infant/infantoffstudy/add/?next=subject_dashboard_url&amp;dashboard_type=infant&amp;dashboard_model=visit&amp;dashboard_id=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;show=forms&amp;registered_subject=1869b5f5-1b99-49fb-b802-f84b7167f5b1&amp;infant_visit=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;visit_attr=infant_visit&amp;entry_order=0&amp;group_title=None'&gt;</pre></td>
1756
                  </tr>
1757
                
1758
                  <tr>
1759
                    <td>obj</td>
1760
                    <td class="code"><pre>&lt;InfantOffStudy: 085-40990002-6-10 OTSILE 2010&gt;</pre></td>
1761
                  </tr>
1762
                
1763
                  <tr>
1764
                    <td>__class__</td>
1765
                    <td class="code"><pre>&lt;class 'edc_base.modeladmin.mixins.ModelAdminRedirectMixin'&gt;</pre></td>
1766
                  </tr>
1767
                
1768
              </tbody>
1769
            </table>
1770
          
1771
        </li>
1772
      
1773
        
1774
        <li class="frame user">
1775
          <code>/home/django/.virtualenvs/tshilo_dikotla/src/edc-base/edc_base/modeladmin/mixins.py</code> in <code>redirect_url_on_add</code>
1776

    
1777
          
1778
            <div class="context" id="c139890799916232">
1779
              
1780
                <ol style="display: none;" start="107" class="pre-context" id="pre139890799916232">
1781
                
1782
                  <li onclick="toggle('pre139890799916232', 'post139890799916232')"><pre></pre></li>
1783
                
1784
                  <li onclick="toggle('pre139890799916232', 'post139890799916232')"><pre>    """Redirect on add, change, or delete."""</pre></li>
1785
                
1786
                  <li onclick="toggle('pre139890799916232', 'post139890799916232')"><pre></pre></li>
1787
                
1788
                  <li onclick="toggle('pre139890799916232', 'post139890799916232')"><pre>    def redirect_url(self, request, obj, post_url_continue=None):</pre></li>
1789
                
1790
                  <li onclick="toggle('pre139890799916232', 'post139890799916232')"><pre>        return None</pre></li>
1791
                
1792
                  <li onclick="toggle('pre139890799916232', 'post139890799916232')"><pre></pre></li>
1793
                
1794
                  <li onclick="toggle('pre139890799916232', 'post139890799916232')"><pre>    def redirect_url_on_add(self, request, obj, post_url_continue=None):</pre></li>
1795
                
1796
                </ol>
1797
              
1798
              <ol start="114" class="context-line">
1799
                <li onclick="toggle('pre139890799916232', 'post139890799916232')"><pre>        return self.redirect_url(request, obj, post_url_continue)</pre> <span>...</span></li></ol>
1800
              
1801
                <ol style="display: none;" start="115" class="post-context" id="post139890799916232">
1802
                  
1803
                  <li onclick="toggle('pre139890799916232', 'post139890799916232')"><pre></pre></li>
1804
                  
1805
                  <li onclick="toggle('pre139890799916232', 'post139890799916232')"><pre>    def redirect_url_on_change(self, request, obj, post_url_continue=None):</pre></li>
1806
                  
1807
                  <li onclick="toggle('pre139890799916232', 'post139890799916232')"><pre>        return self.redirect_url(request, obj, post_url_continue)</pre></li>
1808
                  
1809
                  <li onclick="toggle('pre139890799916232', 'post139890799916232')"><pre></pre></li>
1810
                  
1811
                  <li onclick="toggle('pre139890799916232', 'post139890799916232')"><pre>    def redirect_url_on_delete(self, request, obj_display, obj_id):</pre></li>
1812
                  
1813
                  <li onclick="toggle('pre139890799916232', 'post139890799916232')"><pre>        return None</pre></li>
1814
                  
1815
              </ol>
1816
              
1817
            </div>
1818
          
1819

    
1820
          
1821
            <div class="commands">
1822
                
1823
                    <a href="#" onclick="return varToggle(this, '139890799916232')"><span>â–¶</span> Local vars</a>
1824
                
1825
            </div>
1826
            <table style="display: none;" class="vars" id="v139890799916232">
1827
              <thead>
1828
                <tr>
1829
                  <th>Variable</th>
1830
                  <th>Value</th>
1831
                </tr>
1832
              </thead>
1833
              <tbody>
1834
                
1835
                  <tr>
1836
                    <td>post_url_continue</td>
1837
                    <td class="code"><pre>None</pre></td>
1838
                  </tr>
1839
                
1840
                  <tr>
1841
                    <td>self</td>
1842
                    <td class="code"><pre>&lt;td_infant.admin.infant_off_study_admin.InfantOffStudyAdmin object at 0x7f3ae1925e48&gt;</pre></td>
1843
                  </tr>
1844
                
1845
                  <tr>
1846
                    <td>obj</td>
1847
                    <td class="code"><pre>&lt;InfantOffStudy: 085-40990002-6-10 OTSILE 2010&gt;</pre></td>
1848
                  </tr>
1849
                
1850
                  <tr>
1851
                    <td>request</td>
1852
                    <td class="code"><pre>&lt;WSGIRequest: POST '/admin/td_infant/infantoffstudy/add/?next=subject_dashboard_url&amp;dashboard_type=infant&amp;dashboard_model=visit&amp;dashboard_id=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;show=forms&amp;registered_subject=1869b5f5-1b99-49fb-b802-f84b7167f5b1&amp;infant_visit=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;visit_attr=infant_visit&amp;entry_order=0&amp;group_title=None'&gt;</pre></td>
1853
                  </tr>
1854
                
1855
              </tbody>
1856
            </table>
1857
          
1858
        </li>
1859
      
1860
        
1861
        <li class="frame user">
1862
          <code>/home/django/source/bhp085/tshilo_dikotla/base_model_admin.py</code> in <code>redirect_url</code>
1863

    
1864
          
1865
            <div class="context" id="c139890766796488">
1866
              
1867
                <ol style="display: none;" start="11" class="pre-context" id="pre139890766796488">
1868
                
1869
                  <li onclick="toggle('pre139890766796488', 'post139890766796488')"><pre>    list_per_page = 10</pre></li>
1870
                
1871
                  <li onclick="toggle('pre139890766796488', 'post139890766796488')"><pre>    date_hierarchy = 'modified'</pre></li>
1872
                
1873
                  <li onclick="toggle('pre139890766796488', 'post139890766796488')"><pre>    empty_value_display = '-'</pre></li>
1874
                
1875
                  <li onclick="toggle('pre139890766796488', 'post139890766796488')"><pre></pre></li>
1876
                
1877
                  <li onclick="toggle('pre139890766796488', 'post139890766796488')"><pre>    def redirect_url(self, request, obj, post_url_continue=None):</pre></li>
1878
                
1879
                  <li onclick="toggle('pre139890766796488', 'post139890766796488')"><pre>        url_name = request.GET.get(self.querystring_name)</pre></li>
1880
                
1881
                  <li onclick="toggle('pre139890766796488', 'post139890766796488')"><pre>        section_name = request.GET.get('section_name')</pre></li>
1882
                
1883
                </ol>
1884
              
1885
              <ol start="18" class="context-line">
1886
                <li onclick="toggle('pre139890766796488', 'post139890766796488')"><pre>        return reverse(url_name, kwargs={'section_name': section_name})</pre> <span>...</span></li></ol>
1887
              
1888
                <ol style="display: none;" start="19" class="post-context" id="post139890766796488">
1889
                  
1890
                  <li onclick="toggle('pre139890766796488', 'post139890766796488')"><pre></pre></li>
1891
                  
1892
                  <li onclick="toggle('pre139890766796488', 'post139890766796488')"><pre></pre></li>
1893
                  
1894
                  <li onclick="toggle('pre139890766796488', 'post139890766796488')"><pre>class MembershipBaseModelAdmin(ModelAdminNextUrlRedirectMixin, ModelAdminFormInstructionsMixin,</pre></li>
1895
                  
1896
                  <li onclick="toggle('pre139890766796488', 'post139890766796488')"><pre>                               ModelAdminFormAutoNumberMixin, ModelAdminAuditFieldsMixin, admin.ModelAdmin):</pre></li>
1897
                  
1898
                  <li onclick="toggle('pre139890766796488', 'post139890766796488')"><pre></pre></li>
1899
                  
1900
                  <li onclick="toggle('pre139890766796488', 'post139890766796488')"><pre>    list_per_page = 10</pre></li>
1901
                  
1902
              </ol>
1903
              
1904
            </div>
1905
          
1906

    
1907
          
1908
            <div class="commands">
1909
                
1910
                    <a href="#" onclick="return varToggle(this, '139890766796488')"><span>â–¶</span> Local vars</a>
1911
                
1912
            </div>
1913
            <table style="display: none;" class="vars" id="v139890766796488">
1914
              <thead>
1915
                <tr>
1916
                  <th>Variable</th>
1917
                  <th>Value</th>
1918
                </tr>
1919
              </thead>
1920
              <tbody>
1921
                
1922
                  <tr>
1923
                    <td>post_url_continue</td>
1924
                    <td class="code"><pre>None</pre></td>
1925
                  </tr>
1926
                
1927
                  <tr>
1928
                    <td>self</td>
1929
                    <td class="code"><pre>&lt;td_infant.admin.infant_off_study_admin.InfantOffStudyAdmin object at 0x7f3ae1925e48&gt;</pre></td>
1930
                  </tr>
1931
                
1932
                  <tr>
1933
                    <td>request</td>
1934
                    <td class="code"><pre>&lt;WSGIRequest: POST '/admin/td_infant/infantoffstudy/add/?next=subject_dashboard_url&amp;dashboard_type=infant&amp;dashboard_model=visit&amp;dashboard_id=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;show=forms&amp;registered_subject=1869b5f5-1b99-49fb-b802-f84b7167f5b1&amp;infant_visit=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;visit_attr=infant_visit&amp;entry_order=0&amp;group_title=None'&gt;</pre></td>
1935
                  </tr>
1936
                
1937
                  <tr>
1938
                    <td>obj</td>
1939
                    <td class="code"><pre>&lt;InfantOffStudy: 085-40990002-6-10 OTSILE 2010&gt;</pre></td>
1940
                  </tr>
1941
                
1942
                  <tr>
1943
                    <td>url_name</td>
1944
                    <td class="code"><pre>'subject_dashboard_url'</pre></td>
1945
                  </tr>
1946
                
1947
                  <tr>
1948
                    <td>section_name</td>
1949
                    <td class="code"><pre>None</pre></td>
1950
                  </tr>
1951
                
1952
              </tbody>
1953
            </table>
1954
          
1955
        </li>
1956
      
1957
        
1958
        <li class="frame django">
1959
          <code>/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/core/urlresolvers.py</code> in <code>reverse</code>
1960

    
1961
          
1962
            <div class="context" id="c139890802806280">
1963
              
1964
                <ol style="display: none;" start="593" class="pre-context" id="pre139890802806280">
1965
                
1966
                  <li onclick="toggle('pre139890802806280', 'post139890802806280')"><pre>                        (key, ':'.join(resolved_path)))</pre></li>
1967
                
1968
                  <li onclick="toggle('pre139890802806280', 'post139890802806280')"><pre>                else:</pre></li>
1969
                
1970
                  <li onclick="toggle('pre139890802806280', 'post139890802806280')"><pre>                    raise NoReverseMatch("%s is not a registered namespace" %</pre></li>
1971
                
1972
                  <li onclick="toggle('pre139890802806280', 'post139890802806280')"><pre>                                         key)</pre></li>
1973
                
1974
                  <li onclick="toggle('pre139890802806280', 'post139890802806280')"><pre>        if ns_pattern:</pre></li>
1975
                
1976
                  <li onclick="toggle('pre139890802806280', 'post139890802806280')"><pre>            resolver = get_ns_resolver(ns_pattern, resolver)</pre></li>
1977
                
1978
                  <li onclick="toggle('pre139890802806280', 'post139890802806280')"><pre></pre></li>
1979
                
1980
                </ol>
1981
              
1982
              <ol start="600" class="context-line">
1983
                <li onclick="toggle('pre139890802806280', 'post139890802806280')"><pre>    return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)))</pre> <span>...</span></li></ol>
1984
              
1985
                <ol style="display: none;" start="601" class="post-context" id="post139890802806280">
1986
                  
1987
                  <li onclick="toggle('pre139890802806280', 'post139890802806280')"><pre></pre></li>
1988
                  
1989
                  <li onclick="toggle('pre139890802806280', 'post139890802806280')"><pre>reverse_lazy = lazy(reverse, six.text_type)</pre></li>
1990
                  
1991
                  <li onclick="toggle('pre139890802806280', 'post139890802806280')"><pre></pre></li>
1992
                  
1993
                  <li onclick="toggle('pre139890802806280', 'post139890802806280')"><pre></pre></li>
1994
                  
1995
                  <li onclick="toggle('pre139890802806280', 'post139890802806280')"><pre>def clear_url_caches():</pre></li>
1996
                  
1997
                  <li onclick="toggle('pre139890802806280', 'post139890802806280')"><pre>    get_callable.cache_clear()</pre></li>
1998
                  
1999
              </ol>
2000
              
2001
            </div>
2002
          
2003

    
2004
          
2005
            <div class="commands">
2006
                
2007
                    <a href="#" onclick="return varToggle(this, '139890802806280')"><span>â–¶</span> Local vars</a>
2008
                
2009
            </div>
2010
            <table style="display: none;" class="vars" id="v139890802806280">
2011
              <thead>
2012
                <tr>
2013
                  <th>Variable</th>
2014
                  <th>Value</th>
2015
                </tr>
2016
              </thead>
2017
              <tbody>
2018
                
2019
                  <tr>
2020
                    <td>resolver</td>
2021
                    <td class="code"><pre>&lt;RegexURLResolver 'tshilo_dikotla.urls' (None:None) ^/&gt;</pre></td>
2022
                  </tr>
2023
                
2024
                  <tr>
2025
                    <td>viewname</td>
2026
                    <td class="code"><pre>'subject_dashboard_url'</pre></td>
2027
                  </tr>
2028
                
2029
                  <tr>
2030
                    <td>kwargs</td>
2031
                    <td class="code"><pre>{'section_name': None}</pre></td>
2032
                  </tr>
2033
                
2034
                  <tr>
2035
                    <td>path</td>
2036
                    <td class="code"><pre>[]</pre></td>
2037
                  </tr>
2038
                
2039
                  <tr>
2040
                    <td>prefix</td>
2041
                    <td class="code"><pre>'/'</pre></td>
2042
                  </tr>
2043
                
2044
                  <tr>
2045
                    <td>args</td>
2046
                    <td class="code"><pre>[]</pre></td>
2047
                  </tr>
2048
                
2049
                  <tr>
2050
                    <td>view</td>
2051
                    <td class="code"><pre>'subject_dashboard_url'</pre></td>
2052
                  </tr>
2053
                
2054
                  <tr>
2055
                    <td>parts</td>
2056
                    <td class="code"><pre>['subject_dashboard_url']</pre></td>
2057
                  </tr>
2058
                
2059
                  <tr>
2060
                    <td>urlconf</td>
2061
                    <td class="code"><pre>'tshilo_dikotla.urls'</pre></td>
2062
                  </tr>
2063
                
2064
                  <tr>
2065
                    <td>ns_pattern</td>
2066
                    <td class="code"><pre>''</pre></td>
2067
                  </tr>
2068
                
2069
                  <tr>
2070
                    <td>current_path</td>
2071
                    <td class="code"><pre>None</pre></td>
2072
                  </tr>
2073
                
2074
                  <tr>
2075
                    <td>resolved_path</td>
2076
                    <td class="code"><pre>[]</pre></td>
2077
                  </tr>
2078
                
2079
                  <tr>
2080
                    <td>current_app</td>
2081
                    <td class="code"><pre>None</pre></td>
2082
                  </tr>
2083
                
2084
              </tbody>
2085
            </table>
2086
          
2087
        </li>
2088
      
2089
        
2090
        <li class="frame django">
2091
          <code>/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/core/urlresolvers.py</code> in <code>_reverse_with_prefix</code>
2092

    
2093
          
2094
            <div class="context" id="c139890805771400">
2095
              
2096
                <ol style="display: none;" start="501" class="pre-context" id="pre139890805771400">
2097
                
2098
                  <li onclick="toggle('pre139890805771400', 'post139890805771400')"><pre>            lookup_view_s = "%s.%s" % (m, n)</pre></li>
2099
                
2100
                  <li onclick="toggle('pre139890805771400', 'post139890805771400')"><pre>        else:</pre></li>
2101
                
2102
                  <li onclick="toggle('pre139890805771400', 'post139890805771400')"><pre>            lookup_view_s = lookup_view</pre></li>
2103
                
2104
                  <li onclick="toggle('pre139890805771400', 'post139890805771400')"><pre></pre></li>
2105
                
2106
                  <li onclick="toggle('pre139890805771400', 'post139890805771400')"><pre>        patterns = [pattern for (possibility, pattern, defaults) in possibilities]</pre></li>
2107
                
2108
                  <li onclick="toggle('pre139890805771400', 'post139890805771400')"><pre>        raise NoReverseMatch("Reverse for '%s' with arguments '%s' and keyword "</pre></li>
2109
                
2110
                  <li onclick="toggle('pre139890805771400', 'post139890805771400')"><pre>                "arguments '%s' not found. %d pattern(s) tried: %s" %</pre></li>
2111
                
2112
                </ol>
2113
              
2114
              <ol start="508" class="context-line">
2115
                <li onclick="toggle('pre139890805771400', 'post139890805771400')"><pre>                             (lookup_view_s, args, kwargs, len(patterns), patterns))</pre> <span>...</span></li></ol>
2116
              
2117
                <ol style="display: none;" start="509" class="post-context" id="post139890805771400">
2118
                  
2119
                  <li onclick="toggle('pre139890805771400', 'post139890805771400')"><pre></pre></li>
2120
                  
2121
                  <li onclick="toggle('pre139890805771400', 'post139890805771400')"><pre></pre></li>
2122
                  
2123
                  <li onclick="toggle('pre139890805771400', 'post139890805771400')"><pre>class LocaleRegexURLResolver(RegexURLResolver):</pre></li>
2124
                  
2125
                  <li onclick="toggle('pre139890805771400', 'post139890805771400')"><pre>    """</pre></li>
2126
                  
2127
                  <li onclick="toggle('pre139890805771400', 'post139890805771400')"><pre>    A URL resolver that always matches the active language code as URL prefix.</pre></li>
2128
                  
2129
                  <li onclick="toggle('pre139890805771400', 'post139890805771400')"><pre></pre></li>
2130
                  
2131
              </ol>
2132
              
2133
            </div>
2134
          
2135

    
2136
          
2137
            <div class="commands">
2138
                
2139
                    <a href="#" onclick="return varToggle(this, '139890805771400')"><span>â–¶</span> Local vars</a>
2140
                
2141
            </div>
2142
            <table style="display: none;" class="vars" id="v139890805771400">
2143
              <thead>
2144
                <tr>
2145
                  <th>Variable</th>
2146
                  <th>Value</th>
2147
                </tr>
2148
              </thead>
2149
              <tbody>
2150
                
2151
                  <tr>
2152
                    <td>lookup_view_s</td>
2153
                    <td class="code"><pre>'subject_dashboard_url'</pre></td>
2154
                  </tr>
2155
                
2156
                  <tr>
2157
                    <td>possibilities</td>
2158
                    <td class="code"><pre>[([('td/dashboard/%(dashboard_type)s/%(dashboard_model)s/%(dashboard_id)s/',
2159
    ['dashboard_type', 'dashboard_model', 'dashboard_id'])],
2160
  'td/dashboard/(?P&lt;dashboard_type&gt;infant)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|infant_birth)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/$',
2161
  {}),
2162
 ([('td/dashboard/%(dashboard_type)s/%(dashboard_model)s/%(dashboard_id)s/%(show)s/',
2163
    ['dashboard_type', 'dashboard_model', 'dashboard_id', 'show'])],
2164
  'td/dashboard/(?P&lt;dashboard_type&gt;infant)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|infant_birth)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/(?P&lt;show&gt;appointments|forms)/$',
2165
  {}),
2166
 ([('td/dashboard/%(dashboard_type)s/%(dashboard_model)s/%(dashboard_id)s/%(show)s/%(appointment_code)s/',
2167
    ['dashboard_type',
2168
     'dashboard_model',
2169
     'dashboard_id',
2170
     'show',
2171
     'appointment_code'])],
2172
  'td/dashboard/(?P&lt;dashboard_type&gt;infant)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|infant_birth)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/(?P&lt;show&gt;appointments|forms)/(?P&lt;appointment_code&gt;2000|2010|2030|2060|2090|2120)/$',
2173
  {}),
2174
 ([('td/dashboard/%(dashboard_type)s/%(dashboard_model)s/%(dashboard_id)s/',
2175
    ['dashboard_type', 'dashboard_model', 'dashboard_id'])],
2176
  'td/dashboard/(?P&lt;dashboard_type&gt;maternal)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|maternal_eligibility)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/$',
2177
  {}),
2178
 ([('td/dashboard/%(dashboard_type)s/%(dashboard_model)s/%(dashboard_id)s/%(show)s/',
2179
    ['dashboard_type', 'dashboard_model', 'dashboard_id', 'show'])],
2180
  'td/dashboard/(?P&lt;dashboard_type&gt;maternal)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|maternal_eligibility)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/(?P&lt;show&gt;appointments|forms)/$',
2181
  {}),
2182
 ([('td/dashboard/%(dashboard_type)s/%(dashboard_model)s/%(dashboard_id)s/%(show)s/%(appointment_code)s/',
2183
    ['dashboard_type',
2184
     'dashboard_model',
2185
     'dashboard_id',
2186
     'show',
2187
     'appointment_code'])],
2188
  'td/dashboard/(?P&lt;dashboard_type&gt;maternal)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|maternal_eligibility)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/(?P&lt;show&gt;appointments|forms)/(?P&lt;appointment_code&gt;1000M|1100M|1200M|1600M|2200M|2800M|3400M|4000M|4600M)/$',
2189
  {})]</pre></td>
2190
                  </tr>
2191
                
2192
                  <tr>
2193
                    <td>result</td>
2194
                    <td class="code"><pre>'td/dashboard/%(dashboard_type)s/%(dashboard_model)s/%(dashboard_id)s/%(show)s/%(appointment_code)s/'</pre></td>
2195
                  </tr>
2196
                
2197
                  <tr>
2198
                    <td>original_lookup</td>
2199
                    <td class="code"><pre>'subject_dashboard_url'</pre></td>
2200
                  </tr>
2201
                
2202
                  <tr>
2203
                    <td>kwargs</td>
2204
                    <td class="code"><pre>{'section_name': None}</pre></td>
2205
                  </tr>
2206
                
2207
                  <tr>
2208
                    <td>lookup_view</td>
2209
                    <td class="code"><pre>'subject_dashboard_url'</pre></td>
2210
                  </tr>
2211
                
2212
                  <tr>
2213
                    <td>params</td>
2214
                    <td class="code"><pre>['dashboard_type',
2215
 'dashboard_model',
2216
 'dashboard_id',
2217
 'show',
2218
 'appointment_code']</pre></td>
2219
                  </tr>
2220
                
2221
                  <tr>
2222
                    <td>text_args</td>
2223
                    <td class="code"><pre>[]</pre></td>
2224
                  </tr>
2225
                
2226
                  <tr>
2227
                    <td>args</td>
2228
                    <td class="code"><pre>()</pre></td>
2229
                  </tr>
2230
                
2231
                  <tr>
2232
                    <td>self</td>
2233
                    <td class="code"><pre>&lt;RegexURLResolver 'tshilo_dikotla.urls' (None:None) ^/&gt;</pre></td>
2234
                  </tr>
2235
                
2236
                  <tr>
2237
                    <td>_prefix</td>
2238
                    <td class="code"><pre>'/'</pre></td>
2239
                  </tr>
2240
                
2241
                  <tr>
2242
                    <td>m</td>
2243
                    <td class="code"><pre>None</pre></td>
2244
                  </tr>
2245
                
2246
                  <tr>
2247
                    <td>possibility</td>
2248
                    <td class="code"><pre>[('td/dashboard/%(dashboard_type)s/%(dashboard_model)s/%(dashboard_id)s/%(show)s/%(appointment_code)s/',
2249
  ['dashboard_type',
2250
   'dashboard_model',
2251
   'dashboard_id',
2252
   'show',
2253
   'appointment_code'])]</pre></td>
2254
                  </tr>
2255
                
2256
                  <tr>
2257
                    <td>text_kwargs</td>
2258
                    <td class="code"><pre>{'section_name': 'None'}</pre></td>
2259
                  </tr>
2260
                
2261
                  <tr>
2262
                    <td>n</td>
2263
                    <td class="code"><pre>None</pre></td>
2264
                  </tr>
2265
                
2266
                  <tr>
2267
                    <td>pattern</td>
2268
                    <td class="code"><pre>'td/dashboard/(?P&lt;dashboard_type&gt;maternal)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|maternal_eligibility)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/(?P&lt;show&gt;appointments|forms)/(?P&lt;appointment_code&gt;1000M|1100M|1200M|1600M|2200M|2800M|3400M|4000M|4600M)/$'</pre></td>
2269
                  </tr>
2270
                
2271
                  <tr>
2272
                    <td>defaults</td>
2273
                    <td class="code"><pre>{}</pre></td>
2274
                  </tr>
2275
                
2276
                  <tr>
2277
                    <td>patterns</td>
2278
                    <td class="code"><pre>['td/dashboard/(?P&lt;dashboard_type&gt;infant)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|infant_birth)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/$',
2279
 'td/dashboard/(?P&lt;dashboard_type&gt;infant)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|infant_birth)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/(?P&lt;show&gt;appointments|forms)/$',
2280
 'td/dashboard/(?P&lt;dashboard_type&gt;infant)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|infant_birth)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/(?P&lt;show&gt;appointments|forms)/(?P&lt;appointment_code&gt;2000|2010|2030|2060|2090|2120)/$',
2281
 'td/dashboard/(?P&lt;dashboard_type&gt;maternal)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|maternal_eligibility)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/$',
2282
 'td/dashboard/(?P&lt;dashboard_type&gt;maternal)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|maternal_eligibility)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/(?P&lt;show&gt;appointments|forms)/$',
2283
 'td/dashboard/(?P&lt;dashboard_type&gt;maternal)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|maternal_eligibility)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/(?P&lt;show&gt;appointments|forms)/(?P&lt;appointment_code&gt;1000M|1100M|1200M|1600M|2200M|2800M|3400M|4000M|4600M)/$']</pre></td>
2284
                  </tr>
2285
                
2286
              </tbody>
2287
            </table>
2288
          
2289
        </li>
2290
      
2291
    </ul>
2292
  </div>
2293
  
2294
  <form action="http://dpaste.com/" name="pasteform" id="pasteform" method="post">
2295

    
2296
  <div style="display: none;" id="pastebinTraceback" class="pastebin">
2297
    <input name="language" value="PythonConsole" type="hidden">
2298
    <input name="title" value="NoReverseMatch at /admin/td_infant/infantoffstudy/add/" type="hidden">
2299
    <input name="source" value="Django Dpaste Agent" type="hidden">
2300
    <input name="poster" value="Django" type="hidden">
2301
    <textarea name="content" id="traceback_area" cols="140" rows="25">Environment:
2302

    
2303

    
2304
Request
2305
 Method: POST
2306
Request URL: 
2307
http://127.0.0.1:9000/admin/td_infant/infantoffstudy/add/?next=subject_dashboard_url&amp;dashboard_type=infant&amp;dashboard_model=visit&amp;dashboard_id=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;show=forms&amp;registered_subject=1869b5f5-1b99-49fb-b802-f84b7167f5b1&amp;infant_visit=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;visit_attr=infant_visit&amp;entry_order=0&amp;group_title=None
2308

    
2309
Django
2310
 Version: 1.9.2
2311
Python Version: 3.5.2
2312
Installed Applications:
2313
['django.contrib.admin',
2314
 'django.contrib.auth',
2315
 'django.contrib.contenttypes',
2316
 'django.contrib.sessions',
2317
 'django.contrib.messages',
2318
 'django.contrib.staticfiles',
2319
 'django_extensions',
2320
 'simple_history',
2321
 'rest_framework',
2322
 'rest_framework.authtoken',
2323
 'django_js_reverse',
2324
 'django_revision',
2325
 'edc_templates',
2326
 'edc_identifier',
2327
 'edc_lab.lab_packing',
2328
 'edc_lab.lab_clinic_api',
2329
 'edc_lab.lab_clinic_reference',
2330
 'lis.labeling',
2331
 'edc_appointment',
2332
 'edc_base',
2333
 'edc_configuration',
2334
 'corsheaders',
2335
 'crispy_forms',
2336
 'edc_constants',
2337
 'edc_content_type_map',
2338
 'edc_dashboard',
2339
 'edc_data_manager',
2340
 'edc_death_report',
2341
 'edc_device',
2342
 'edc_locator',
2343
 'edc_meta_data',
2344
 'edc_offstudy',
2345
 'edc_registration',
2346
 'edc_rule_groups',
2347
 'edc_sync_files',
2348
 'django_appconfig_ini',
2349
 'edc_code_lists',
2350
 'edc_visit_schedule',
2351
 'edc_visit_tracking',
2352
 'call_manager',
2353
 'edc_call_manager.apps.EdcCallManagerAppConfig',
2354
 'tshilo_dikotla.apps.DjangoCryptoFieldsAppConfig',
2355
 'tshilo_dikotla.apps.ConsentAppConfig',
2356
 'tshilo_dikotla.apps.EdcSyncAppConfig',
2357
 'tshilo_dikotla.apps.TshiloDikotlaConfig',
2358
 'td_dashboard.apps.TdDashboardConfig',
2359
 'td_infant.apps.TdInfantConfig',
2360
 'td_lab.apps.TdLabConfig',
2361
 'td_list.apps.TdListConfig',
2362
 'registration.apps.RegistrationConfig',
2363
 'td_maternal.apps.TdMaternalConfig']
2364
Installed Middleware:
2365
['django.middleware.security.SecurityMiddleware',
2366
 'django.contrib.sessions.middleware.SessionMiddleware',
2367
 'django.middleware.locale.LocaleMiddleware',
2368
 'django.middleware.common.CommonMiddleware',
2369
 'django.middleware.csrf.CsrfViewMiddleware',
2370
 'django.contrib.auth.middleware.AuthenticationMiddleware',
2371
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
2372
 'django.contrib.messages.middleware.MessageMiddleware',
2373
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
2374
 'simple_history.middleware.HistoryRequestMiddleware']
2375

    
2376

    
2377

    
2378
Traceback:
2379

    
2380
File 
2381
"/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/core/handlers/base.py"
2382
 in get_response
2383
  149.                     response = 
2384
self.process_exception_by_middleware(e, request)
2385

    
2386
File 
2387
"/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/core/handlers/base.py"
2388
 in get_response
2389
  147.                     response = wrapped_callback(request, 
2390
*callback_args, **callback_kwargs)
2391

    
2392
File "/usr/lib/python3.5/contextlib.py" in inner
2393
  30.                 return func(*args, **kwds)
2394

    
2395
File 
2396
"/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/contrib/admin/options.py"
2397
 in wrapper
2398
  541.                 return self.admin_site.admin_view(view)(*args, 
2399
**kwargs)
2400

    
2401
File 
2402
"/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/utils/decorators.py"
2403
 in _wrapped_view
2404
  149.                     response = view_func(request, *args, 
2405
**kwargs)
2406

    
2407
File 
2408
"/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/views/decorators/cache.py"
2409
 in _wrapped_view_func
2410
  57.         response = view_func(request, *args, **kwargs)
2411

    
2412
File 
2413
"/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/contrib/admin/sites.py"
2414
 in inner
2415
  244.             return view(request, *args, **kwargs)
2416

    
2417
File 
2418
"/home/django/.virtualenvs/tshilo_dikotla/src/edc-base/edc_base/modeladmin/mixins.py"
2419
 in add_view
2420
  341.             request, form_url=form_url, 
2421
extra_context=extra_context)
2422

    
2423
File 
2424
"/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/contrib/admin/options.py"
2425
 in add_view
2426
  1437.         return self.changeform_view(request, None, form_url, 
2427
extra_context)
2428

    
2429
File 
2430
"/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/utils/decorators.py"
2431
 in _wrapper
2432
  67.             return bound_func(*args, **kwargs)
2433

    
2434
File 
2435
"/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/utils/decorators.py"
2436
 in _wrapped_view
2437
  149.                     response = view_func(request, *args, 
2438
**kwargs)
2439

    
2440
File 
2441
"/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/utils/decorators.py"
2442
 in bound_func
2443
  63.                 return func.__get__(self, type(self))(*args2, 
2444
**kwargs2)
2445

    
2446
File "/usr/lib/python3.5/contextlib.py" in inner
2447
  30.                 return func(*args, **kwds)
2448

    
2449
File 
2450
"/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/contrib/admin/options.py"
2451
 in changeform_view
2452
  1383.                     return self.response_add(request, 
2453
new_object)
2454

    
2455
File 
2456
"/home/django/.virtualenvs/tshilo_dikotla/src/edc-base/edc_base/modeladmin/mixins.py"
2457
 in response_add
2458
  125.             redirect_url = self.redirect_url_on_add(request, obj)
2459

    
2460
File 
2461
"/home/django/.virtualenvs/tshilo_dikotla/src/edc-base/edc_base/modeladmin/mixins.py"
2462
 in redirect_url_on_add
2463
  114.         return self.redirect_url(request, obj, post_url_continue)
2464

    
2465
File "/home/django/source/bhp085/tshilo_dikotla/base_model_admin.py" in 
2466
redirect_url
2467
  18.         return reverse(url_name, kwargs={'section_name': 
2468
section_name})
2469

    
2470
File 
2471
"/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/core/urlresolvers.py"
2472
 in reverse
2473
  600.     return 
2474
force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args,
2475
 **kwargs)))
2476

    
2477
File 
2478
"/home/django/.virtualenvs/tshilo_dikotla/lib/python3.5/site-packages/django/core/urlresolvers.py"
2479
 in _reverse_with_prefix
2480
  508.                              (lookup_view_s, args, kwargs, 
2481
len(patterns), patterns))
2482

    
2483
Exception Type: NoReverseMatch at /admin/td_infant/infantoffstudy/add/
2484
Exception Value: Reverse for 'subject_dashboard_url' with arguments '()'
2485
 and keyword arguments '{'section_name': None}' not found. 6 pattern(s) 
2486
tried: 
2487
['td/dashboard/(?P&lt;dashboard_type&gt;infant)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|infant_birth)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/$',
2488
 
2489
'td/dashboard/(?P&lt;dashboard_type&gt;infant)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|infant_birth)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/(?P&lt;show&gt;appointments|forms)/$',
2490
 
2491
'td/dashboard/(?P&lt;dashboard_type&gt;infant)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|infant_birth)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/(?P&lt;show&gt;appointments|forms)/(?P&lt;appointment_code&gt;2000|2010|2030|2060|2090|2120)/$',
2492
 
2493
'td/dashboard/(?P&lt;dashboard_type&gt;maternal)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|maternal_eligibility)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/$',
2494
 
2495
'td/dashboard/(?P&lt;dashboard_type&gt;maternal)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|maternal_eligibility)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/(?P&lt;show&gt;appointments|forms)/$',
2496
 
2497
'td/dashboard/(?P&lt;dashboard_type&gt;maternal)/(?P&lt;dashboard_model&gt;household_member|visit|appointment|registered_subject|maternal_eligibility)/(?P&lt;dashboard_id&gt;[\\w]{8}-[\\w]{4}-[\\w]{4}-[\\w]{4}-[\\w]{12})/(?P&lt;show&gt;appointments|forms)/(?P&lt;appointment_code&gt;1000M|1100M|1200M|1600M|2200M|2800M|3400M|4000M|4600M)/$']
2498
</textarea>
2499
  <br><br>
2500
  <input value="Share this traceback on a public website" type="submit">
2501
  </div>
2502
</form>
2503
</div>
2504

    
2505

    
2506

    
2507
<div id="requestinfo">
2508
  <h2>Request information</h2>
2509

    
2510

    
2511
  <h3 id="get-info">GET</h3>
2512
  
2513
    <table class="req">
2514
      <thead>
2515
        <tr>
2516
          <th>Variable</th>
2517
          <th>Value</th>
2518
        </tr>
2519
      </thead>
2520
      <tbody>
2521
        
2522
          <tr>
2523
            <td>visit_attr</td>
2524
            <td class="code"><pre>'infant_visit'</pre></td>
2525
          </tr>
2526
        
2527
          <tr>
2528
            <td>show</td>
2529
            <td class="code"><pre>'forms'</pre></td>
2530
          </tr>
2531
        
2532
          <tr>
2533
            <td>dashboard_type</td>
2534
            <td class="code"><pre>'infant'</pre></td>
2535
          </tr>
2536
        
2537
          <tr>
2538
            <td>infant_visit</td>
2539
            <td class="code"><pre>'77b6c8a5-cee4-45bf-a61d-9994b434d5e3'</pre></td>
2540
          </tr>
2541
        
2542
          <tr>
2543
            <td>dashboard_id</td>
2544
            <td class="code"><pre>'77b6c8a5-cee4-45bf-a61d-9994b434d5e3'</pre></td>
2545
          </tr>
2546
        
2547
          <tr>
2548
            <td>entry_order</td>
2549
            <td class="code"><pre>'0'</pre></td>
2550
          </tr>
2551
        
2552
          <tr>
2553
            <td>group_title</td>
2554
            <td class="code"><pre>'None'</pre></td>
2555
          </tr>
2556
        
2557
          <tr>
2558
            <td>registered_subject</td>
2559
            <td class="code"><pre>'1869b5f5-1b99-49fb-b802-f84b7167f5b1'</pre></td>
2560
          </tr>
2561
        
2562
          <tr>
2563
            <td>next</td>
2564
            <td class="code"><pre>'subject_dashboard_url'</pre></td>
2565
          </tr>
2566
        
2567
          <tr>
2568
            <td>dashboard_model</td>
2569
            <td class="code"><pre>'visit'</pre></td>
2570
          </tr>
2571
        
2572
      </tbody>
2573
    </table>
2574
  
2575

    
2576
  <h3 id="post-info">POST</h3>
2577
  
2578
    <table class="req">
2579
      <thead>
2580
        <tr>
2581
          <th>Variable</th>
2582
          <th>Value</th>
2583
        </tr>
2584
      </thead>
2585
      <tbody>
2586
        
2587
          <tr>
2588
            <td>infant_visit</td>
2589
            <td class="code"><pre>'77b6c8a5-cee4-45bf-a61d-9994b434d5e3'</pre></td>
2590
          </tr>
2591
        
2592
          <tr>
2593
            <td>report_datetime_0</td>
2594
            <td class="code"><pre>'2017-01-05'</pre></td>
2595
          </tr>
2596
        
2597
          <tr>
2598
            <td>initial-report_datetime_1</td>
2599
            <td class="code"><pre>'08:27:48'</pre></td>
2600
          </tr>
2601
        
2602
          <tr>
2603
            <td>_save</td>
2604
            <td class="code"><pre>'Save'</pre></td>
2605
          </tr>
2606
        
2607
          <tr>
2608
            <td>reason_other</td>
2609
            <td class="code"><pre>''</pre></td>
2610
          </tr>
2611
        
2612
          <tr>
2613
            <td>report_datetime_1</td>
2614
            <td class="code"><pre>'08:27:48'</pre></td>
2615
          </tr>
2616
        
2617
          <tr>
2618
            <td>comment</td>
2619
            <td class="code"><pre>''</pre></td>
2620
          </tr>
2621
        
2622
          <tr>
2623
            <td>reason</td>
2624
            <td class="code"><pre>'withdrew_by_family'</pre></td>
2625
          </tr>
2626
        
2627
          <tr>
2628
            <td>offstudy_date</td>
2629
            <td class="code"><pre>'2017-01-05'</pre></td>
2630
          </tr>
2631
        
2632
          <tr>
2633
            <td>initial-report_datetime_0</td>
2634
            <td class="code"><pre>'2017-01-16'</pre></td>
2635
          </tr>
2636
        
2637
          <tr>
2638
            <td>csrfmiddlewaretoken</td>
2639
            <td class="code"><pre>'3Ns9sriyAJVXTxZGEGsExCT6rd61daC8'</pre></td>
2640
          </tr>
2641
        
2642
      </tbody>
2643
    </table>
2644
  
2645
  <h3 id="files-info">FILES</h3>
2646
  
2647
    <p>No FILES data</p>
2648
  
2649

    
2650

    
2651
  <h3 id="cookie-info">COOKIES</h3>
2652
  
2653
    <table class="req">
2654
      <thead>
2655
        <tr>
2656
          <th>Variable</th>
2657
          <th>Value</th>
2658
        </tr>
2659
      </thead>
2660
      <tbody>
2661
        
2662
          <tr>
2663
            <td>csrftoken</td>
2664
            <td class="code"><pre>'3Ns9sriyAJVXTxZGEGsExCT6rd61daC8'</pre></td>
2665
          </tr>
2666
        
2667
          <tr>
2668
            <td>sessionid</td>
2669
            <td class="code"><pre>'g9jlvj8eep88h1t4w5jiofq2tsxd3uv3'</pre></td>
2670
          </tr>
2671
        
2672
      </tbody>
2673
    </table>
2674
  
2675

    
2676
  <h3 id="meta-info">META</h3>
2677
  <table class="req">
2678
    <thead>
2679
      <tr>
2680
        <th>Variable</th>
2681
        <th>Value</th>
2682
      </tr>
2683
    </thead>
2684
    <tbody>
2685
      
2686
        <tr>
2687
          <td>SERVER_PORT</td>
2688
          <td class="code"><pre>'9000'</pre></td>
2689
        </tr>
2690
      
2691
        <tr>
2692
          <td>wsgi.run_once</td>
2693
          <td class="code"><pre>False</pre></td>
2694
        </tr>
2695
      
2696
        <tr>
2697
          <td>HTTP_HOST</td>
2698
          <td class="code"><pre>'127.0.0.1:9000'</pre></td>
2699
        </tr>
2700
      
2701
        <tr>
2702
          <td>SCRIPT_NAME</td>
2703
          <td class="code"><pre>''</pre></td>
2704
        </tr>
2705
      
2706
        <tr>
2707
          <td>wsgi.version</td>
2708
          <td class="code"><pre>(1, 0)</pre></td>
2709
        </tr>
2710
      
2711
        <tr>
2712
          <td>CONTENT_TYPE</td>
2713
          <td class="code"><pre>('multipart/form-data; '
2714
 'boundary=---------------------------6662072422112864483123778989')</pre></td>
2715
        </tr>
2716
      
2717
        <tr>
2718
          <td>HTTP_ACCEPT_ENCODING</td>
2719
          <td class="code"><pre>'gzip, deflate'</pre></td>
2720
        </tr>
2721
      
2722
        <tr>
2723
          <td>HTTP_REFERER</td>
2724
          <td class="code"><pre>'http://td.bhp.org.bw/admin/td_infant/infantoffstudy/add/?next=subject_dashboard_url&amp;dashboard_type=infant&amp;dashboard_model=visit&amp;dashboard_id=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;show=forms&amp;registered_subject=1869b5f5-1b99-49fb-b802-f84b7167f5b1&amp;infant_visit=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;visit_attr=infant_visit&amp;entry_order=0&amp;group_title=None'</pre></td>
2725
        </tr>
2726
      
2727
        <tr>
2728
          <td>gunicorn.socket</td>
2729
          <td class="code"><pre>&lt;socket.socket fd=25, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 9000), raddr=('127.0.0.1', 54960)&gt;</pre></td>
2730
        </tr>
2731
      
2732
        <tr>
2733
          <td>QUERY_STRING</td>
2734
          <td class="code"><pre>'next=subject_dashboard_url&amp;dashboard_type=infant&amp;dashboard_model=visit&amp;dashboard_id=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;show=forms&amp;registered_subject=1869b5f5-1b99-49fb-b802-f84b7167f5b1&amp;infant_visit=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;visit_attr=infant_visit&amp;entry_order=0&amp;group_title=None'</pre></td>
2735
        </tr>
2736
      
2737
        <tr>
2738
          <td>RAW_URI</td>
2739
          <td class="code"><pre>'/admin/td_infant/infantoffstudy/add/?next=subject_dashboard_url&amp;dashboard_type=infant&amp;dashboard_model=visit&amp;dashboard_id=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;show=forms&amp;registered_subject=1869b5f5-1b99-49fb-b802-f84b7167f5b1&amp;infant_visit=77b6c8a5-cee4-45bf-a61d-9994b434d5e3&amp;visit_attr=infant_visit&amp;entry_order=0&amp;group_title=None'</pre></td>
2740
        </tr>
2741
      
2742
        <tr>
2743
          <td>wsgi.errors</td>
2744
          <td class="code"><pre>&lt;gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f3adb878cc0&gt;</pre></td>
2745
        </tr>
2746
      
2747
        <tr>
2748
          <td>HTTP_COOKIE</td>
2749
          <td class="code"><pre>('csrftoken=3Ns9sriyAJVXTxZGEGsExCT6rd61daC8; '
2750
 'sessionid=g9jlvj8eep88h1t4w5jiofq2tsxd3uv3')</pre></td>
2751
        </tr>
2752
      
2753
        <tr>
2754
          <td>REMOTE_ADDR</td>
2755
          <td class="code"><pre>'127.0.0.1'</pre></td>
2756
        </tr>
2757
      
2758
        <tr>
2759
          <td>SERVER_NAME</td>
2760
          <td class="code"><pre>'127.0.0.1'</pre></td>
2761
        </tr>
2762
      
2763
        <tr>
2764
          <td>HTTP_X_FORWARDED_FOR</td>
2765
          <td class="code"><pre>'10.113.201.77'</pre></td>
2766
        </tr>
2767
      
2768
        <tr>
2769
          <td>HTTP_USER_AGENT</td>
2770
          <td class="code"><pre>('Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:47.0) Gecko/20100101 '
2771
 'Firefox/47.0')</pre></td>
2772
        </tr>
2773
      
2774
        <tr>
2775
          <td>wsgi.multithread</td>
2776
          <td class="code"><pre>False</pre></td>
2777
        </tr>
2778
      
2779
        <tr>
2780
          <td>CONTENT_LENGTH</td>
2781
          <td class="code"><pre>'1499'</pre></td>
2782
        </tr>
2783
      
2784
        <tr>
2785
          <td>wsgi.multiprocess</td>
2786
          <td class="code"><pre>False</pre></td>
2787
        </tr>
2788
      
2789
        <tr>
2790
          <td>HTTP_CONNECTION</td>
2791
          <td class="code"><pre>'close'</pre></td>
2792
        </tr>
2793
      
2794
        <tr>
2795
          <td>wsgi.input</td>
2796
          <td class="code"><pre>&lt;gunicorn.http.body.Body object at 0x7f3adb878cf8&gt;</pre></td>
2797
        </tr>
2798
      
2799
        <tr>
2800
          <td>wsgi.url_scheme</td>
2801
          <td class="code"><pre>'http'</pre></td>
2802
        </tr>
2803
      
2804
        <tr>
2805
          <td>SERVER_SOFTWARE</td>
2806
          <td class="code"><pre>'gunicorn/19.6.0'</pre></td>
2807
        </tr>
2808
      
2809
        <tr>
2810
          <td>HTTP_ACCEPT_LANGUAGE</td>
2811
          <td class="code"><pre>'en-US,en;q=0.5'</pre></td>
2812
        </tr>
2813
      
2814
        <tr>
2815
          <td>wsgi.file_wrapper</td>
2816
          <td class="code"><pre>''</pre></td>
2817
        </tr>
2818
      
2819
        <tr>
2820
          <td>CSRF_COOKIE</td>
2821
          <td class="code"><pre>'3Ns9sriyAJVXTxZGEGsExCT6rd61daC8'</pre></td>
2822
        </tr>
2823
      
2824
        <tr>
2825
          <td>REQUEST_METHOD</td>
2826
          <td class="code"><pre>'POST'</pre></td>
2827
        </tr>
2828
      
2829
        <tr>
2830
          <td>REMOTE_PORT</td>
2831
          <td class="code"><pre>'54960'</pre></td>
2832
        </tr>
2833
      
2834
        <tr>
2835
          <td>PATH_INFO</td>
2836
          <td class="code"><pre>'/admin/td_infant/infantoffstudy/add/'</pre></td>
2837
        </tr>
2838
      
2839
        <tr>
2840
          <td>SERVER_PROTOCOL</td>
2841
          <td class="code"><pre>'HTTP/1.0'</pre></td>
2842
        </tr>
2843
      
2844
        <tr>
2845
          <td>HTTP_ACCEPT</td>
2846
          <td class="code"><pre>'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'</pre></td>
2847
        </tr>
2848
      
2849
    </tbody>
2850
  </table>
2851

    
2852

    
2853
  <h3 id="settings-info">Settings</h3>
2854
  <h4>Using settings module <code>tshilo_dikotla.settings</code></h4>
2855
  <table class="req">
2856
    <thead>
2857
      <tr>
2858
        <th>Setting</th>
2859
        <th>Value</th>
2860
      </tr>
2861
    </thead>
2862
    <tbody>
2863
      
2864
        <tr>
2865
          <td>SECURE_REDIRECT_EXEMPT</td>
2866
          <td class="code"><pre>[]</pre></td>
2867
        </tr>
2868
      
2869
        <tr>
2870
          <td>LANGUAGE_COOKIE_NAME</td>
2871
          <td class="code"><pre>'django_language'</pre></td>
2872
        </tr>
2873
      
2874
        <tr>
2875
          <td>DEFAULT_INDEX_TABLESPACE</td>
2876
          <td class="code"><pre>''</pre></td>
2877
        </tr>
2878
      
2879
        <tr>
2880
          <td>TRAVIS_POSTGRES</td>
2881
          <td class="code"><pre>{'default': {'ATOMIC_REQUESTS': True,
2882
             'ENGINE': 'django.db.backends.mysql',
2883
             'HOST': '',
2884
             'NAME': 'td',
2885
             'PORT': '',
2886
             'USER': 'travis'},
2887
 'lab_api': {'ATOMIC_REQUESTS': True,
2888
             'ENGINE': 'django.db.backends.mysql',
2889
             'HOST': '',
2890
             'NAME': 'td_lab',
2891
             'PORT': '',
2892
             'USER': 'travis'},
2893
 'test_server': {'ATOMIC_REQUESTS': True,
2894
                 'ENGINE': 'django.db.backends.mysql',
2895
                 'HOST': '',
2896
                 'NAME': 'td_test',
2897
                 'PORT': '',
2898
                 'USER': 'travis'}}</pre></td>
2899
        </tr>
2900
      
2901
        <tr>
2902
          <td>SETTINGS_MODULE</td>
2903
          <td class="code"><pre>'tshilo_dikotla.settings'</pre></td>
2904
        </tr>
2905
      
2906
        <tr>
2907
          <td>WSGI_APPLICATION</td>
2908
          <td class="code"><pre>'tshilo_dikotla.wsgi.application'</pre></td>
2909
        </tr>
2910
      
2911
        <tr>
2912
          <td>LANGUAGES</td>
2913
          <td class="code"><pre>(('tn', 'Setswana'), ('en', 'English'))</pre></td>
2914
        </tr>
2915
      
2916
        <tr>
2917
          <td>AUTHENTICATION_BACKENDS</td>
2918
          <td class="code"><pre>['django.contrib.auth.backends.ModelBackend']</pre></td>
2919
        </tr>
2920
      
2921
        <tr>
2922
          <td>TEST_RUNNER</td>
2923
          <td class="code"><pre>'django.test.runner.DiscoverRunner'</pre></td>
2924
        </tr>
2925
      
2926
        <tr>
2927
          <td>MEDIA_ROOT</td>
2928
          <td class="code"><pre>Path('/home/django/source/bhp085/tshilo_dikotla/media')</pre></td>
2929
        </tr>
2930
      
2931
        <tr>
2932
          <td>ABSOLUTE_URL_OVERRIDES</td>
2933
          <td class="code"><pre>{}</pre></td>
2934
        </tr>
2935
      
2936
        <tr>
2937
          <td>SIGNING_BACKEND</td>
2938
          <td class="code"><pre>'django.core.signing.TimestampSigner'</pre></td>
2939
        </tr>
2940
      
2941
        <tr>
2942
          <td>EMAIL_USE_TLS</td>
2943
          <td class="code"><pre>False</pre></td>
2944
        </tr>
2945
      
2946
        <tr>
2947
          <td>TEST_HOSTS_POSTGRES</td>
2948
          <td class="code"><pre>{'default': {'ATOMIC_REQUESTS': True,
2949
             'ENGINE': 'django.db.backends.postgresql_psycopg2',
2950
             'HOST': '',
2951
             'NAME': 'td',
2952
             'PASSWORD': '********************',
2953
             'PORT': '',
2954
             'USER': 'django'},
2955
 'lab_api': {'ATOMIC_REQUESTS': True,
2956
             'ENGINE': 'django.db.backends.postgresql_psycopg2',
2957
             'HOST': '',
2958
             'NAME': 'td_lab',
2959
             'PASSWORD': '********************',
2960
             'PORT': '',
2961
             'USER': 'django'}}</pre></td>
2962
        </tr>
2963
      
2964
        <tr>
2965
          <td>FIELD_MAX_LENGTH</td>
2966
          <td class="code"><pre>'default'</pre></td>
2967
        </tr>
2968
      
2969
        <tr>
2970
          <td>SESSION_CACHE_ALIAS</td>
2971
          <td class="code"><pre>'default'</pre></td>
2972
        </tr>
2973
      
2974
        <tr>
2975
          <td>DECIMAL_SEPARATOR</td>
2976
          <td class="code"><pre>'.'</pre></td>
2977
        </tr>
2978
      
2979
        <tr>
2980
          <td>DEVELOPER_HOSTS</td>
2981
          <td class="code"><pre>['mac2-2.local', 'ckgathi', 'one-2.local', 'One-2.local', 'tsetsiba', 'leslie']</pre></td>
2982
        </tr>
2983
      
2984
        <tr>
2985
          <td>MINIMUM_AGE_OF_CONSENT</td>
2986
          <td class="code"><pre>18</pre></td>
2987
        </tr>
2988
      
2989
        <tr>
2990
          <td>SESSION_COOKIE_HTTPONLY</td>
2991
          <td class="code"><pre>True</pre></td>
2992
        </tr>
2993
      
2994
        <tr>
2995
          <td>STATIC_ROOT</td>
2996
          <td class="code"><pre>Path('/home/django/source/bhp085/tshilo_dikotla/static')</pre></td>
2997
        </tr>
2998
      
2999
        <tr>
3000
          <td>REST_FRAMEWORK</td>
3001
          <td class="code"><pre>{'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework.authentication.TokenAuthentication',),
3002
 'PAGE_SIZE': 1}</pre></td>
3003
        </tr>
3004
      
3005
        <tr>
3006
          <td>ETC_DIR</td>
3007
          <td class="code"><pre>Path('/home/django/source/etc')</pre></td>
3008
        </tr>
3009
      
3010
        <tr>
3011
          <td>IGNORABLE_404_URLS</td>
3012
          <td class="code"><pre>[]</pre></td>
3013
        </tr>
3014
      
3015
        <tr>
3016
          <td>SHORT_DATE_FORMAT</td>
3017
          <td class="code"><pre>'m/d/Y'</pre></td>
3018
        </tr>
3019
      
3020
        <tr>
3021
          <td>INSTITUTION</td>
3022
          <td class="code"><pre>'Botswana-Harvard AIDS Institute'</pre></td>
3023
        </tr>
3024
      
3025
        <tr>
3026
          <td>DEFAULT_STUDY_SITE</td>
3027
          <td class="code"><pre>'40'</pre></td>
3028
        </tr>
3029
      
3030
        <tr>
3031
          <td>ROOT_URLCONF</td>
3032
          <td class="code"><pre>'tshilo_dikotla.urls'</pre></td>
3033
        </tr>
3034
      
3035
        <tr>
3036
          <td>CSRF_FAILURE_VIEW</td>
3037
          <td class="code"><pre>'django.views.csrf.csrf_failure'</pre></td>
3038
        </tr>
3039
      
3040
        <tr>
3041
          <td>EMAIL_SUBJECT_PREFIX</td>
3042
          <td class="code"><pre>'[Django] '</pre></td>
3043
        </tr>
3044
      
3045
        <tr>
3046
          <td>FILE_UPLOAD_TEMP_DIR</td>
3047
          <td class="code"><pre>None</pre></td>
3048
        </tr>
3049
      
3050
        <tr>
3051
          <td>EMAIL_HOST_PASSWORD</td>
3052
          <td class="code"><pre>'********************'</pre></td>
3053
        </tr>
3054
      
3055
        <tr>
3056
          <td>SECRET_KEY</td>
3057
          <td class="code"><pre>'********************'</pre></td>
3058
        </tr>
3059
      
3060
        <tr>
3061
          <td>DISPATCH_APP_LABELS</td>
3062
          <td class="code"><pre>[]</pre></td>
3063
        </tr>
3064
      
3065
        <tr>
3066
          <td>SESSION_COOKIE_PATH</td>
3067
          <td class="code"><pre>'/'</pre></td>
3068
        </tr>
3069
      
3070
        <tr>
3071
          <td>LOGIN_URL</td>
3072
          <td class="code"><pre>'/td/login/'</pre></td>
3073
        </tr>
3074
      
3075
        <tr>
3076
          <td>MIDDLEMAN_DEVICE_ID_LIST</td>
3077
          <td class="code"><pre>[98]</pre></td>
3078
        </tr>
3079
      
3080
        <tr>
3081
          <td>DEFAULT_TABLESPACE</td>
3082
          <td class="code"><pre>''</pre></td>
3083
        </tr>
3084
      
3085
        <tr>
3086
          <td>EMAIL_TIMEOUT</td>
3087
          <td class="code"><pre>None</pre></td>
3088
        </tr>
3089
      
3090
        <tr>
3091
          <td>PROJECT_DIR</td>
3092
          <td class="code"><pre>Path('/home/django/source/bhp085/tshilo_dikotla')</pre></td>
3093
        </tr>
3094
      
3095
        <tr>
3096
          <td>USE_THOUSAND_SEPARATOR</td>
3097
          <td class="code"><pre>False</pre></td>
3098
        </tr>
3099
      
3100
        <tr>
3101
          <td>AUTH_PASSWORD_VALIDATORS</td>
3102
          <td class="code"><pre>'********************'</pre></td>
3103
        </tr>
3104
      
3105
        <tr>
3106
          <td>FORCE_SCRIPT_NAME</td>
3107
          <td class="code"><pre>None</pre></td>
3108
        </tr>
3109
      
3110
        <tr>
3111
          <td>DATABASES</td>
3112
          <td class="code"><pre>{'default': {'ATOMIC_REQUESTS': True,
3113
             'AUTOCOMMIT': True,
3114
             'CONN_MAX_AGE': 0,
3115
             'ENGINE': 'django.db.backends.mysql',
3116
             'HOST': '',
3117
             'NAME': '',
3118
             'OPTIONS': {'read_default_file': Path('/home/django/source/etc/default.cnf')},
3119
             'PASSWORD': '********************',
3120
             'PORT': '',
3121
             'TEST': {'CHARSET': None,
3122
                      'COLLATION': None,
3123
                      'MIRROR': None,
3124
                      'NAME': None},
3125
             'TIME_ZONE': None,
3126
             'USER': ''}}</pre></td>
3127
        </tr>
3128
      
3129
        <tr>
3130
          <td>DATABASE_ROUTERS</td>
3131
          <td class="code"><pre>[]</pre></td>
3132
        </tr>
3133
      
3134
        <tr>
3135
          <td>TEMPLATES</td>
3136
          <td class="code"><pre>[{'APP_DIRS': True,
3137
  'BACKEND': 'django.template.backends.django.DjangoTemplates',
3138
  'DIRS': [Path('/home/django/source/bhp085/tshilo_dikotla/templates')],
3139
  'OPTIONS': {'context_processors': ['django.template.context_processors.debug',
3140
                                     'django.template.context_processors.request',
3141
                                     'django.contrib.auth.context_processors.auth',
3142
                                     'django.contrib.messages.context_processors.messages']}}]</pre></td>
3143
        </tr>
3144
      
3145
        <tr>
3146
          <td>FORMAT_MODULE_PATH</td>
3147
          <td class="code"><pre>None</pre></td>
3148
        </tr>
3149
      
3150
        <tr>
3151
          <td>FILE_CHARSET</td>
3152
          <td class="code"><pre>'utf-8'</pre></td>
3153
        </tr>
3154
      
3155
        <tr>
3156
          <td>TEMPLATE_LOADERS</td>
3157
          <td class="code"><pre>('django.template.loaders.filesystem.Loader',
3158
 'django.template.loaders.app_directories.Loader',
3159
 'django.template.loaders.eggs.Loader')</pre></td>
3160
        </tr>
3161
      
3162
        <tr>
3163
          <td>SESSION_COOKIE_SECURE</td>
3164
          <td class="code"><pre>False</pre></td>
3165
        </tr>
3166
      
3167
        <tr>
3168
          <td>STATICFILES_FINDERS</td>
3169
          <td class="code"><pre>('django.contrib.staticfiles.finders.FileSystemFinder',
3170
 'django.contrib.staticfiles.finders.AppDirectoriesFinder')</pre></td>
3171
        </tr>
3172
      
3173
        <tr>
3174
          <td>CORS_ORIGIN_ALLOW_ALL</td>
3175
          <td class="code"><pre>True</pre></td>
3176
        </tr>
3177
      
3178
        <tr>
3179
          <td>INTERNAL_IPS</td>
3180
          <td class="code"><pre>[]</pre></td>
3181
        </tr>
3182
      
3183
        <tr>
3184
          <td>LOGGING_CONFIG</td>
3185
          <td class="code"><pre>'logging.config.dictConfig'</pre></td>
3186
        </tr>
3187
      
3188
        <tr>
3189
          <td>ADMINS</td>
3190
          <td class="code"><pre>[]</pre></td>
3191
        </tr>
3192
      
3193
        <tr>
3194
          <td>YEAR_MONTH_FORMAT</td>
3195
          <td class="code"><pre>'F Y'</pre></td>
3196
        </tr>
3197
      
3198
        <tr>
3199
          <td>SERVER_DEVICE_ID_LIST</td>
3200
          <td class="code"><pre>[91, 92, 93, 94, 95, 96, 97, 99]</pre></td>
3201
        </tr>
3202
      
3203
        <tr>
3204
          <td>LANGUAGE_COOKIE_DOMAIN</td>
3205
          <td class="code"><pre>None</pre></td>
3206
        </tr>
3207
      
3208
        <tr>
3209
          <td>FILE_UPLOAD_DIRECTORY_PERMISSIONS</td>
3210
          <td class="code"><pre>None</pre></td>
3211
        </tr>
3212
      
3213
        <tr>
3214
          <td>X_FRAME_OPTIONS</td>
3215
          <td class="code"><pre>'SAMEORIGIN'</pre></td>
3216
        </tr>
3217
      
3218
        <tr>
3219
          <td>TIME_INPUT_FORMATS</td>
3220
          <td class="code"><pre>['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']</pre></td>
3221
        </tr>
3222
      
3223
        <tr>
3224
          <td>FILE_UPLOAD_MAX_MEMORY_SIZE</td>
3225
          <td class="code"><pre>2621440</pre></td>
3226
        </tr>
3227
      
3228
        <tr>
3229
          <td>AUTH_USER_MODEL</td>
3230
          <td class="code"><pre>'auth.User'</pre></td>
3231
        </tr>
3232
      
3233
        <tr>
3234
          <td>DISALLOWED_USER_AGENTS</td>
3235
          <td class="code"><pre>[]</pre></td>
3236
        </tr>
3237
      
3238
        <tr>
3239
          <td>CSRF_COOKIE_PATH</td>
3240
          <td class="code"><pre>'/'</pre></td>
3241
        </tr>
3242
      
3243
        <tr>
3244
          <td>DEFAULT_FILE_STORAGE</td>
3245
          <td class="code"><pre>'django.core.files.storage.FileSystemStorage'</pre></td>
3246
        </tr>
3247
      
3248
        <tr>
3249
          <td>CORS_ORIGIN_WHITELIST</td>
3250
          <td class="code"><pre>None</pre></td>
3251
        </tr>
3252
      
3253
        <tr>
3254
          <td>LANGUAGE_CODE</td>
3255
          <td class="code"><pre>'en'</pre></td>
3256
        </tr>
3257
      
3258
        <tr>
3259
          <td>LIVE_SERVER</td>
3260
          <td class="code"><pre>'td.bhp.org.bw'</pre></td>
3261
        </tr>
3262
      
3263
        <tr>
3264
          <td>DEFAULT_CHARSET</td>
3265
          <td class="code"><pre>'utf-8'</pre></td>
3266
        </tr>
3267
      
3268
        <tr>
3269
          <td>CACHE_MIDDLEWARE_SECONDS</td>
3270
          <td class="code"><pre>600</pre></td>
3271
        </tr>
3272
      
3273
        <tr>
3274
          <td>DEBUG</td>
3275
          <td class="code"><pre>True</pre></td>
3276
        </tr>
3277
      
3278
        <tr>
3279
          <td>SECURE_CONTENT_TYPE_NOSNIFF</td>
3280
          <td class="code"><pre>False</pre></td>
3281
        </tr>
3282
      
3283
        <tr>
3284
          <td>AGE_IS_ADULT</td>
3285
          <td class="code"><pre>18</pre></td>
3286
        </tr>
3287
      
3288
        <tr>
3289
          <td>EMAIL_HOST_USER</td>
3290
          <td class="code"><pre>''</pre></td>
3291
        </tr>
3292
      
3293
        <tr>
3294
          <td>SILENCED_SYSTEM_CHECKS</td>
3295
          <td class="code"><pre>[]</pre></td>
3296
        </tr>
3297
      
3298
        <tr>
3299
          <td>CSRF_TRUSTED_ORIGINS</td>
3300
          <td class="code"><pre>[]</pre></td>
3301
        </tr>
3302
      
3303
        <tr>
3304
          <td>CACHE_MIDDLEWARE_KEY_PREFIX</td>
3305
          <td class="code"><pre>'********************'</pre></td>
3306
        </tr>
3307
      
3308
        <tr>
3309
          <td>SOURCE_ROOT</td>
3310
          <td class="code"><pre>Path('/home/django/source/bhp085')</pre></td>
3311
        </tr>
3312
      
3313
        <tr>
3314
          <td>USE_X_FORWARDED_PORT</td>
3315
          <td class="code"><pre>False</pre></td>
3316
        </tr>
3317
      
3318
        <tr>
3319
          <td>SESSION_COOKIE_DOMAIN</td>
3320
          <td class="code"><pre>None</pre></td>
3321
        </tr>
3322
      
3323
        <tr>
3324
          <td>MANAGERS</td>
3325
          <td class="code"><pre>[]</pre></td>
3326
        </tr>
3327
      
3328
        <tr>
3329
          <td>APP_LABEL</td>
3330
          <td class="code"><pre>'tshilo_dikotla'</pre></td>
3331
        </tr>
3332
      
3333
        <tr>
3334
          <td>SERVER_EMAIL</td>
3335
          <td class="code"><pre>'root@localhost'</pre></td>
3336
        </tr>
3337
      
3338
        <tr>
3339
          <td>CSRF_COOKIE_HTTPONLY</td>
3340
          <td class="code"><pre>False</pre></td>
3341
        </tr>
3342
      
3343
        <tr>
3344
          <td>NUMBER_GROUPING</td>
3345
          <td class="code"><pre>0</pre></td>
3346
        </tr>
3347
      
3348
        <tr>
3349
          <td>SECURE_BROWSER_XSS_FILTER</td>
3350
          <td class="code"><pre>False</pre></td>
3351
        </tr>
3352
      
3353
        <tr>
3354
          <td>PRODUCTION_SECRET_KEY</td>
3355
          <td class="code"><pre>'********************'</pre></td>
3356
        </tr>
3357
      
3358
        <tr>
3359
          <td>USE_ETAGS</td>
3360
          <td class="code"><pre>False</pre></td>
3361
        </tr>
3362
      
3363
        <tr>
3364
          <td>STATIC_URL</td>
3365
          <td class="code"><pre>'/static/'</pre></td>
3366
        </tr>
3367
      
3368
        <tr>
3369
          <td>USE_X_FORWARDED_HOST</td>
3370
          <td class="code"><pre>True</pre></td>
3371
        </tr>
3372
      
3373
        <tr>
3374
          <td>SESSION_COOKIE_AGE</td>
3375
          <td class="code"><pre>1209600</pre></td>
3376
        </tr>
3377
      
3378
        <tr>
3379
          <td>ALLOW_MODEL_SERIALIZATION</td>
3380
          <td class="code"><pre>True</pre></td>
3381
        </tr>
3382
      
3383
        <tr>
3384
          <td>LANGUAGE_COOKIE_PATH</td>
3385
          <td class="code"><pre>'/'</pre></td>
3386
        </tr>
3387
      
3388
        <tr>
3389
          <td>PASSWORD_HASHERS</td>
3390
          <td class="code"><pre>'********************'</pre></td>
3391
        </tr>
3392
      
3393
        <tr>
3394
          <td>SECURE_HSTS_SECONDS</td>
3395
          <td class="code"><pre>0</pre></td>
3396
        </tr>
3397
      
3398
        <tr>
3399
          <td>SESSION_ENGINE</td>
3400
          <td class="code"><pre>'django.contrib.sessions.backends.db'</pre></td>
3401
        </tr>
3402
      
3403
        <tr>
3404
          <td>FILE_UPLOAD_PERMISSIONS</td>
3405
          <td class="code"><pre>None</pre></td>
3406
        </tr>
3407
      
3408
        <tr>
3409
          <td>GIT_DIR</td>
3410
          <td class="code"><pre>Path('/home/django/source/bhp085')</pre></td>
3411
        </tr>
3412
      
3413
        <tr>
3414
          <td>SECURE_HSTS_INCLUDE_SUBDOMAINS</td>
3415
          <td class="code"><pre>False</pre></td>
3416
        </tr>
3417
      
3418
        <tr>
3419
          <td>SECURE_SSL_HOST</td>
3420
          <td class="code"><pre>None</pre></td>
3421
        </tr>
3422
      
3423
        <tr>
3424
          <td>IS_SECURE_DEVICE</td>
3425
          <td class="code"><pre>True</pre></td>
3426
        </tr>
3427
      
3428
        <tr>
3429
          <td>PROJECT_IDENTIFIER_PREFIX</td>
3430
          <td class="code"><pre>'085'</pre></td>
3431
        </tr>
3432
      
3433
        <tr>
3434
          <td>TEMPLATE_STRING_IF_INVALID</td>
3435
          <td class="code"><pre>''</pre></td>
3436
        </tr>
3437
      
3438
        <tr>
3439
          <td>EMAIL_SSL_CERTFILE</td>
3440
          <td class="code"><pre>None</pre></td>
3441
        </tr>
3442
      
3443
        <tr>
3444
          <td>STATICFILES_DIRS</td>
3445
          <td class="code"><pre>[]</pre></td>
3446
        </tr>
3447
      
3448
        <tr>
3449
          <td>EMAIL_BACKEND</td>
3450
          <td class="code"><pre>'django.core.mail.backends.smtp.EmailBackend'</pre></td>
3451
        </tr>
3452
      
3453
        <tr>
3454
          <td>DATETIME_INPUT_FORMATS</td>
3455
          <td class="code"><pre>['%Y-%m-%d %H:%M:%S',
3456
 '%Y-%m-%d %H:%M:%S.%f',
3457
 '%Y-%m-%d %H:%M',
3458
 '%Y-%m-%d',
3459
 '%m/%d/%Y %H:%M:%S',
3460
 '%m/%d/%Y %H:%M:%S.%f',
3461
 '%m/%d/%Y %H:%M',
3462
 '%m/%d/%Y',
3463
 '%m/%d/%y %H:%M:%S',
3464
 '%m/%d/%y %H:%M:%S.%f',
3465
 '%m/%d/%y %H:%M',
3466
 '%m/%d/%y']</pre></td>
3467
        </tr>
3468
      
3469
        <tr>
3470
          <td>USE_L10N</td>
3471
          <td class="code"><pre>True</pre></td>
3472
        </tr>
3473
      
3474
        <tr>
3475
          <td>CSRF_COOKIE_DOMAIN</td>
3476
          <td class="code"><pre>None</pre></td>
3477
        </tr>
3478
      
3479
        <tr>
3480
          <td>PROJECT_TITLE</td>
3481
          <td class="code"><pre>'Tshilo Dikotla Live Server'</pre></td>
3482
        </tr>
3483
      
3484
        <tr>
3485
          <td>SESSION_FILE_PATH</td>
3486
          <td class="code"><pre>None</pre></td>
3487
        </tr>
3488
      
3489
        <tr>
3490
          <td>MEDIA_URL</td>
3491
          <td class="code"><pre>''</pre></td>
3492
        </tr>
3493
      
3494
        <tr>
3495
          <td>DEFAULT_CONTENT_TYPE</td>
3496
          <td class="code"><pre>'text/html'</pre></td>
3497
        </tr>
3498
      
3499
        <tr>
3500
          <td>LOCALE_PATHS</td>
3501
          <td class="code"><pre>[]</pre></td>
3502
        </tr>
3503
      
3504
        <tr>
3505
          <td>BASE_DIR</td>
3506
          <td class="code"><pre>Path('/home/django/source/bhp085/tshilo_dikotla')</pre></td>
3507
        </tr>
3508
      
3509
        <tr>
3510
          <td>MIGRATION_MODULES</td>
3511
          <td class="code"><pre>{}</pre></td>
3512
        </tr>
3513
      
3514
        <tr>
3515
          <td>SITE_CODE</td>
3516
          <td class="code"><pre>'40'</pre></td>
3517
        </tr>
3518
      
3519
        <tr>
3520
          <td>DATE_FORMAT</td>
3521
          <td class="code"><pre>'N j, Y'</pre></td>
3522
        </tr>
3523
      
3524
        <tr>
3525
          <td>TIME_FORMAT</td>
3526
          <td class="code"><pre>'P'</pre></td>
3527
        </tr>
3528
      
3529
        <tr>
3530
          <td>TEMPLATE_DIRS</td>
3531
          <td class="code"><pre>()</pre></td>
3532
        </tr>
3533
      
3534
        <tr>
3535
          <td>FILE_UPLOAD_HANDLERS</td>
3536
          <td class="code"><pre>['django.core.files.uploadhandler.MemoryFileUploadHandler',
3537
 'django.core.files.uploadhandler.TemporaryFileUploadHandler']</pre></td>
3538
        </tr>
3539
      
3540
        <tr>
3541
          <td>KEY_PATH</td>
3542
          <td class="code"><pre>'********************'</pre></td>
3543
        </tr>
3544
      
3545
        <tr>
3546
          <td>CELLPHONE_REGEX</td>
3547
          <td class="code"><pre>'^[7]{1}[12345678]{1}[0-9]{6}$'</pre></td>
3548
        </tr>
3549
      
3550
        <tr>
3551
          <td>SESSION_EXPIRE_AT_BROWSER_CLOSE</td>
3552
          <td class="code"><pre>False</pre></td>
3553
        </tr>
3554
      
3555
        <tr>
3556
          <td>DEFAULT_FROM_EMAIL</td>
3557
          <td class="code"><pre>'webmaster@localhost'</pre></td>
3558
        </tr>
3559
      
3560
        <tr>
3561
          <td>APPEND_SLASH</td>
3562
          <td class="code"><pre>True</pre></td>
3563
        </tr>
3564
      
3565
        <tr>
3566
          <td>MESSAGE_STORAGE</td>
3567
          <td class="code"><pre>'django.contrib.messages.storage.fallback.FallbackStorage'</pre></td>
3568
        </tr>
3569
      
3570
        <tr>
3571
          <td>PREPEND_WWW</td>
3572
          <td class="code"><pre>False</pre></td>
3573
        </tr>
3574
      
3575
        <tr>
3576
          <td>CSRF_COOKIE_NAME</td>
3577
          <td class="code"><pre>'csrftoken'</pre></td>
3578
        </tr>
3579
      
3580
        <tr>
3581
          <td>USE_I18N</td>
3582
          <td class="code"><pre>True</pre></td>
3583
        </tr>
3584
      
3585
        <tr>
3586
          <td>CSRF_HEADER_NAME</td>
3587
          <td class="code"><pre>'HTTP_X_CSRFTOKEN'</pre></td>
3588
        </tr>
3589
      
3590
        <tr>
3591
          <td>PROJECT_ROOT</td>
3592
          <td class="code"><pre>Path('/home/django/source/bhp085')</pre></td>
3593
        </tr>
3594
      
3595
        <tr>
3596
          <td>ALLOWED_HOSTS</td>
3597
          <td class="code"><pre>[]</pre></td>
3598
        </tr>
3599
      
3600
        <tr>
3601
          <td>EMAIL_USE_SSL</td>
3602
          <td class="code"><pre>False</pre></td>
3603
        </tr>
3604
      
3605
        <tr>
3606
          <td>PASSWORD_RESET_TIMEOUT_DAYS</td>
3607
          <td class="code"><pre>'********************'</pre></td>
3608
        </tr>
3609
      
3610
        <tr>
3611
          <td>PROJECT_IDENTIFIER_MODULUS</td>
3612
          <td class="code"><pre>7</pre></td>
3613
        </tr>
3614
      
3615
        <tr>
3616
          <td>TELEPHONE_REGEX</td>
3617
          <td class="code"><pre>'^[2-8]{1}[0-9]{6}$'</pre></td>
3618
        </tr>
3619
      
3620
        <tr>
3621
          <td>SUBJECT_TYPES</td>
3622
          <td class="code"><pre>['maternal', 'infant']</pre></td>
3623
        </tr>
3624
      
3625
        <tr>
3626
          <td>SESSION_COOKIE_NAME</td>
3627
          <td class="code"><pre>'sessionid'</pre></td>
3628
        </tr>
3629
      
3630
        <tr>
3631
          <td>DEVICE_ID</td>
3632
          <td class="code"><pre>99</pre></td>
3633
        </tr>
3634
      
3635
        <tr>
3636
          <td>TEMPLATE_DEBUG</td>
3637
          <td class="code"><pre>False</pre></td>
3638
        </tr>
3639
      
3640
        <tr>
3641
          <td>DATETIME_FORMAT</td>
3642
          <td class="code"><pre>'N j, Y, P'</pre></td>
3643
        </tr>
3644
      
3645
        <tr>
3646
          <td>GENDER_OF_CONSENT</td>
3647
          <td class="code"><pre>['F']</pre></td>
3648
        </tr>
3649
      
3650
        <tr>
3651
          <td>THOUSAND_SEPARATOR</td>
3652
          <td class="code"><pre>','</pre></td>
3653
        </tr>
3654
      
3655
        <tr>
3656
          <td>APP_NAME</td>
3657
          <td class="code"><pre>'td'</pre></td>
3658
        </tr>
3659
      
3660
        <tr>
3661
          <td>LABEL_PRINTER_MAKE_AND_MODEL</td>
3662
          <td class="code"><pre>['Zebra ZPL Label Printer']</pre></td>
3663
        </tr>
3664
      
3665
        <tr>
3666
          <td>SUBJECT_APP_LIST</td>
3667
          <td class="code"><pre>['maternal', 'infant']</pre></td>
3668
        </tr>
3669
      
3670
        <tr>
3671
          <td>DATE_INPUT_FORMATS</td>
3672
          <td class="code"><pre>['%Y-%m-%d',
3673
 '%m/%d/%Y',
3674
 '%m/%d/%y',
3675
 '%b %d %Y',
3676
 '%b %d, %Y',
3677
 '%d %b %Y',
3678
 '%d %b, %Y',
3679
 '%B %d %Y',
3680
 '%B %d, %Y',
3681
 '%d %B %Y',
3682
 '%d %B, %Y']</pre></td>
3683
        </tr>
3684
      
3685
        <tr>
3686
          <td>SESSION_SERIALIZER</td>
3687
          <td class="code"><pre>'django.contrib.sessions.serializers.JSONSerializer'</pre></td>
3688
        </tr>
3689
      
3690
        <tr>
3691
          <td>SECURE_SSL_REDIRECT</td>
3692
          <td class="code"><pre>False</pre></td>
3693
        </tr>
3694
      
3695
        <tr>
3696
          <td>CSRF_COOKIE_AGE</td>
3697
          <td class="code"><pre>31449600</pre></td>
3698
        </tr>
3699
      
3700
        <tr>
3701
          <td>FIXTURE_DIRS</td>
3702
          <td class="code"><pre>[]</pre></td>
3703
        </tr>
3704
      
3705
        <tr>
3706
          <td>INSTALLED_APPS</td>
3707
          <td class="code"><pre>['django.contrib.admin',
3708
 'django.contrib.auth',
3709
 'django.contrib.contenttypes',
3710
 'django.contrib.sessions',
3711
 'django.contrib.messages',
3712
 'django.contrib.staticfiles',
3713
 'django_extensions',
3714
 'simple_history',
3715
 'rest_framework',
3716
 'rest_framework.authtoken',
3717
 'django_js_reverse',
3718
 'django_revision',
3719
 'edc_templates',
3720
 'edc_identifier',
3721
 'edc_lab.lab_packing',
3722
 'edc_lab.lab_clinic_api',
3723
 'edc_lab.lab_clinic_reference',
3724
 'lis.labeling',
3725
 'edc_appointment',
3726
 'edc_base',
3727
 'edc_configuration',
3728
 'corsheaders',
3729
 'crispy_forms',
3730
 'edc_constants',
3731
 'edc_content_type_map',
3732
 'edc_dashboard',
3733
 'edc_data_manager',
3734
 'edc_death_report',
3735
 'edc_device',
3736
 'edc_locator',
3737
 'edc_meta_data',
3738
 'edc_offstudy',
3739
 'edc_registration',
3740
 'edc_rule_groups',
3741
 'edc_sync_files',
3742
 'django_appconfig_ini',
3743
 'edc_code_lists',
3744
 'edc_visit_schedule',
3745
 'edc_visit_tracking',
3746
 'call_manager',
3747
 'edc_call_manager.apps.EdcCallManagerAppConfig',
3748
 'tshilo_dikotla.apps.DjangoCryptoFieldsAppConfig',
3749
 'tshilo_dikotla.apps.ConsentAppConfig',
3750
 'tshilo_dikotla.apps.EdcSyncAppConfig',
3751
 'tshilo_dikotla.apps.TshiloDikotlaConfig',
3752
 'td_dashboard.apps.TdDashboardConfig',
3753
 'td_infant.apps.TdInfantConfig',
3754
 'td_lab.apps.TdLabConfig',
3755
 'td_list.apps.TdListConfig',
3756
 'registration.apps.RegistrationConfig',
3757
 'td_maternal.apps.TdMaternalConfig']</pre></td>
3758
        </tr>
3759
      
3760
        <tr>
3761
          <td>CACHES</td>
3762
          <td class="code"><pre>{'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}</pre></td>
3763
        </tr>
3764
      
3765
        <tr>
3766
          <td>EMAIL_HOST</td>
3767
          <td class="code"><pre>'localhost'</pre></td>
3768
        </tr>
3769
      
3770
        <tr>
3771
          <td>SECURE_PROXY_SSL_HEADER</td>
3772
          <td class="code"><pre>None</pre></td>
3773
        </tr>
3774
      
3775
        <tr>
3776
          <td>LOGIN_REDIRECT_URL</td>
3777
          <td class="code"><pre>'/td/'</pre></td>
3778
        </tr>
3779
      
3780
        <tr>
3781
          <td>MONTH_DAY_FORMAT</td>
3782
          <td class="code"><pre>'F j'</pre></td>
3783
        </tr>
3784
      
3785
        <tr>
3786
          <td>LOGOUT_URL</td>
3787
          <td class="code"><pre>'/td/logout/'</pre></td>
3788
        </tr>
3789
      
3790
        <tr>
3791
          <td>DEFAULT_EXCEPTION_REPORTER_FILTER</td>
3792
          <td class="code"><pre>'django.views.debug.SafeExceptionReporterFilter'</pre></td>
3793
        </tr>
3794
      
3795
        <tr>
3796
          <td>EMAIL_SSL_KEYFILE</td>
3797
          <td class="code"><pre>'********************'</pre></td>
3798
        </tr>
3799
      
3800
        <tr>
3801
          <td>SHORT_DATETIME_FORMAT</td>
3802
          <td class="code"><pre>'m/d/Y P'</pre></td>
3803
        </tr>
3804
      
3805
        <tr>
3806
          <td>MAXIMUM_AGE_OF_CONSENT</td>
3807
          <td class="code"><pre>64</pre></td>
3808
        </tr>
3809
      
3810
        <tr>
3811
          <td>CRISPY_TEMPLATE_PACK</td>
3812
          <td class="code"><pre>'bootstrap3'</pre></td>
3813
        </tr>
3814
      
3815
        <tr>
3816
          <td>LANGUAGES_BIDI</td>
3817
          <td class="code"><pre>['he', 'ar', 'fa', 'ur']</pre></td>
3818
        </tr>
3819
      
3820
        <tr>
3821
          <td>TEMPLATE_CONTEXT_PROCESSORS</td>
3822
          <td class="code"><pre>('django.contrib.auth.context_processors.auth',
3823
 'django.core.context_processors.debug',
3824
 'django.core.context_processors.i18n',
3825
 'django.core.context_processors.media',
3826
 'django.core.context_processors.static',
3827
 'django.core.context_processors.request',
3828
 'django.contrib.messages.context_processors.messages')</pre></td>
3829
        </tr>
3830
      
3831
        <tr>
3832
          <td>AUTH_PROFILE_MODULE</td>
3833
          <td class="code"><pre>'bhp_userprofile.userprofile'</pre></td>
3834
        </tr>
3835
      
3836
        <tr>
3837
          <td>LANGUAGE_COOKIE_AGE</td>
3838
          <td class="code"><pre>None</pre></td>
3839
        </tr>
3840
      
3841
        <tr>
3842
          <td>SOUTH_TESTS_MIGRATE</td>
3843
          <td class="code"><pre>False</pre></td>
3844
        </tr>
3845
      
3846
        <tr>
3847
          <td>SESSION_SAVE_EVERY_REQUEST</td>
3848
          <td class="code"><pre>False</pre></td>
3849
        </tr>
3850
      
3851
        <tr>
3852
          <td>STATICFILES_STORAGE</td>
3853
          <td class="code"><pre>'django.contrib.staticfiles.storage.StaticFilesStorage'</pre></td>
3854
        </tr>
3855
      
3856
        <tr>
3857
          <td>TEST_HOSTS</td>
3858
          <td class="code"><pre>['edc4.bhp.org.bw', 'tdtest.bhp.org.bw']</pre></td>
3859
        </tr>
3860
      
3861
        <tr>
3862
          <td>MAX_SUBJECTS</td>
3863
          <td class="code"><pre>{'infant': 3000, 'maternal': 3000}</pre></td>
3864
        </tr>
3865
      
3866
        <tr>
3867
          <td>ALLOWED_INCLUDE_ROOTS</td>
3868
          <td class="code"><pre>[]</pre></td>
3869
        </tr>
3870
      
3871
        <tr>
3872
          <td>LOGGING</td>
3873
          <td class="code"><pre>{}</pre></td>
3874
        </tr>
3875
      
3876
        <tr>
3877
          <td>USE_TZ</td>
3878
          <td class="code"><pre>False</pre></td>
3879
        </tr>
3880
      
3881
        <tr>
3882
          <td>FIRST_DAY_OF_WEEK</td>
3883
          <td class="code"><pre>0</pre></td>
3884
        </tr>
3885
      
3886
        <tr>
3887
          <td>MIDDLEWARE_CLASSES</td>
3888
          <td class="code"><pre>['django.middleware.security.SecurityMiddleware',
3889
 'django.contrib.sessions.middleware.SessionMiddleware',
3890
 'django.middleware.locale.LocaleMiddleware',
3891
 'django.middleware.common.CommonMiddleware',
3892
 'django.middleware.csrf.CsrfViewMiddleware',
3893
 'django.contrib.auth.middleware.AuthenticationMiddleware',
3894
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
3895
 'django.contrib.messages.middleware.MessageMiddleware',
3896
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
3897
 'simple_history.middleware.HistoryRequestMiddleware']</pre></td>
3898
        </tr>
3899
      
3900
        <tr>
3901
          <td>PROJECT_NUMBER</td>
3902
          <td class="code"><pre>'BHP085'</pre></td>
3903
        </tr>
3904
      
3905
        <tr>
3906
          <td>TEST_NON_SERIALIZED_APPS</td>
3907
          <td class="code"><pre>[]</pre></td>
3908
        </tr>
3909
      
3910
        <tr>
3911
          <td>PROTOCOL_NUMBER</td>
3912
          <td class="code"><pre>'085'</pre></td>
3913
        </tr>
3914
      
3915
        <tr>
3916
          <td>STUDY_OPEN_DATETIME</td>
3917
          <td class="code"><pre>datetime.datetime(2015, 10, 18, 0, 0)</pre></td>
3918
        </tr>
3919
      
3920
        <tr>
3921
          <td>CACHE_MIDDLEWARE_ALIAS</td>
3922
          <td class="code"><pre>'default'</pre></td>
3923
        </tr>
3924
      
3925
        <tr>
3926
          <td>PRODUCTION_POSTGRES</td>
3927
          <td class="code"><pre>{'default': {'ATOMIC_REQUESTS': True,
3928
             'AUTOCOMMIT': True,
3929
             'CONN_MAX_AGE': 0,
3930
             'ENGINE': 'django.db.backends.mysql',
3931
             'HOST': '',
3932
             'NAME': '',
3933
             'OPTIONS': {'read_default_file': Path('/home/django/source/etc/default.cnf')},
3934
             'PASSWORD': '********************',
3935
             'PORT': '',
3936
             'TEST': {'CHARSET': None,
3937
                      'COLLATION': None,
3938
                      'MIRROR': None,
3939
                      'NAME': None},
3940
             'TIME_ZONE': None,
3941
             'USER': ''}}</pre></td>
3942
        </tr>
3943
      
3944
        <tr>
3945
          <td>PROTOCOL_REVISION</td>
3946
          <td class="code"><pre>'v1.0'</pre></td>
3947
        </tr>
3948
      
3949
        <tr>
3950
          <td>DEBUG_PROPAGATE_EXCEPTIONS</td>
3951
          <td class="code"><pre>False</pre></td>
3952
        </tr>
3953
      
3954
        <tr>
3955
          <td>CSRF_COOKIE_SECURE</td>
3956
          <td class="code"><pre>False</pre></td>
3957
        </tr>
3958
      
3959
        <tr>
3960
          <td>EMAIL_PORT</td>
3961
          <td class="code"><pre>25</pre></td>
3962
        </tr>
3963
      
3964
        <tr>
3965
          <td>TIME_ZONE</td>
3966
          <td class="code"><pre>'Africa/Gaborone'</pre></td>
3967
        </tr>
3968
      
3969
    </tbody>
3970
  </table>
3971

    
3972
</div>
3973

    
3974
  <div id="explanation">
3975
    <p>
3976
      You're seeing this error because you have <code>DEBUG = True</code> in your
3977
      Django settings file. Change that to <code>False</code>, and Django will
3978
      display a standard page generated by the handler for this status code.
3979
    </p>
3980
  </div>
3981

    
3982

    
3983

    
3984
</body></html>