MultipleObjectsReturned at _admin_td_maternal_maternallifetimearvhistory_add_.htm

Selebogo Mokgweetsi, 29/06/2018 15:38

Download (178 KB)

 
1
<!DOCTYPE html>
2
<!-- saved from url=(0370)http://td.bhp.org.bw/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&dashboard_type=maternal&dashboard_model=visit&dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&show=forms&registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&visit_attr=maternal_visit&entry_order=60&group_title=None -->
3
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4
  
5
  <meta name="robots" content="NONE,NOARCHIVE">
6
  <title>MultipleObjectsReturned at /admin/td_maternal/maternallifetimearvhistory/add/</title>
7
  <style type="text/css">
8
    html * { padding:0; margin:0; }
9
    body * { padding:10px 20px; }
10
    body * * { padding:0; }
11
    body { font:small sans-serif; }
12
    body>div { border-bottom:1px solid #ddd; }
13
    h1 { font-weight:normal; }
14
    h2 { margin-bottom:.8em; }
15
    h2 span { font-size:80%; color:#666; font-weight:normal; }
16
    h3 { margin:1em 0 .5em 0; }
17
    h4 { margin:0 0 .5em 0; font-weight: normal; }
18
    code, pre { font-size: 100%; white-space: pre-wrap; }
19
    table { border:1px solid #ccc; border-collapse: collapse; width:100%; background:white; }
20
    tbody td, tbody th { vertical-align:top; padding:2px 3px; }
21
    thead th {
22
      padding:1px 6px 1px 3px; background:#fefefe; text-align:left;
23
      font-weight:normal; font-size:11px; border:1px solid #ddd;
24
    }
25
    tbody th { width:12em; text-align:right; color:#666; padding-right:.5em; }
26
    table.vars { margin:5px 0 2px 40px; }
27
    table.vars td, table.req td { font-family:monospace; }
28
    table td.code { width:100%; }
29
    table td.code pre { overflow:hidden; }
30
    table.source th { color:#666; }
31
    table.source td { font-family:monospace; white-space:pre; border-bottom:1px solid #eee; }
32
    ul.traceback { list-style-type:none; color: #222; }
33
    ul.traceback li.frame { padding-bottom:1em; color:#666; }
34
    ul.traceback li.user { background-color:#e0e0e0; color:#000 }
35
    div.context { padding:10px 0; overflow:hidden; }
36
    div.context ol { padding-left:30px; margin:0 10px; list-style-position: inside; }
37
    div.context ol li { font-family:monospace; white-space:pre; color:#777; cursor:pointer; padding-left: 2px; }
38
    div.context ol li pre { display:inline; }
39
    div.context ol.context-line li { color:#505050; background-color:#dfdfdf; padding: 3px 2px; }
40
    div.context ol.context-line li span { position:absolute; right:32px; }
41
    .user div.context ol.context-line li { background-color:#bbb; color:#000; }
42
    .user div.context ol li { color:#666; }
43
    div.commands { margin-left: 40px; }
44
    div.commands a { color:#555; text-decoration:none; }
45
    .user div.commands a { color: black; }
46
    #summary { background: #ffc; }
47
    #summary h2 { font-weight: normal; color: #666; }
48
    #explanation { background:#eee; }
49
    #template, #template-not-exist { background:#f6f6f6; }
50
    #template-not-exist ul { margin: 0 0 10px 20px; }
51
    #template-not-exist .postmortem-section { margin-bottom: 3px; }
52
    #unicode-hint { background:#eee; }
53
    #traceback { background:#eee; }
54
    #requestinfo { background:#f6f6f6; padding-left:120px; }
55
    #summary table { border:none; background:transparent; }
56
    #requestinfo h2, #requestinfo h3 { position:relative; margin-left:-100px; }
57
    #requestinfo h3 { margin-bottom:-1em; }
58
    .error { background: #ffc; }
59
    .specific { color:#cc3300; font-weight:bold; }
60
    h2 span.commands { font-size:.7em;}
61
    span.commands a:link {color:#5E5694;}
62
    pre.exception_value { font-family: sans-serif; color: #666; font-size: 1.5em; margin: 10px 0 10px 0; }
63
    .append-bottom { margin-bottom: 10px; }
64
  </style>
65
  
66
  <script type="text/javascript">
67
  //<!--
68
    function getElementsByClassName(oElm, strTagName, strClassName){
69
        // Written by Jonathan Snook, http://www.snook.ca/jon; Add-ons by Robert Nyman, http://www.robertnyman.com
70
        var arrElements = (strTagName == "*" && document.all)? document.all :
71
        oElm.getElementsByTagName(strTagName);
72
        var arrReturnElements = new Array();
73
        strClassName = strClassName.replace(/\-/g, "\-");
74
        var oRegExp = new RegExp("(^|\s)" + strClassName + "(\s|$)");
75
        var oElement;
76
        for(var i=0; i<arrElements.length; i++){
77
            oElement = arrElements[i];
78
            if(oRegExp.test(oElement.className)){
79
                arrReturnElements.push(oElement);
80
            }
81
        }
82
        return (arrReturnElements)
83
    }
84
    function hideAll(elems) {
85
      for (var e = 0; e < elems.length; e++) {
86
        elems[e].style.display = 'none';
87
      }
88
    }
89
    window.onload = function() {
90
      hideAll(getElementsByClassName(document, 'table', 'vars'));
91
      hideAll(getElementsByClassName(document, 'ol', 'pre-context'));
92
      hideAll(getElementsByClassName(document, 'ol', 'post-context'));
93
      hideAll(getElementsByClassName(document, 'div', 'pastebin'));
94
    }
95
    function toggle() {
96
      for (var i = 0; i < arguments.length; i++) {
97
        var e = document.getElementById(arguments[i]);
98
        if (e) {
99
          e.style.display = e.style.display == 'none' ? 'block': 'none';
100
        }
101
      }
102
      return false;
103
    }
104
    function varToggle(link, id) {
105
      toggle('v' + id);
106
      var s = link.getElementsByTagName('span')[0];
107
      var uarr = String.fromCharCode(0x25b6);
108
      var darr = String.fromCharCode(0x25bc);
109
      s.innerHTML = s.innerHTML == uarr ? darr : uarr;
110
      return false;
111
    }
112
    function switchPastebinFriendly(link) {
113
      s1 = "Switch to copy-and-paste view";
114
      s2 = "Switch back to interactive view";
115
      link.innerHTML = link.innerHTML.trim() == s1 ? s2: s1;
116
      toggle('browserTraceback', 'pastebinTraceback');
117
      return false;
118
    }
119
    //-->
120
  </script>
121
  
122
</head>
123
<body>
124
<div id="summary">
125
  <h1>MultipleObjectsReturned at /admin/td_maternal/maternallifetimearvhistory/add/</h1>
126
  <pre class="exception_value">get() returned more than one MaternalConsent -- it returned 2!</pre>
127
  <table class="meta">
128

    
129
    <tbody><tr>
130
      <th>Request Method:</th>
131
      <td>POST</td>
132
    </tr>
133
    <tr>
134
      <th>Request URL:</th>
135
      <td>http://127.0.0.1:9000/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None</td>
136
    </tr>
137

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

    
143
    <tr>
144
      <th>Exception Type:</th>
145
      <td>MultipleObjectsReturned</td>
146
    </tr>
147

    
148

    
149
    <tr>
150
      <th>Exception Value:</th>
151
      <td><pre>get() returned more than one MaternalConsent -- it returned 2!</pre></td>
152
    </tr>
153

    
154

    
155
    <tr>
156
      <th>Exception Location:</th>
157
      <td>/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/db/models/query.py in get, line 391</td>
158
    </tr>
159

    
160
    <tr>
161
      <th>Python Executable:</th>
162
      <td>/home/django/.virtualenvs/td_protocol_changes/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/td_protocol_changes/lib/python3.5/site-packages/git/ext/gitdb',
171
 '/home/django/source/tshilo-dikotla',
172
 '/home/django/.virtualenvs/td_protocol_changes/bin',
173
 '/home/django/.virtualenvs/td_protocol_changes/lib/python35.zip',
174
 '/home/django/.virtualenvs/td_protocol_changes/lib/python3.5',
175
 '/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/plat-x86_64-linux-gnu',
176
 '/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/lib-dynload',
177
 '/usr/lib/python3.5',
178
 '/usr/lib/python3.5/plat-x86_64-linux-gnu',
179
 '/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages',
180
 '/home/django/.virtualenvs/td_protocol_changes/src/django-crypto-fields',
181
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-appointment',
182
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-base',
183
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-call-manager',
184
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-code-lists',
185
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-configuration',
186
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-consent',
187
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-constants',
188
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-content-type-map',
189
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-dashboard',
190
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-data-manager',
191
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-death-report',
192
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-device',
193
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-export',
194
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-identifier',
195
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-lab',
196
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-locator',
197
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-notification',
198
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-offstudy',
199
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-quota',
200
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-rest',
201
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-rule-groups',
202
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-sync-files',
203
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-sync',
204
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-templates',
205
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-testing',
206
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-visit-tracking',
207
 '/home/django/.virtualenvs/td_protocol_changes/src/lab-requisition',
208
 '/home/django/.virtualenvs/td_protocol_changes/src/lis',
209
 '/home/django/.virtualenvs/td_protocol_changes/src/django-appconfig-ini',
210
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-visit-schedule',
211
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-meta-data',
212
 '/home/django/.virtualenvs/td_protocol_changes/src/edc-registration',
213
 '/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/gitdb/ext/smmap']</pre></td>
214
    </tr>
215
    <tr>
216
      <th>Server time:</th>
217
      <td>Fri, 29 Jun 2018 15:36:13 +0200</td>
218
    </tr>
219
  </tbody></table>
220
</div>
221

    
222

    
223

    
224

    
225
<div id="traceback">
226
  <h2>Traceback <span class="commands"><a href="http://td.bhp.org.bw/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None#" onclick="return switchPastebinFriendly(this);">
227
    Switch to copy-and-paste view</a></span>
228
  </h2>
229
  
230
  <div id="browserTraceback">
231
    <ul class="traceback">
232
      
233
        
234
        <li class="frame django">
235
          <code>/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/core/handlers/base.py</code> in <code>get_response</code>
236

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

    
280
          
281
            <div class="commands">
282
                
283
                    <a href="http://td.bhp.org.bw/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None#" onclick="return varToggle(this, &#39;139955740504200&#39;)"><span>â–¶</span> Local vars</a>
284
                
285
            </div>
286
            <table class="vars" id="v139955740504200" style="display: none;">
287
              <thead>
288
                <tr>
289
                  <th>Variable</th>
290
                  <th>Value</th>
291
                </tr>
292
              </thead>
293
              <tbody>
294
                
295
                  <tr>
296
                    <td>self</td>
297
                    <td class="code"><pre>&lt;django.core.handlers.wsgi.WSGIHandler object at 0x7f4a02edc6d8&gt;</pre></td>
298
                  </tr>
299
                
300
                  <tr>
301
                    <td>callback</td>
302
                    <td class="code"><pre>&lt;function ModelAdminFormInstructionsMixin.add_view at 0x7f49feef11e0&gt;</pre></td>
303
                  </tr>
304
                
305
                  <tr>
306
                    <td>callback_args</td>
307
                    <td class="code"><pre>()</pre></td>
308
                  </tr>
309
                
310
                  <tr>
311
                    <td>urlconf</td>
312
                    <td class="code"><pre>'tshilo_dikotla.urls'</pre></td>
313
                  </tr>
314
                
315
                  <tr>
316
                    <td>resolver</td>
317
                    <td class="code"><pre>&lt;RegexURLResolver 'tshilo_dikotla.urls' (None:None) ^/&gt;</pre></td>
318
                  </tr>
319
                
320
                  <tr>
321
                    <td>resolver_match</td>
322
                    <td class="code"><pre>ResolverMatch(func=edc_base.modeladmin.mixins.add_view, args=(), kwargs={}, url_name=td_maternal_maternallifetimearvhistory_add, app_names=['admin'], namespaces=['admin'])</pre></td>
323
                  </tr>
324
                
325
                  <tr>
326
                    <td>wrapped_callback</td>
327
                    <td class="code"><pre>&lt;function ModelAdminFormInstructionsMixin.add_view at 0x7f49fc0ee598&gt;</pre></td>
328
                  </tr>
329
                
330
                  <tr>
331
                    <td>response</td>
332
                    <td class="code"><pre>None</pre></td>
333
                  </tr>
334
                
335
                  <tr>
336
                    <td>response_is_rendered</td>
337
                    <td class="code"><pre>False</pre></td>
338
                  </tr>
339
                
340
                  <tr>
341
                    <td>middleware_method</td>
342
                    <td class="code"><pre>&lt;bound method CsrfViewMiddleware.process_view of &lt;django.middleware.csrf.CsrfViewMiddleware object at 0x7f4a02edcef0&gt;&gt;</pre></td>
343
                  </tr>
344
                
345
                  <tr>
346
                    <td>callback_kwargs</td>
347
                    <td class="code"><pre>{}</pre></td>
348
                  </tr>
349
                
350
                  <tr>
351
                    <td>request</td>
352
                    <td class="code"><pre>&lt;WSGIRequest: POST '/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None'&gt;</pre></td>
353
                  </tr>
354
                
355
              </tbody>
356
            </table>
357
          
358
        </li>
359
      
360
        
361
        <li class="frame django">
362
          <code>/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/core/handlers/base.py</code> in <code>get_response</code>
363

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

    
407
          
408
            <div class="commands">
409
                
410
                    <a href="http://td.bhp.org.bw/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None#" onclick="return varToggle(this, &#39;139955738114504&#39;)"><span>â–¶</span> Local vars</a>
411
                
412
            </div>
413
            <table class="vars" id="v139955738114504" style="display: none;">
414
              <thead>
415
                <tr>
416
                  <th>Variable</th>
417
                  <th>Value</th>
418
                </tr>
419
              </thead>
420
              <tbody>
421
                
422
                  <tr>
423
                    <td>self</td>
424
                    <td class="code"><pre>&lt;django.core.handlers.wsgi.WSGIHandler object at 0x7f4a02edc6d8&gt;</pre></td>
425
                  </tr>
426
                
427
                  <tr>
428
                    <td>callback</td>
429
                    <td class="code"><pre>&lt;function ModelAdminFormInstructionsMixin.add_view at 0x7f49feef11e0&gt;</pre></td>
430
                  </tr>
431
                
432
                  <tr>
433
                    <td>callback_args</td>
434
                    <td class="code"><pre>()</pre></td>
435
                  </tr>
436
                
437
                  <tr>
438
                    <td>urlconf</td>
439
                    <td class="code"><pre>'tshilo_dikotla.urls'</pre></td>
440
                  </tr>
441
                
442
                  <tr>
443
                    <td>resolver</td>
444
                    <td class="code"><pre>&lt;RegexURLResolver 'tshilo_dikotla.urls' (None:None) ^/&gt;</pre></td>
445
                  </tr>
446
                
447
                  <tr>
448
                    <td>resolver_match</td>
449
                    <td class="code"><pre>ResolverMatch(func=edc_base.modeladmin.mixins.add_view, args=(), kwargs={}, url_name=td_maternal_maternallifetimearvhistory_add, app_names=['admin'], namespaces=['admin'])</pre></td>
450
                  </tr>
451
                
452
                  <tr>
453
                    <td>wrapped_callback</td>
454
                    <td class="code"><pre>&lt;function ModelAdminFormInstructionsMixin.add_view at 0x7f49fc0ee598&gt;</pre></td>
455
                  </tr>
456
                
457
                  <tr>
458
                    <td>response</td>
459
                    <td class="code"><pre>None</pre></td>
460
                  </tr>
461
                
462
                  <tr>
463
                    <td>response_is_rendered</td>
464
                    <td class="code"><pre>False</pre></td>
465
                  </tr>
466
                
467
                  <tr>
468
                    <td>middleware_method</td>
469
                    <td class="code"><pre>&lt;bound method CsrfViewMiddleware.process_view of &lt;django.middleware.csrf.CsrfViewMiddleware object at 0x7f4a02edcef0&gt;&gt;</pre></td>
470
                  </tr>
471
                
472
                  <tr>
473
                    <td>callback_kwargs</td>
474
                    <td class="code"><pre>{}</pre></td>
475
                  </tr>
476
                
477
                  <tr>
478
                    <td>request</td>
479
                    <td class="code"><pre>&lt;WSGIRequest: POST '/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None'&gt;</pre></td>
480
                  </tr>
481
                
482
              </tbody>
483
            </table>
484
          
485
        </li>
486
      
487
        
488
        <li class="frame user">
489
          <code>/usr/lib/python3.5/contextlib.py</code> in <code>inner</code>
490

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

    
534
          
535
            <div class="commands">
536
                
537
                    <a href="http://td.bhp.org.bw/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None#" onclick="return varToggle(this, &#39;139955738115720&#39;)"><span>â–¶</span> Local vars</a>
538
                
539
            </div>
540
            <table class="vars" id="v139955738115720" style="display: none;">
541
              <thead>
542
                <tr>
543
                  <th>Variable</th>
544
                  <th>Value</th>
545
                </tr>
546
              </thead>
547
              <tbody>
548
                
549
                  <tr>
550
                    <td>func</td>
551
                    <td class="code"><pre>&lt;function ModelAdminFormInstructionsMixin.add_view at 0x7f49feef11e0&gt;</pre></td>
552
                  </tr>
553
                
554
                  <tr>
555
                    <td>self</td>
556
                    <td class="code"><pre>&lt;django.db.transaction.Atomic object at 0x7f49fc1a1358&gt;</pre></td>
557
                  </tr>
558
                
559
                  <tr>
560
                    <td>kwds</td>
561
                    <td class="code"><pre>{}</pre></td>
562
                  </tr>
563
                
564
                  <tr>
565
                    <td>args</td>
566
                    <td class="code"><pre>(&lt;WSGIRequest: POST '/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None'&gt;,)</pre></td>
567
                  </tr>
568
                
569
              </tbody>
570
            </table>
571
          
572
        </li>
573
      
574
        
575
        <li class="frame django">
576
          <code>/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/contrib/admin/options.py</code> in <code>wrapper</code>
577

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

    
621
          
622
            <div class="commands">
623
                
624
                    <a href="http://td.bhp.org.bw/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None#" onclick="return varToggle(this, &#39;139955738115016&#39;)"><span>â–¶</span> Local vars</a>
625
                
626
            </div>
627
            <table class="vars" id="v139955738115016" style="display: none;">
628
              <thead>
629
                <tr>
630
                  <th>Variable</th>
631
                  <th>Value</th>
632
                </tr>
633
              </thead>
634
              <tbody>
635
                
636
                  <tr>
637
                    <td>kwargs</td>
638
                    <td class="code"><pre>{}</pre></td>
639
                  </tr>
640
                
641
                  <tr>
642
                    <td>self</td>
643
                    <td class="code"><pre>&lt;td_maternal.admin.maternal_arv_history_admin.MaternalLifetimeArvHistoryAdmin object at 0x7f4a02ebba90&gt;</pre></td>
644
                  </tr>
645
                
646
                  <tr>
647
                    <td>view</td>
648
                    <td class="code"><pre>&lt;bound method ModelAdminFormInstructionsMixin.add_view of &lt;td_maternal.admin.maternal_arv_history_admin.MaternalLifetimeArvHistoryAdmin object at 0x7f4a02ebba90&gt;&gt;</pre></td>
649
                  </tr>
650
                
651
                  <tr>
652
                    <td>args</td>
653
                    <td class="code"><pre>(&lt;WSGIRequest: POST '/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None'&gt;,)</pre></td>
654
                  </tr>
655
                
656
              </tbody>
657
            </table>
658
          
659
        </li>
660
      
661
        
662
        <li class="frame django">
663
          <code>/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/utils/decorators.py</code> in <code>_wrapped_view</code>
664

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

    
708
          
709
            <div class="commands">
710
                
711
                    <a href="http://td.bhp.org.bw/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None#" onclick="return varToggle(this, &#39;139955738115144&#39;)"><span>â–¶</span> Local vars</a>
712
                
713
            </div>
714
            <table class="vars" id="v139955738115144" style="display: none;">
715
              <thead>
716
                <tr>
717
                  <th>Variable</th>
718
                  <th>Value</th>
719
                </tr>
720
              </thead>
721
              <tbody>
722
                
723
                  <tr>
724
                    <td>result</td>
725
                    <td class="code"><pre>None</pre></td>
726
                  </tr>
727
                
728
                  <tr>
729
                    <td>args</td>
730
                    <td class="code"><pre>()</pre></td>
731
                  </tr>
732
                
733
                  <tr>
734
                    <td>kwargs</td>
735
                    <td class="code"><pre>{}</pre></td>
736
                  </tr>
737
                
738
                  <tr>
739
                    <td>view_func</td>
740
                    <td class="code"><pre>&lt;function AdminSite.admin_view.&lt;locals&gt;.inner at 0x7f49fbe57378&gt;</pre></td>
741
                  </tr>
742
                
743
                  <tr>
744
                    <td>middleware</td>
745
                    <td class="code"><pre>&lt;django.middleware.csrf.CsrfViewMiddleware object at 0x7f4a10104240&gt;</pre></td>
746
                  </tr>
747
                
748
                  <tr>
749
                    <td>request</td>
750
                    <td class="code"><pre>&lt;WSGIRequest: POST '/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None'&gt;</pre></td>
751
                  </tr>
752
                
753
              </tbody>
754
            </table>
755
          
756
        </li>
757
      
758
        
759
        <li class="frame django">
760
          <code>/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/views/decorators/cache.py</code> in <code>_wrapped_view_func</code>
761

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

    
799
          
800
            <div class="commands">
801
                
802
                    <a href="http://td.bhp.org.bw/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None#" onclick="return varToggle(this, &#39;139955738112456&#39;)"><span>â–¶</span> Local vars</a>
803
                
804
            </div>
805
            <table class="vars" id="v139955738112456" style="display: none;">
806
              <thead>
807
                <tr>
808
                  <th>Variable</th>
809
                  <th>Value</th>
810
                </tr>
811
              </thead>
812
              <tbody>
813
                
814
                  <tr>
815
                    <td>kwargs</td>
816
                    <td class="code"><pre>{}</pre></td>
817
                  </tr>
818
                
819
                  <tr>
820
                    <td>request</td>
821
                    <td class="code"><pre>&lt;WSGIRequest: POST '/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None'&gt;</pre></td>
822
                  </tr>
823
                
824
                  <tr>
825
                    <td>args</td>
826
                    <td class="code"><pre>()</pre></td>
827
                  </tr>
828
                
829
                  <tr>
830
                    <td>view_func</td>
831
                    <td class="code"><pre>&lt;function AdminSite.admin_view.&lt;locals&gt;.inner at 0x7f49fb2040d0&gt;</pre></td>
832
                  </tr>
833
                
834
              </tbody>
835
            </table>
836
          
837
        </li>
838
      
839
        
840
        <li class="frame django">
841
          <code>/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/contrib/admin/sites.py</code> in <code>inner</code>
842

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

    
886
          
887
            <div class="commands">
888
                
889
                    <a href="http://td.bhp.org.bw/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None#" onclick="return varToggle(this, &#39;139955738115208&#39;)"><span>â–¶</span> Local vars</a>
890
                
891
            </div>
892
            <table class="vars" id="v139955738115208" style="display: none;">
893
              <thead>
894
                <tr>
895
                  <th>Variable</th>
896
                  <th>Value</th>
897
                </tr>
898
              </thead>
899
              <tbody>
900
                
901
                  <tr>
902
                    <td>kwargs</td>
903
                    <td class="code"><pre>{}</pre></td>
904
                  </tr>
905
                
906
                  <tr>
907
                    <td>self</td>
908
                    <td class="code"><pre>&lt;django.contrib.admin.sites.AdminSite object at 0x7f4a101389b0&gt;</pre></td>
909
                  </tr>
910
                
911
                  <tr>
912
                    <td>view</td>
913
                    <td class="code"><pre>&lt;bound method ModelAdminFormInstructionsMixin.add_view of &lt;td_maternal.admin.maternal_arv_history_admin.MaternalLifetimeArvHistoryAdmin object at 0x7f4a02ebba90&gt;&gt;</pre></td>
914
                  </tr>
915
                
916
                  <tr>
917
                    <td>args</td>
918
                    <td class="code"><pre>()</pre></td>
919
                  </tr>
920
                
921
                  <tr>
922
                    <td>request</td>
923
                    <td class="code"><pre>&lt;WSGIRequest: POST '/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None'&gt;</pre></td>
924
                  </tr>
925
                
926
              </tbody>
927
            </table>
928
          
929
        </li>
930
      
931
        
932
        <li class="frame user">
933
          <code>/home/django/.virtualenvs/td_protocol_changes/src/edc-base/edc_base/modeladmin/mixins.py</code> in <code>add_view</code>
934

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

    
978
          
979
            <div class="commands">
980
                
981
                    <a href="http://td.bhp.org.bw/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None#" onclick="return varToggle(this, &#39;139955738113224&#39;)"><span>â–¶</span> Local vars</a>
982
                
983
            </div>
984
            <table class="vars" id="v139955738113224" style="display: none;">
985
              <thead>
986
                <tr>
987
                  <th>Variable</th>
988
                  <th>Value</th>
989
                </tr>
990
              </thead>
991
              <tbody>
992
                
993
                  <tr>
994
                    <td>extra_context</td>
995
                    <td class="code"><pre>{'additional_instructions': None,
996
 'instructions': 'Please complete the form below. Required questions are in '
997
                 'bold. When all required questions are complete click SAVE '
998
                 'or, if available, SAVE NEXT. Based on your responses, '
999
                 'additional questions may be required or some answers may '
1000
                 'need to be corrected.'}</pre></td>
1001
                  </tr>
1002
                
1003
                  <tr>
1004
                    <td>self</td>
1005
                    <td class="code"><pre>&lt;td_maternal.admin.maternal_arv_history_admin.MaternalLifetimeArvHistoryAdmin object at 0x7f4a02ebba90&gt;</pre></td>
1006
                  </tr>
1007
                
1008
                  <tr>
1009
                    <td>__class__</td>
1010
                    <td class="code"><pre>&lt;class 'edc_base.modeladmin.mixins.ModelAdminFormInstructionsMixin'&gt;</pre></td>
1011
                  </tr>
1012
                
1013
                  <tr>
1014
                    <td>form_url</td>
1015
                    <td class="code"><pre>''</pre></td>
1016
                  </tr>
1017
                
1018
                  <tr>
1019
                    <td>request</td>
1020
                    <td class="code"><pre>&lt;WSGIRequest: POST '/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None'&gt;</pre></td>
1021
                  </tr>
1022
                
1023
              </tbody>
1024
            </table>
1025
          
1026
        </li>
1027
      
1028
        
1029
        <li class="frame django">
1030
          <code>/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/contrib/admin/options.py</code> in <code>add_view</code>
1031

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

    
1075
          
1076
            <div class="commands">
1077
                
1078
                    <a href="http://td.bhp.org.bw/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None#" onclick="return varToggle(this, &#39;139955738115976&#39;)"><span>â–¶</span> Local vars</a>
1079
                
1080
            </div>
1081
            <table class="vars" id="v139955738115976" style="display: none;">
1082
              <thead>
1083
                <tr>
1084
                  <th>Variable</th>
1085
                  <th>Value</th>
1086
                </tr>
1087
              </thead>
1088
              <tbody>
1089
                
1090
                  <tr>
1091
                    <td>extra_context</td>
1092
                    <td class="code"><pre>{'additional_instructions': None,
1093
 'instructions': 'Please complete the form below. Required questions are in '
1094
                 'bold. When all required questions are complete click SAVE '
1095
                 'or, if available, SAVE NEXT. Based on your responses, '
1096
                 'additional questions may be required or some answers may '
1097
                 'need to be corrected.'}</pre></td>
1098
                  </tr>
1099
                
1100
                  <tr>
1101
                    <td>self</td>
1102
                    <td class="code"><pre>&lt;td_maternal.admin.maternal_arv_history_admin.MaternalLifetimeArvHistoryAdmin object at 0x7f4a02ebba90&gt;</pre></td>
1103
                  </tr>
1104
                
1105
                  <tr>
1106
                    <td>form_url</td>
1107
                    <td class="code"><pre>''</pre></td>
1108
                  </tr>
1109
                
1110
                  <tr>
1111
                    <td>request</td>
1112
                    <td class="code"><pre>&lt;WSGIRequest: POST '/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None'&gt;</pre></td>
1113
                  </tr>
1114
                
1115
              </tbody>
1116
            </table>
1117
          
1118
        </li>
1119
      
1120
        
1121
        <li class="frame django">
1122
          <code>/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/utils/decorators.py</code> in <code>_wrapper</code>
1123

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

    
1167
          
1168
            <div class="commands">
1169
                
1170
                    <a href="http://td.bhp.org.bw/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None#" onclick="return varToggle(this, &#39;139955738112392&#39;)"><span>â–¶</span> Local vars</a>
1171
                
1172
            </div>
1173
            <table class="vars" id="v139955738112392" style="display: none;">
1174
              <thead>
1175
                <tr>
1176
                  <th>Variable</th>
1177
                  <th>Value</th>
1178
                </tr>
1179
              </thead>
1180
              <tbody>
1181
                
1182
                  <tr>
1183
                    <td>decorate</td>
1184
                    <td class="code"><pre>&lt;function method_decorator.&lt;locals&gt;._dec.&lt;locals&gt;.decorate at 0x7f4a1012e8c8&gt;</pre></td>
1185
                  </tr>
1186
                
1187
                  <tr>
1188
                    <td>args</td>
1189
                    <td class="code"><pre>(&lt;WSGIRequest: POST '/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None'&gt;,
1190
 None,
1191
 '',
1192
 {'additional_instructions': None,
1193
  'instructions': 'Please complete the form below. Required questions are in '
1194
                  'bold. When all required questions are complete click SAVE '
1195
                  'or, if available, SAVE NEXT. Based on your responses, '
1196
                  'additional questions may be required or some answers may '
1197
                  'need to be corrected.'})</pre></td>
1198
                  </tr>
1199
                
1200
                  <tr>
1201
                    <td>kwargs</td>
1202
                    <td class="code"><pre>{}</pre></td>
1203
                  </tr>
1204
                
1205
                  <tr>
1206
                    <td>func</td>
1207
                    <td class="code"><pre>&lt;function ModelAdmin.changeform_view at 0x7f4a1012e840&gt;</pre></td>
1208
                  </tr>
1209
                
1210
                  <tr>
1211
                    <td>self</td>
1212
                    <td class="code"><pre>&lt;td_maternal.admin.maternal_arv_history_admin.MaternalLifetimeArvHistoryAdmin object at 0x7f4a02ebba90&gt;</pre></td>
1213
                  </tr>
1214
                
1215
                  <tr>
1216
                    <td>bound_func</td>
1217
                    <td class="code"><pre>&lt;function method_decorator.&lt;locals&gt;._dec.&lt;locals&gt;._wrapper.&lt;locals&gt;.bound_func at 0x7f49fbe570d0&gt;</pre></td>
1218
                  </tr>
1219
                
1220
              </tbody>
1221
            </table>
1222
          
1223
        </li>
1224
      
1225
        
1226
        <li class="frame django">
1227
          <code>/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/utils/decorators.py</code> in <code>_wrapped_view</code>
1228

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

    
1272
          
1273
            <div class="commands">
1274
                
1275
                    <a href="http://td.bhp.org.bw/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None#" onclick="return varToggle(this, &#39;139955738115912&#39;)"><span>â–¶</span> Local vars</a>
1276
                
1277
            </div>
1278
            <table class="vars" id="v139955738115912" style="display: none;">
1279
              <thead>
1280
                <tr>
1281
                  <th>Variable</th>
1282
                  <th>Value</th>
1283
                </tr>
1284
              </thead>
1285
              <tbody>
1286
                
1287
                  <tr>
1288
                    <td>result</td>
1289
                    <td class="code"><pre>None</pre></td>
1290
                  </tr>
1291
                
1292
                  <tr>
1293
                    <td>args</td>
1294
                    <td class="code"><pre>(None,
1295
 '',
1296
 {'additional_instructions': None,
1297
  'instructions': 'Please complete the form below. Required questions are in '
1298
                  'bold. When all required questions are complete click SAVE '
1299
                  'or, if available, SAVE NEXT. Based on your responses, '
1300
                  'additional questions may be required or some answers may '
1301
                  'need to be corrected.'})</pre></td>
1302
                  </tr>
1303
                
1304
                  <tr>
1305
                    <td>kwargs</td>
1306
                    <td class="code"><pre>{}</pre></td>
1307
                  </tr>
1308
                
1309
                  <tr>
1310
                    <td>view_func</td>
1311
                    <td class="code"><pre>&lt;function method_decorator.&lt;locals&gt;._dec.&lt;locals&gt;._wrapper.&lt;locals&gt;.bound_func at 0x7f49fbe576a8&gt;</pre></td>
1312
                  </tr>
1313
                
1314
                  <tr>
1315
                    <td>middleware</td>
1316
                    <td class="code"><pre>&lt;django.middleware.csrf.CsrfViewMiddleware object at 0x7f4a10104240&gt;</pre></td>
1317
                  </tr>
1318
                
1319
                  <tr>
1320
                    <td>request</td>
1321
                    <td class="code"><pre>&lt;WSGIRequest: POST '/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None'&gt;</pre></td>
1322
                  </tr>
1323
                
1324
              </tbody>
1325
            </table>
1326
          
1327
        </li>
1328
      
1329
        
1330
        <li class="frame django">
1331
          <code>/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/utils/decorators.py</code> in <code>bound_func</code>
1332

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

    
1376
          
1377
            <div class="commands">
1378
                
1379
                    <a href="http://td.bhp.org.bw/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None#" onclick="return varToggle(this, &#39;139955738112520&#39;)"><span>â–¶</span> Local vars</a>
1380
                
1381
            </div>
1382
            <table class="vars" id="v139955738112520" style="display: none;">
1383
              <thead>
1384
                <tr>
1385
                  <th>Variable</th>
1386
                  <th>Value</th>
1387
                </tr>
1388
              </thead>
1389
              <tbody>
1390
                
1391
                  <tr>
1392
                    <td>args2</td>
1393
                    <td class="code"><pre>(&lt;WSGIRequest: POST '/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None'&gt;,
1394
 None,
1395
 '',
1396
 {'additional_instructions': None,
1397
  'instructions': 'Please complete the form below. Required questions are in '
1398
                  'bold. When all required questions are complete click SAVE '
1399
                  'or, if available, SAVE NEXT. Based on your responses, '
1400
                  'additional questions may be required or some answers may '
1401
                  'need to be corrected.'})</pre></td>
1402
                  </tr>
1403
                
1404
                  <tr>
1405
                    <td>kwargs2</td>
1406
                    <td class="code"><pre>{}</pre></td>
1407
                  </tr>
1408
                
1409
                  <tr>
1410
                    <td>func</td>
1411
                    <td class="code"><pre>&lt;function ModelAdmin.changeform_view at 0x7f4a1012e840&gt;</pre></td>
1412
                  </tr>
1413
                
1414
                  <tr>
1415
                    <td>self</td>
1416
                    <td class="code"><pre>&lt;td_maternal.admin.maternal_arv_history_admin.MaternalLifetimeArvHistoryAdmin object at 0x7f4a02ebba90&gt;</pre></td>
1417
                  </tr>
1418
                
1419
              </tbody>
1420
            </table>
1421
          
1422
        </li>
1423
      
1424
        
1425
        <li class="frame user">
1426
          <code>/usr/lib/python3.5/contextlib.py</code> in <code>inner</code>
1427

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

    
1471
          
1472
            <div class="commands">
1473
                
1474
                    <a href="http://td.bhp.org.bw/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None#" onclick="return varToggle(this, &#39;139955738115464&#39;)"><span>â–¶</span> Local vars</a>
1475
                
1476
            </div>
1477
            <table class="vars" id="v139955738115464" style="display: none;">
1478
              <thead>
1479
                <tr>
1480
                  <th>Variable</th>
1481
                  <th>Value</th>
1482
                </tr>
1483
              </thead>
1484
              <tbody>
1485
                
1486
                  <tr>
1487
                    <td>func</td>
1488
                    <td class="code"><pre>&lt;function ModelAdmin.changeform_view at 0x7f4a1012e7b8&gt;</pre></td>
1489
                  </tr>
1490
                
1491
                  <tr>
1492
                    <td>self</td>
1493
                    <td class="code"><pre>&lt;django.db.transaction.Atomic object at 0x7f4a10121fd0&gt;</pre></td>
1494
                  </tr>
1495
                
1496
                  <tr>
1497
                    <td>kwds</td>
1498
                    <td class="code"><pre>{}</pre></td>
1499
                  </tr>
1500
                
1501
                  <tr>
1502
                    <td>args</td>
1503
                    <td class="code"><pre>(&lt;td_maternal.admin.maternal_arv_history_admin.MaternalLifetimeArvHistoryAdmin object at 0x7f4a02ebba90&gt;,
1504
 &lt;WSGIRequest: POST '/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None'&gt;,
1505
 None,
1506
 '',
1507
 {'additional_instructions': None,
1508
  'instructions': 'Please complete the form below. Required questions are in '
1509
                  'bold. When all required questions are complete click SAVE '
1510
                  'or, if available, SAVE NEXT. Based on your responses, '
1511
                  'additional questions may be required or some answers may '
1512
                  'need to be corrected.'})</pre></td>
1513
                  </tr>
1514
                
1515
              </tbody>
1516
            </table>
1517
          
1518
        </li>
1519
      
1520
        
1521
        <li class="frame django">
1522
          <code>/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/contrib/admin/options.py</code> in <code>changeform_view</code>
1523

    
1524
          
1525
            <div class="context" id="c139955749174280">
1526
              
1527
                <ol start="1363" class="pre-context" id="pre139955749174280" style="display: none;">
1528
                
1529
                  <li onclick="toggle(&#39;pre139955749174280&#39;, &#39;post139955749174280&#39;)"><pre>            if obj is None:</pre></li>
1530
                
1531
                  <li onclick="toggle(&#39;pre139955749174280&#39;, &#39;post139955749174280&#39;)"><pre>                raise Http404(_('%(name)s object with primary key %(key)r does not exist.') % {</pre></li>
1532
                
1533
                  <li onclick="toggle(&#39;pre139955749174280&#39;, &#39;post139955749174280&#39;)"><pre>                    'name': force_text(opts.verbose_name), 'key': escape(object_id)})</pre></li>
1534
                
1535
                  <li onclick="toggle(&#39;pre139955749174280&#39;, &#39;post139955749174280&#39;)"><pre></pre></li>
1536
                
1537
                  <li onclick="toggle(&#39;pre139955749174280&#39;, &#39;post139955749174280&#39;)"><pre>        ModelForm = self.get_form(request, obj)</pre></li>
1538
                
1539
                  <li onclick="toggle(&#39;pre139955749174280&#39;, &#39;post139955749174280&#39;)"><pre>        if request.method == 'POST':</pre></li>
1540
                
1541
                  <li onclick="toggle(&#39;pre139955749174280&#39;, &#39;post139955749174280&#39;)"><pre>            form = ModelForm(request.POST, request.FILES, instance=obj)</pre></li>
1542
                
1543
                </ol>
1544
              
1545
              <ol start="1370" class="context-line">
1546
                <li onclick="toggle(&#39;pre139955749174280&#39;, &#39;post139955749174280&#39;)"><pre>            if form.is_valid():</pre> <span>...</span></li></ol>
1547
              
1548
                <ol start="1371" class="post-context" id="post139955749174280" style="display: none;">
1549
                  
1550
                  <li onclick="toggle(&#39;pre139955749174280&#39;, &#39;post139955749174280&#39;)"><pre>                form_validated = True</pre></li>
1551
                  
1552
                  <li onclick="toggle(&#39;pre139955749174280&#39;, &#39;post139955749174280&#39;)"><pre>                new_object = self.save_form(request, form, change=not add)</pre></li>
1553
                  
1554
                  <li onclick="toggle(&#39;pre139955749174280&#39;, &#39;post139955749174280&#39;)"><pre>            else:</pre></li>
1555
                  
1556
                  <li onclick="toggle(&#39;pre139955749174280&#39;, &#39;post139955749174280&#39;)"><pre>                form_validated = False</pre></li>
1557
                  
1558
                  <li onclick="toggle(&#39;pre139955749174280&#39;, &#39;post139955749174280&#39;)"><pre>                new_object = form.instance</pre></li>
1559
                  
1560
                  <li onclick="toggle(&#39;pre139955749174280&#39;, &#39;post139955749174280&#39;)"><pre>            formsets, inline_instances = self._create_formsets(request, new_object, change=not add)</pre></li>
1561
                  
1562
              </ol>
1563
              
1564
            </div>
1565
          
1566

    
1567
          
1568
            <div class="commands">
1569
                
1570
                    <a href="http://td.bhp.org.bw/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None#" onclick="return varToggle(this, &#39;139955749174280&#39;)"><span>â–¶</span> Local vars</a>
1571
                
1572
            </div>
1573
            <table class="vars" id="v139955749174280" style="display: none;">
1574
              <thead>
1575
                <tr>
1576
                  <th>Variable</th>
1577
                  <th>Value</th>
1578
                </tr>
1579
              </thead>
1580
              <tbody>
1581
                
1582
                  <tr>
1583
                    <td>extra_context</td>
1584
                    <td class="code"><pre>{'additional_instructions': None,
1585
 'instructions': 'Please complete the form below. Required questions are in '
1586
                 'bold. When all required questions are complete click SAVE '
1587
                 'or, if available, SAVE NEXT. Based on your responses, '
1588
                 'additional questions may be required or some answers may '
1589
                 'need to be corrected.'}</pre></td>
1590
                  </tr>
1591
                
1592
                  <tr>
1593
                    <td>self</td>
1594
                    <td class="code"><pre>&lt;td_maternal.admin.maternal_arv_history_admin.MaternalLifetimeArvHistoryAdmin object at 0x7f4a02ebba90&gt;</pre></td>
1595
                  </tr>
1596
                
1597
                  <tr>
1598
                    <td>object_id</td>
1599
                    <td class="code"><pre>None</pre></td>
1600
                  </tr>
1601
                
1602
                  <tr>
1603
                    <td>ModelForm</td>
1604
                    <td class="code"><pre>&lt;class 'django.forms.widgets.MaternalLifetimeArvHistoryForm'&gt;</pre></td>
1605
                  </tr>
1606
                
1607
                  <tr>
1608
                    <td>model</td>
1609
                    <td class="code"><pre>&lt;class 'td_maternal.models.maternal_arv_history.MaternalLifetimeArvHistory'&gt;</pre></td>
1610
                  </tr>
1611
                
1612
                  <tr>
1613
                    <td>add</td>
1614
                    <td class="code"><pre>True</pre></td>
1615
                  </tr>
1616
                
1617
                  <tr>
1618
                    <td>obj</td>
1619
                    <td class="code"><pre>None</pre></td>
1620
                  </tr>
1621
                
1622
                  <tr>
1623
                    <td>form_url</td>
1624
                    <td class="code"><pre>''</pre></td>
1625
                  </tr>
1626
                
1627
                  <tr>
1628
                    <td>to_field</td>
1629
                    <td class="code"><pre>None</pre></td>
1630
                  </tr>
1631
                
1632
                  <tr>
1633
                    <td>form</td>
1634
                    <td class="code"><pre>&lt;MaternalLifetimeArvHistoryForm bound=True, valid=True, fields=(report_datetime;maternal_visit;prev_preg_azt;prev_sdnvp_labour;prev_preg_haart;haart_start_date;is_date_estimated;preg_on_haart;haart_changes;prior_preg;prior_arv;prior_arv_other)&gt;</pre></td>
1635
                  </tr>
1636
                
1637
                  <tr>
1638
                    <td>opts</td>
1639
                    <td class="code"><pre>&lt;Options for MaternalLifetimeArvHistory&gt;</pre></td>
1640
                  </tr>
1641
                
1642
                  <tr>
1643
                    <td>request</td>
1644
                    <td class="code"><pre>&lt;WSGIRequest: POST '/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None'&gt;</pre></td>
1645
                  </tr>
1646
                
1647
              </tbody>
1648
            </table>
1649
          
1650
        </li>
1651
      
1652
        
1653
        <li class="frame django">
1654
          <code>/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/forms/forms.py</code> in <code>is_valid</code>
1655

    
1656
          
1657
            <div class="context" id="c139955740137224">
1658
              
1659
                <ol start="154" class="pre-context" id="pre139955740137224" style="display: none;">
1660
                
1661
                  <li onclick="toggle(&#39;pre139955740137224&#39;, &#39;post139955740137224&#39;)"><pre>        return self._errors</pre></li>
1662
                
1663
                  <li onclick="toggle(&#39;pre139955740137224&#39;, &#39;post139955740137224&#39;)"><pre></pre></li>
1664
                
1665
                  <li onclick="toggle(&#39;pre139955740137224&#39;, &#39;post139955740137224&#39;)"><pre>    def is_valid(self):</pre></li>
1666
                
1667
                  <li onclick="toggle(&#39;pre139955740137224&#39;, &#39;post139955740137224&#39;)"><pre>        """</pre></li>
1668
                
1669
                  <li onclick="toggle(&#39;pre139955740137224&#39;, &#39;post139955740137224&#39;)"><pre>        Returns True if the form has no errors. Otherwise, False. If errors are</pre></li>
1670
                
1671
                  <li onclick="toggle(&#39;pre139955740137224&#39;, &#39;post139955740137224&#39;)"><pre>        being ignored, returns False.</pre></li>
1672
                
1673
                  <li onclick="toggle(&#39;pre139955740137224&#39;, &#39;post139955740137224&#39;)"><pre>        """</pre></li>
1674
                
1675
                </ol>
1676
              
1677
              <ol start="161" class="context-line">
1678
                <li onclick="toggle(&#39;pre139955740137224&#39;, &#39;post139955740137224&#39;)"><pre>        return self.is_bound and not self.errors</pre> <span>...</span></li></ol>
1679
              
1680
                <ol start="162" class="post-context" id="post139955740137224" style="display: none;">
1681
                  
1682
                  <li onclick="toggle(&#39;pre139955740137224&#39;, &#39;post139955740137224&#39;)"><pre></pre></li>
1683
                  
1684
                  <li onclick="toggle(&#39;pre139955740137224&#39;, &#39;post139955740137224&#39;)"><pre>    def add_prefix(self, field_name):</pre></li>
1685
                  
1686
                  <li onclick="toggle(&#39;pre139955740137224&#39;, &#39;post139955740137224&#39;)"><pre>        """</pre></li>
1687
                  
1688
                  <li onclick="toggle(&#39;pre139955740137224&#39;, &#39;post139955740137224&#39;)"><pre>        Returns the field name with a prefix appended, if this Form has a</pre></li>
1689
                  
1690
                  <li onclick="toggle(&#39;pre139955740137224&#39;, &#39;post139955740137224&#39;)"><pre>        prefix set.</pre></li>
1691
                  
1692
                  <li onclick="toggle(&#39;pre139955740137224&#39;, &#39;post139955740137224&#39;)"><pre></pre></li>
1693
                  
1694
              </ol>
1695
              
1696
            </div>
1697
          
1698

    
1699
          
1700
            <div class="commands">
1701
                
1702
                    <a href="http://td.bhp.org.bw/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None#" onclick="return varToggle(this, &#39;139955740137224&#39;)"><span>â–¶</span> Local vars</a>
1703
                
1704
            </div>
1705
            <table class="vars" id="v139955740137224" style="display: none;">
1706
              <thead>
1707
                <tr>
1708
                  <th>Variable</th>
1709
                  <th>Value</th>
1710
                </tr>
1711
              </thead>
1712
              <tbody>
1713
                
1714
                  <tr>
1715
                    <td>self</td>
1716
                    <td class="code"><pre>&lt;MaternalLifetimeArvHistoryForm bound=True, valid=True, fields=(report_datetime;maternal_visit;prev_preg_azt;prev_sdnvp_labour;prev_preg_haart;haart_start_date;is_date_estimated;preg_on_haart;haart_changes;prior_preg;prior_arv;prior_arv_other)&gt;</pre></td>
1717
                  </tr>
1718
                
1719
              </tbody>
1720
            </table>
1721
          
1722
        </li>
1723
      
1724
        
1725
        <li class="frame django">
1726
          <code>/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/forms/forms.py</code> in <code>errors</code>
1727

    
1728
          
1729
            <div class="context" id="c139955740138504">
1730
              
1731
                <ol start="146" class="pre-context" id="pre139955740138504" style="display: none;">
1732
                
1733
                  <li onclick="toggle(&#39;pre139955740138504&#39;, &#39;post139955740138504&#39;)"><pre>            self._bound_fields_cache[name] = field.get_bound_field(self, name)</pre></li>
1734
                
1735
                  <li onclick="toggle(&#39;pre139955740138504&#39;, &#39;post139955740138504&#39;)"><pre>        return self._bound_fields_cache[name]</pre></li>
1736
                
1737
                  <li onclick="toggle(&#39;pre139955740138504&#39;, &#39;post139955740138504&#39;)"><pre></pre></li>
1738
                
1739
                  <li onclick="toggle(&#39;pre139955740138504&#39;, &#39;post139955740138504&#39;)"><pre>    @property</pre></li>
1740
                
1741
                  <li onclick="toggle(&#39;pre139955740138504&#39;, &#39;post139955740138504&#39;)"><pre>    def errors(self):</pre></li>
1742
                
1743
                  <li onclick="toggle(&#39;pre139955740138504&#39;, &#39;post139955740138504&#39;)"><pre>        "Returns an ErrorDict for the data provided for the form"</pre></li>
1744
                
1745
                  <li onclick="toggle(&#39;pre139955740138504&#39;, &#39;post139955740138504&#39;)"><pre>        if self._errors is None:</pre></li>
1746
                
1747
                </ol>
1748
              
1749
              <ol start="153" class="context-line">
1750
                <li onclick="toggle(&#39;pre139955740138504&#39;, &#39;post139955740138504&#39;)"><pre>            self.full_clean()</pre> <span>...</span></li></ol>
1751
              
1752
                <ol start="154" class="post-context" id="post139955740138504" style="display: none;">
1753
                  
1754
                  <li onclick="toggle(&#39;pre139955740138504&#39;, &#39;post139955740138504&#39;)"><pre>        return self._errors</pre></li>
1755
                  
1756
                  <li onclick="toggle(&#39;pre139955740138504&#39;, &#39;post139955740138504&#39;)"><pre></pre></li>
1757
                  
1758
                  <li onclick="toggle(&#39;pre139955740138504&#39;, &#39;post139955740138504&#39;)"><pre>    def is_valid(self):</pre></li>
1759
                  
1760
                  <li onclick="toggle(&#39;pre139955740138504&#39;, &#39;post139955740138504&#39;)"><pre>        """</pre></li>
1761
                  
1762
                  <li onclick="toggle(&#39;pre139955740138504&#39;, &#39;post139955740138504&#39;)"><pre>        Returns True if the form has no errors. Otherwise, False. If errors are</pre></li>
1763
                  
1764
                  <li onclick="toggle(&#39;pre139955740138504&#39;, &#39;post139955740138504&#39;)"><pre>        being ignored, returns False.</pre></li>
1765
                  
1766
              </ol>
1767
              
1768
            </div>
1769
          
1770

    
1771
          
1772
            <div class="commands">
1773
                
1774
                    <a href="http://td.bhp.org.bw/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None#" onclick="return varToggle(this, &#39;139955740138504&#39;)"><span>â–¶</span> Local vars</a>
1775
                
1776
            </div>
1777
            <table class="vars" id="v139955740138504" style="display: none;">
1778
              <thead>
1779
                <tr>
1780
                  <th>Variable</th>
1781
                  <th>Value</th>
1782
                </tr>
1783
              </thead>
1784
              <tbody>
1785
                
1786
                  <tr>
1787
                    <td>self</td>
1788
                    <td class="code"><pre>&lt;MaternalLifetimeArvHistoryForm bound=True, valid=True, fields=(report_datetime;maternal_visit;prev_preg_azt;prev_sdnvp_labour;prev_preg_haart;haart_start_date;is_date_estimated;preg_on_haart;haart_changes;prior_preg;prior_arv;prior_arv_other)&gt;</pre></td>
1789
                  </tr>
1790
                
1791
              </tbody>
1792
            </table>
1793
          
1794
        </li>
1795
      
1796
        
1797
        <li class="frame django">
1798
          <code>/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/forms/forms.py</code> in <code>full_clean</code>
1799

    
1800
          
1801
            <div class="context" id="c139955740137160">
1802
              
1803
                <ol start="356" class="pre-context" id="pre139955740137160" style="display: none;">
1804
                
1805
                  <li onclick="toggle(&#39;pre139955740137160&#39;, &#39;post139955740137160&#39;)"><pre>        self.cleaned_data = {}</pre></li>
1806
                
1807
                  <li onclick="toggle(&#39;pre139955740137160&#39;, &#39;post139955740137160&#39;)"><pre>        # If the form is permitted to be empty, and none of the form data has</pre></li>
1808
                
1809
                  <li onclick="toggle(&#39;pre139955740137160&#39;, &#39;post139955740137160&#39;)"><pre>        # changed from the initial data, short circuit any validation.</pre></li>
1810
                
1811
                  <li onclick="toggle(&#39;pre139955740137160&#39;, &#39;post139955740137160&#39;)"><pre>        if self.empty_permitted and not self.has_changed():</pre></li>
1812
                
1813
                  <li onclick="toggle(&#39;pre139955740137160&#39;, &#39;post139955740137160&#39;)"><pre>            return</pre></li>
1814
                
1815
                  <li onclick="toggle(&#39;pre139955740137160&#39;, &#39;post139955740137160&#39;)"><pre></pre></li>
1816
                
1817
                  <li onclick="toggle(&#39;pre139955740137160&#39;, &#39;post139955740137160&#39;)"><pre>        self._clean_fields()</pre></li>
1818
                
1819
                </ol>
1820
              
1821
              <ol start="363" class="context-line">
1822
                <li onclick="toggle(&#39;pre139955740137160&#39;, &#39;post139955740137160&#39;)"><pre>        self._clean_form()</pre> <span>...</span></li></ol>
1823
              
1824
                <ol start="364" class="post-context" id="post139955740137160" style="display: none;">
1825
                  
1826
                  <li onclick="toggle(&#39;pre139955740137160&#39;, &#39;post139955740137160&#39;)"><pre>        self._post_clean()</pre></li>
1827
                  
1828
                  <li onclick="toggle(&#39;pre139955740137160&#39;, &#39;post139955740137160&#39;)"><pre></pre></li>
1829
                  
1830
                  <li onclick="toggle(&#39;pre139955740137160&#39;, &#39;post139955740137160&#39;)"><pre>    def _clean_fields(self):</pre></li>
1831
                  
1832
                  <li onclick="toggle(&#39;pre139955740137160&#39;, &#39;post139955740137160&#39;)"><pre>        for name, field in self.fields.items():</pre></li>
1833
                  
1834
                  <li onclick="toggle(&#39;pre139955740137160&#39;, &#39;post139955740137160&#39;)"><pre>            # value_from_datadict() gets the data from the data dictionaries.</pre></li>
1835
                  
1836
                  <li onclick="toggle(&#39;pre139955740137160&#39;, &#39;post139955740137160&#39;)"><pre>            # Each widget type knows how to retrieve its own data, because some</pre></li>
1837
                  
1838
              </ol>
1839
              
1840
            </div>
1841
          
1842

    
1843
          
1844
            <div class="commands">
1845
                
1846
                    <a href="http://td.bhp.org.bw/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None#" onclick="return varToggle(this, &#39;139955740137160&#39;)"><span>â–¶</span> Local vars</a>
1847
                
1848
            </div>
1849
            <table class="vars" id="v139955740137160" style="display: none;">
1850
              <thead>
1851
                <tr>
1852
                  <th>Variable</th>
1853
                  <th>Value</th>
1854
                </tr>
1855
              </thead>
1856
              <tbody>
1857
                
1858
                  <tr>
1859
                    <td>self</td>
1860
                    <td class="code"><pre>&lt;MaternalLifetimeArvHistoryForm bound=True, valid=True, fields=(report_datetime;maternal_visit;prev_preg_azt;prev_sdnvp_labour;prev_preg_haart;haart_start_date;is_date_estimated;preg_on_haart;haart_changes;prior_preg;prior_arv;prior_arv_other)&gt;</pre></td>
1861
                  </tr>
1862
                
1863
              </tbody>
1864
            </table>
1865
          
1866
        </li>
1867
      
1868
        
1869
        <li class="frame django">
1870
          <code>/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/forms/forms.py</code> in <code>_clean_form</code>
1871

    
1872
          
1873
            <div class="context" id="c139955740139400">
1874
              
1875
                <ol start="383" class="pre-context" id="pre139955740139400" style="display: none;">
1876
                
1877
                  <li onclick="toggle(&#39;pre139955740139400&#39;, &#39;post139955740139400&#39;)"><pre>                    value = getattr(self, 'clean_%s' % name)()</pre></li>
1878
                
1879
                  <li onclick="toggle(&#39;pre139955740139400&#39;, &#39;post139955740139400&#39;)"><pre>                    self.cleaned_data[name] = value</pre></li>
1880
                
1881
                  <li onclick="toggle(&#39;pre139955740139400&#39;, &#39;post139955740139400&#39;)"><pre>            except ValidationError as e:</pre></li>
1882
                
1883
                  <li onclick="toggle(&#39;pre139955740139400&#39;, &#39;post139955740139400&#39;)"><pre>                self.add_error(name, e)</pre></li>
1884
                
1885
                  <li onclick="toggle(&#39;pre139955740139400&#39;, &#39;post139955740139400&#39;)"><pre></pre></li>
1886
                
1887
                  <li onclick="toggle(&#39;pre139955740139400&#39;, &#39;post139955740139400&#39;)"><pre>    def _clean_form(self):</pre></li>
1888
                
1889
                  <li onclick="toggle(&#39;pre139955740139400&#39;, &#39;post139955740139400&#39;)"><pre>        try:</pre></li>
1890
                
1891
                </ol>
1892
              
1893
              <ol start="390" class="context-line">
1894
                <li onclick="toggle(&#39;pre139955740139400&#39;, &#39;post139955740139400&#39;)"><pre>            cleaned_data = self.clean()</pre> <span>...</span></li></ol>
1895
              
1896
                <ol start="391" class="post-context" id="post139955740139400" style="display: none;">
1897
                  
1898
                  <li onclick="toggle(&#39;pre139955740139400&#39;, &#39;post139955740139400&#39;)"><pre>        except ValidationError as e:</pre></li>
1899
                  
1900
                  <li onclick="toggle(&#39;pre139955740139400&#39;, &#39;post139955740139400&#39;)"><pre>            self.add_error(None, e)</pre></li>
1901
                  
1902
                  <li onclick="toggle(&#39;pre139955740139400&#39;, &#39;post139955740139400&#39;)"><pre>        else:</pre></li>
1903
                  
1904
                  <li onclick="toggle(&#39;pre139955740139400&#39;, &#39;post139955740139400&#39;)"><pre>            if cleaned_data is not None:</pre></li>
1905
                  
1906
                  <li onclick="toggle(&#39;pre139955740139400&#39;, &#39;post139955740139400&#39;)"><pre>                self.cleaned_data = cleaned_data</pre></li>
1907
                  
1908
                  <li onclick="toggle(&#39;pre139955740139400&#39;, &#39;post139955740139400&#39;)"><pre></pre></li>
1909
                  
1910
              </ol>
1911
              
1912
            </div>
1913
          
1914

    
1915
          
1916
            <div class="commands">
1917
                
1918
                    <a href="http://td.bhp.org.bw/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None#" onclick="return varToggle(this, &#39;139955740139400&#39;)"><span>â–¶</span> Local vars</a>
1919
                
1920
            </div>
1921
            <table class="vars" id="v139955740139400" style="display: none;">
1922
              <thead>
1923
                <tr>
1924
                  <th>Variable</th>
1925
                  <th>Value</th>
1926
                </tr>
1927
              </thead>
1928
              <tbody>
1929
                
1930
                  <tr>
1931
                    <td>self</td>
1932
                    <td class="code"><pre>&lt;MaternalLifetimeArvHistoryForm bound=True, valid=True, fields=(report_datetime;maternal_visit;prev_preg_azt;prev_sdnvp_labour;prev_preg_haart;haart_start_date;is_date_estimated;preg_on_haart;haart_changes;prior_preg;prior_arv;prior_arv_other)&gt;</pre></td>
1933
                  </tr>
1934
                
1935
              </tbody>
1936
            </table>
1937
          
1938
        </li>
1939
      
1940
        
1941
        <li class="frame user">
1942
          <code>/home/django/source/tshilo-dikotla/td_maternal/forms/maternal_arv_history_form.py</code> in <code>clean</code>
1943

    
1944
          
1945
            <div class="context" id="c139955740136904">
1946
              
1947
                <ol start="9" class="pre-context" id="pre139955740136904" style="display: none;">
1948
                
1949
                  <li onclick="toggle(&#39;pre139955740136904&#39;, &#39;post139955740136904&#39;)"><pre></pre></li>
1950
                
1951
                  <li onclick="toggle(&#39;pre139955740136904&#39;, &#39;post139955740136904&#39;)"><pre></pre></li>
1952
                
1953
                  <li onclick="toggle(&#39;pre139955740136904&#39;, &#39;post139955740136904&#39;)"><pre>class MaternalLifetimeArvHistoryForm(BaseMaternalModelForm):</pre></li>
1954
                
1955
                  <li onclick="toggle(&#39;pre139955740136904&#39;, &#39;post139955740136904&#39;)"><pre></pre></li>
1956
                
1957
                  <li onclick="toggle(&#39;pre139955740136904&#39;, &#39;post139955740136904&#39;)"><pre>    def clean(self):</pre></li>
1958
                
1959
                  <li onclick="toggle(&#39;pre139955740136904&#39;, &#39;post139955740136904&#39;)"><pre>        cleaned_data = super(MaternalLifetimeArvHistoryForm, self).clean()</pre></li>
1960
                
1961
                  <li onclick="toggle(&#39;pre139955740136904&#39;, &#39;post139955740136904&#39;)"><pre>        self.validate_if_not_on_haart()</pre></li>
1962
                
1963
                </ol>
1964
              
1965
              <ol start="16" class="context-line">
1966
                <li onclick="toggle(&#39;pre139955740136904&#39;, &#39;post139955740136904&#39;)"><pre>        self.validate_haart_start_date()</pre> <span>...</span></li></ol>
1967
              
1968
                <ol start="17" class="post-context" id="post139955740136904" style="display: none;">
1969
                  
1970
                  <li onclick="toggle(&#39;pre139955740136904&#39;, &#39;post139955740136904&#39;)"><pre>        self.validate_prev_preg()</pre></li>
1971
                  
1972
                  <li onclick="toggle(&#39;pre139955740136904&#39;, &#39;post139955740136904&#39;)"><pre>        return cleaned_data</pre></li>
1973
                  
1974
                  <li onclick="toggle(&#39;pre139955740136904&#39;, &#39;post139955740136904&#39;)"><pre></pre></li>
1975
                  
1976
                  <li onclick="toggle(&#39;pre139955740136904&#39;, &#39;post139955740136904&#39;)"><pre>    def validate_if_not_on_haart(self):</pre></li>
1977
                  
1978
                  <li onclick="toggle(&#39;pre139955740136904&#39;, &#39;post139955740136904&#39;)"><pre>        """Confirms that HAART is not continuous or stopped if reported as not on haart."""</pre></li>
1979
                  
1980
                  <li onclick="toggle(&#39;pre139955740136904&#39;, &#39;post139955740136904&#39;)"><pre>        cleaned_data = self.cleaned_data</pre></li>
1981
                  
1982
              </ol>
1983
              
1984
            </div>
1985
          
1986

    
1987
          
1988
            <div class="commands">
1989
                
1990
                    <a href="http://td.bhp.org.bw/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None#" onclick="return varToggle(this, &#39;139955740136904&#39;)"><span>â–¶</span> Local vars</a>
1991
                
1992
            </div>
1993
            <table class="vars" id="v139955740136904" style="display: none;">
1994
              <thead>
1995
                <tr>
1996
                  <th>Variable</th>
1997
                  <th>Value</th>
1998
                </tr>
1999
              </thead>
2000
              <tbody>
2001
                
2002
                  <tr>
2003
                    <td>self</td>
2004
                    <td class="code"><pre>&lt;MaternalLifetimeArvHistoryForm bound=True, valid=True, fields=(report_datetime;maternal_visit;prev_preg_azt;prev_sdnvp_labour;prev_preg_haart;haart_start_date;is_date_estimated;preg_on_haart;haart_changes;prior_preg;prior_arv;prior_arv_other)&gt;</pre></td>
2005
                  </tr>
2006
                
2007
                  <tr>
2008
                    <td>__class__</td>
2009
                    <td class="code"><pre>&lt;class 'td_maternal.forms.maternal_arv_history_form.MaternalLifetimeArvHistoryForm'&gt;</pre></td>
2010
                  </tr>
2011
                
2012
                  <tr>
2013
                    <td>cleaned_data</td>
2014
                    <td class="code"><pre>{'haart_changes': 0,
2015
 'haart_start_date': datetime.date(2015, 12, 16),
2016
 'is_date_estimated': '-',
2017
 'maternal_visit': &lt;MaternalVisit: 085-40990403-1 1000M&gt;,
2018
 'preg_on_haart': 'Yes',
2019
 'prev_preg_azt': 'Yes',
2020
 'prev_preg_haart': 'Yes',
2021
 'prev_sdnvp_labour': 'Yes',
2022
 'prior_arv': [&lt;PriorArv: Atripla&gt;],
2023
 'prior_arv_other': '',
2024
 'prior_preg': 'continuous',
2025
 'report_datetime': datetime.datetime(2018, 6, 29, 15, 35, 22)}</pre></td>
2026
                  </tr>
2027
                
2028
              </tbody>
2029
            </table>
2030
          
2031
        </li>
2032
      
2033
        
2034
        <li class="frame user">
2035
          <code>/home/django/source/tshilo-dikotla/td_maternal/forms/maternal_arv_history_form.py</code> in <code>validate_haart_start_date</code>
2036

    
2037
          
2038
            <div class="context" id="c139955740137736">
2039
              
2040
                <ol start="43" class="pre-context" id="pre139955740137736" style="display: none;">
2041
                
2042
                  <li onclick="toggle(&#39;pre139955740137736&#39;, &#39;post139955740137736&#39;)"><pre>        if cleaned_data.get('prev_preg_haart') == YES:</pre></li>
2043
                
2044
                  <li onclick="toggle(&#39;pre139955740137736&#39;, &#39;post139955740137736&#39;)"><pre>            if cleaned_data.get('haart_start_date'):</pre></li>
2045
                
2046
                  <li onclick="toggle(&#39;pre139955740137736&#39;, &#39;post139955740137736&#39;)"><pre>                if not cleaned_data.get('is_date_estimated'):</pre></li>
2047
                
2048
                  <li onclick="toggle(&#39;pre139955740137736&#39;, &#39;post139955740137736&#39;)"><pre>                    raise forms.ValidationError('Please answer: Is the subject\'s date of triple antiretrovirals estimated?')</pre></li>
2049
                
2050
                  <li onclick="toggle(&#39;pre139955740137736&#39;, &#39;post139955740137736&#39;)"><pre>                try:</pre></li>
2051
                
2052
                  <li onclick="toggle(&#39;pre139955740137736&#39;, &#39;post139955740137736&#39;)"><pre>                    maternal_consent = MaternalConsent.objects.get(</pre></li>
2053
                
2054
                  <li onclick="toggle(&#39;pre139955740137736&#39;, &#39;post139955740137736&#39;)"><pre>                        subject_identifier=cleaned_data.get(</pre></li>
2055
                
2056
                </ol>
2057
              
2058
              <ol start="50" class="context-line">
2059
                <li onclick="toggle(&#39;pre139955740137736&#39;, &#39;post139955740137736&#39;)"><pre>                            'maternal_visit').appointment.registered_subject.subject_identifier)</pre> <span>...</span></li></ol>
2060
              
2061
                <ol start="51" class="post-context" id="post139955740137736" style="display: none;">
2062
                  
2063
                  <li onclick="toggle(&#39;pre139955740137736&#39;, &#39;post139955740137736&#39;)"><pre>                    if report_datetime &lt; maternal_consent.consent_datetime:</pre></li>
2064
                  
2065
                  <li onclick="toggle(&#39;pre139955740137736&#39;, &#39;post139955740137736&#39;)"><pre>                        raise forms.ValidationError("Report datetime CANNOT be before consent datetime")</pre></li>
2066
                  
2067
                  <li onclick="toggle(&#39;pre139955740137736&#39;, &#39;post139955740137736&#39;)"><pre>                    if haart_start_date &lt; maternal_consent.dob:</pre></li>
2068
                  
2069
                  <li onclick="toggle(&#39;pre139955740137736&#39;, &#39;post139955740137736&#39;)"><pre>                        raise forms.ValidationError("Date of triple ARVs first started CANNOT be before DOB.")</pre></li>
2070
                  
2071
                  <li onclick="toggle(&#39;pre139955740137736&#39;, &#39;post139955740137736&#39;)"><pre>                except MaternalConsent.DoesNotExist:</pre></li>
2072
                  
2073
                  <li onclick="toggle(&#39;pre139955740137736&#39;, &#39;post139955740137736&#39;)"><pre>                    raise forms.ValidationError('Maternal Consent does not exist.')</pre></li>
2074
                  
2075
              </ol>
2076
              
2077
            </div>
2078
          
2079

    
2080
          
2081
            <div class="commands">
2082
                
2083
                    <a href="http://td.bhp.org.bw/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None#" onclick="return varToggle(this, &#39;139955740137736&#39;)"><span>â–¶</span> Local vars</a>
2084
                
2085
            </div>
2086
            <table class="vars" id="v139955740137736" style="display: none;">
2087
              <thead>
2088
                <tr>
2089
                  <th>Variable</th>
2090
                  <th>Value</th>
2091
                </tr>
2092
              </thead>
2093
              <tbody>
2094
                
2095
                  <tr>
2096
                    <td>haart_start_date</td>
2097
                    <td class="code"><pre>datetime.date(2015, 12, 16)</pre></td>
2098
                  </tr>
2099
                
2100
                  <tr>
2101
                    <td>report_datetime</td>
2102
                    <td class="code"><pre>datetime.datetime(2018, 6, 29, 15, 35, 22)</pre></td>
2103
                  </tr>
2104
                
2105
                  <tr>
2106
                    <td>cleaned_data</td>
2107
                    <td class="code"><pre>{'haart_changes': 0,
2108
 'haart_start_date': datetime.date(2015, 12, 16),
2109
 'is_date_estimated': '-',
2110
 'maternal_visit': &lt;MaternalVisit: 085-40990403-1 1000M&gt;,
2111
 'preg_on_haart': 'Yes',
2112
 'prev_preg_azt': 'Yes',
2113
 'prev_preg_haart': 'Yes',
2114
 'prev_sdnvp_labour': 'Yes',
2115
 'prior_arv': [&lt;PriorArv: Atripla&gt;],
2116
 'prior_arv_other': '',
2117
 'prior_preg': 'continuous',
2118
 'report_datetime': datetime.datetime(2018, 6, 29, 15, 35, 22)}</pre></td>
2119
                  </tr>
2120
                
2121
                  <tr>
2122
                    <td>self</td>
2123
                    <td class="code"><pre>&lt;MaternalLifetimeArvHistoryForm bound=True, valid=True, fields=(report_datetime;maternal_visit;prev_preg_azt;prev_sdnvp_labour;prev_preg_haart;haart_start_date;is_date_estimated;preg_on_haart;haart_changes;prior_preg;prior_arv;prior_arv_other)&gt;</pre></td>
2124
                  </tr>
2125
                
2126
              </tbody>
2127
            </table>
2128
          
2129
        </li>
2130
      
2131
        
2132
        <li class="frame django">
2133
          <code>/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/db/models/manager.py</code> in <code>manager_method</code>
2134

    
2135
          
2136
            <div class="context" id="c139955116248520">
2137
              
2138
                <ol start="115" class="pre-context" id="pre139955116248520" style="display: none;">
2139
                
2140
                  <li onclick="toggle(&#39;pre139955116248520&#39;, &#39;post139955116248520&#39;)"><pre>    def check(self, **kwargs):</pre></li>
2141
                
2142
                  <li onclick="toggle(&#39;pre139955116248520&#39;, &#39;post139955116248520&#39;)"><pre>        return []</pre></li>
2143
                
2144
                  <li onclick="toggle(&#39;pre139955116248520&#39;, &#39;post139955116248520&#39;)"><pre></pre></li>
2145
                
2146
                  <li onclick="toggle(&#39;pre139955116248520&#39;, &#39;post139955116248520&#39;)"><pre>    @classmethod</pre></li>
2147
                
2148
                  <li onclick="toggle(&#39;pre139955116248520&#39;, &#39;post139955116248520&#39;)"><pre>    def _get_queryset_methods(cls, queryset_class):</pre></li>
2149
                
2150
                  <li onclick="toggle(&#39;pre139955116248520&#39;, &#39;post139955116248520&#39;)"><pre>        def create_method(name, method):</pre></li>
2151
                
2152
                  <li onclick="toggle(&#39;pre139955116248520&#39;, &#39;post139955116248520&#39;)"><pre>            def manager_method(self, *args, **kwargs):</pre></li>
2153
                
2154
                </ol>
2155
              
2156
              <ol start="122" class="context-line">
2157
                <li onclick="toggle(&#39;pre139955116248520&#39;, &#39;post139955116248520&#39;)"><pre>                return getattr(self.get_queryset(), name)(*args, **kwargs)</pre> <span>...</span></li></ol>
2158
              
2159
                <ol start="123" class="post-context" id="post139955116248520" style="display: none;">
2160
                  
2161
                  <li onclick="toggle(&#39;pre139955116248520&#39;, &#39;post139955116248520&#39;)"><pre>            manager_method.__name__ = method.__name__</pre></li>
2162
                  
2163
                  <li onclick="toggle(&#39;pre139955116248520&#39;, &#39;post139955116248520&#39;)"><pre>            manager_method.__doc__ = method.__doc__</pre></li>
2164
                  
2165
                  <li onclick="toggle(&#39;pre139955116248520&#39;, &#39;post139955116248520&#39;)"><pre>            return manager_method</pre></li>
2166
                  
2167
                  <li onclick="toggle(&#39;pre139955116248520&#39;, &#39;post139955116248520&#39;)"><pre></pre></li>
2168
                  
2169
                  <li onclick="toggle(&#39;pre139955116248520&#39;, &#39;post139955116248520&#39;)"><pre>        new_methods = {}</pre></li>
2170
                  
2171
                  <li onclick="toggle(&#39;pre139955116248520&#39;, &#39;post139955116248520&#39;)"><pre>        # Refs http://bugs.python.org/issue1785.</pre></li>
2172
                  
2173
              </ol>
2174
              
2175
            </div>
2176
          
2177

    
2178
          
2179
            <div class="commands">
2180
                
2181
                    <a href="http://td.bhp.org.bw/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None#" onclick="return varToggle(this, &#39;139955116248520&#39;)"><span>â–¶</span> Local vars</a>
2182
                
2183
            </div>
2184
            <table class="vars" id="v139955116248520" style="display: none;">
2185
              <thead>
2186
                <tr>
2187
                  <th>Variable</th>
2188
                  <th>Value</th>
2189
                </tr>
2190
              </thead>
2191
              <tbody>
2192
                
2193
                  <tr>
2194
                    <td>kwargs</td>
2195
                    <td class="code"><pre>{'subject_identifier': '085-40990403-1'}</pre></td>
2196
                  </tr>
2197
                
2198
                  <tr>
2199
                    <td>self</td>
2200
                    <td class="code"><pre>&lt;edc_consent.models.base_consent.ObjectConsentManager object at 0x7f4a0d0ef5c0&gt;</pre></td>
2201
                  </tr>
2202
                
2203
                  <tr>
2204
                    <td>args</td>
2205
                    <td class="code"><pre>()</pre></td>
2206
                  </tr>
2207
                
2208
                  <tr>
2209
                    <td>name</td>
2210
                    <td class="code"><pre>'get'</pre></td>
2211
                  </tr>
2212
                
2213
              </tbody>
2214
            </table>
2215
          
2216
        </li>
2217
      
2218
        
2219
        <li class="frame django">
2220
          <code>/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/db/models/query.py</code> in <code>get</code>
2221

    
2222
          
2223
            <div class="context" id="c139955738669000">
2224
              
2225
                <ol start="384" class="pre-context" id="pre139955738669000" style="display: none;">
2226
                
2227
                  <li onclick="toggle(&#39;pre139955738669000&#39;, &#39;post139955738669000&#39;)"><pre>        if not num:</pre></li>
2228
                
2229
                  <li onclick="toggle(&#39;pre139955738669000&#39;, &#39;post139955738669000&#39;)"><pre>            raise self.model.DoesNotExist(</pre></li>
2230
                
2231
                  <li onclick="toggle(&#39;pre139955738669000&#39;, &#39;post139955738669000&#39;)"><pre>                "%s matching query does not exist." %</pre></li>
2232
                
2233
                  <li onclick="toggle(&#39;pre139955738669000&#39;, &#39;post139955738669000&#39;)"><pre>                self.model._meta.object_name</pre></li>
2234
                
2235
                  <li onclick="toggle(&#39;pre139955738669000&#39;, &#39;post139955738669000&#39;)"><pre>            )</pre></li>
2236
                
2237
                  <li onclick="toggle(&#39;pre139955738669000&#39;, &#39;post139955738669000&#39;)"><pre>        raise self.model.MultipleObjectsReturned(</pre></li>
2238
                
2239
                  <li onclick="toggle(&#39;pre139955738669000&#39;, &#39;post139955738669000&#39;)"><pre>            "get() returned more than one %s -- it returned %s!" %</pre></li>
2240
                
2241
                </ol>
2242
              
2243
              <ol start="391" class="context-line">
2244
                <li onclick="toggle(&#39;pre139955738669000&#39;, &#39;post139955738669000&#39;)"><pre>            (self.model._meta.object_name, num)</pre> <span>...</span></li></ol>
2245
              
2246
                <ol start="392" class="post-context" id="post139955738669000" style="display: none;">
2247
                  
2248
                  <li onclick="toggle(&#39;pre139955738669000&#39;, &#39;post139955738669000&#39;)"><pre>        )</pre></li>
2249
                  
2250
                  <li onclick="toggle(&#39;pre139955738669000&#39;, &#39;post139955738669000&#39;)"><pre></pre></li>
2251
                  
2252
                  <li onclick="toggle(&#39;pre139955738669000&#39;, &#39;post139955738669000&#39;)"><pre>    def create(self, **kwargs):</pre></li>
2253
                  
2254
                  <li onclick="toggle(&#39;pre139955738669000&#39;, &#39;post139955738669000&#39;)"><pre>        """</pre></li>
2255
                  
2256
                  <li onclick="toggle(&#39;pre139955738669000&#39;, &#39;post139955738669000&#39;)"><pre>        Creates a new object with the given kwargs, saving it to the database</pre></li>
2257
                  
2258
                  <li onclick="toggle(&#39;pre139955738669000&#39;, &#39;post139955738669000&#39;)"><pre>        and returning the created object.</pre></li>
2259
                  
2260
              </ol>
2261
              
2262
            </div>
2263
          
2264

    
2265
          
2266
            <div class="commands">
2267
                
2268
                    <a href="http://td.bhp.org.bw/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None#" onclick="return varToggle(this, &#39;139955738669000&#39;)"><span>â–¶</span> Local vars</a>
2269
                
2270
            </div>
2271
            <table class="vars" id="v139955738669000" style="display: none;">
2272
              <thead>
2273
                <tr>
2274
                  <th>Variable</th>
2275
                  <th>Value</th>
2276
                </tr>
2277
              </thead>
2278
              <tbody>
2279
                
2280
                  <tr>
2281
                    <td>num</td>
2282
                    <td class="code"><pre>2</pre></td>
2283
                  </tr>
2284
                
2285
                  <tr>
2286
                    <td>self</td>
2287
                    <td class="code"><pre>[&lt;MaternalConsent: 085-40990471-6 SHATHISANI LORATO KANISO (SLK)&gt;, &lt;MaternalConsent: 085-40990086-6 MORWESI PEARLMA KHANDALA (MPK)&gt;, &lt;MaternalConsent: 085-40990205-6 BONANG KGOSIPULA (BK)&gt;, &lt;MaternalConsent: 085-40990242-1 AMOGELANG MOTSHABI (AM)&gt;, &lt;MaternalConsent: 085-40990451-0 MASEGO LIZZY KGAKALO (MLK)&gt;, &lt;MaternalConsent: 085-40990442-5 TEBO KEFITLHILE (TK)&gt;, &lt;MaternalConsent: 085-40990378-4 SEJELO MAVIS MIMI GAOSIIWE (SMG)&gt;, &lt;MaternalConsent: 085-40990306-2 OBONWE MODISE (OM)&gt;, &lt;MaternalConsent: 085-40990023-6 KEOLEBOGILE KGOSIETSILE (KK)&gt;, &lt;MaternalConsent: 085-40990133-4 SEKGABISO MODISE (SM)&gt;, &lt;MaternalConsent: 085-40990291-1 SEHUTSEGILE MOKENIYWA (SM)&gt;, &lt;MaternalConsent: 085-40990241-0 KEITUMETSE SARANYANE (KS)&gt;, &lt;MaternalConsent: 085-40990064-5 GOITSEONE MOKOKWE (GM)&gt;, &lt;MaternalConsent: 085-40990428-5 CONSTANCE G MAIFALA (CGM)&gt;, &lt;MaternalConsent: 085-40990456-5 LESEDI MORULANE (LM)&gt;, &lt;MaternalConsent: 085-40990184-6 KEMMONYE MOKALAKE (KM)&gt;, &lt;MaternalConsent: 085-40990255-0 NANCY KGOMOTSO NGWENYA (NKN)&gt;, &lt;MaternalConsent: 085-40990021-4 MAVIS GOEMEMANG (MG)&gt;, &lt;MaternalConsent: 085-40990386-5 ANNA SOMOLEKAE (AS)&gt;, &lt;MaternalConsent: 085-40990236-2 LETSILE AGATHA SEPHAMBE (LAS)&gt;, '...(remaining elements truncated)...']</pre></td>
2288
                  </tr>
2289
                
2290
                  <tr>
2291
                    <td>clone</td>
2292
                    <td class="code"><pre>[&lt;MaternalConsent: 085-40990403-1 TSHEGOFATSO DIEME (TD)&gt;, &lt;MaternalConsent: 085-40990403-1 TSHEGOFATSO DIEME (TD)&gt;]</pre></td>
2293
                  </tr>
2294
                
2295
                  <tr>
2296
                    <td>args</td>
2297
                    <td class="code"><pre>()</pre></td>
2298
                  </tr>
2299
                
2300
                  <tr>
2301
                    <td>kwargs</td>
2302
                    <td class="code"><pre>{'subject_identifier': '085-40990403-1'}</pre></td>
2303
                  </tr>
2304
                
2305
              </tbody>
2306
            </table>
2307
          
2308
        </li>
2309
      
2310
    </ul>
2311
  </div>
2312
  
2313
  <form action="http://dpaste.com/" name="pasteform" id="pasteform" method="post">
2314

    
2315
  <div id="pastebinTraceback" class="pastebin" style="display: none;">
2316
    <input type="hidden" name="language" value="PythonConsole">
2317
    <input type="hidden" name="title" value="MultipleObjectsReturned at /admin/td_maternal/maternallifetimearvhistory/add/">
2318
    <input type="hidden" name="source" value="Django Dpaste Agent">
2319
    <input type="hidden" name="poster" value="Django">
2320
    <textarea name="content" id="traceback_area" cols="140" rows="25">Environment:
2321

    
2322

    
2323
Request Method: POST
2324
Request URL: http://127.0.0.1:9000/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None
2325

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

    
2392

    
2393

    
2394
Traceback:
2395

    
2396
File "/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/core/handlers/base.py" in get_response
2397
  149.                     response = self.process_exception_by_middleware(e, request)
2398

    
2399
File "/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/core/handlers/base.py" in get_response
2400
  147.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
2401

    
2402
File "/usr/lib/python3.5/contextlib.py" in inner
2403
  30.                 return func(*args, **kwds)
2404

    
2405
File "/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/contrib/admin/options.py" in wrapper
2406
  541.                 return self.admin_site.admin_view(view)(*args, **kwargs)
2407

    
2408
File "/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/utils/decorators.py" in _wrapped_view
2409
  149.                     response = view_func(request, *args, **kwargs)
2410

    
2411
File "/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
2412
  57.         response = view_func(request, *args, **kwargs)
2413

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

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

    
2420
File "/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/contrib/admin/options.py" in add_view
2421
  1437.         return self.changeform_view(request, None, form_url, extra_context)
2422

    
2423
File "/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/utils/decorators.py" in _wrapper
2424
  67.             return bound_func(*args, **kwargs)
2425

    
2426
File "/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/utils/decorators.py" in _wrapped_view
2427
  149.                     response = view_func(request, *args, **kwargs)
2428

    
2429
File "/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/utils/decorators.py" in bound_func
2430
  63.                 return func.__get__(self, type(self))(*args2, **kwargs2)
2431

    
2432
File "/usr/lib/python3.5/contextlib.py" in inner
2433
  30.                 return func(*args, **kwds)
2434

    
2435
File "/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/contrib/admin/options.py" in changeform_view
2436
  1370.             if form.is_valid():
2437

    
2438
File "/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/forms/forms.py" in is_valid
2439
  161.         return self.is_bound and not self.errors
2440

    
2441
File "/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/forms/forms.py" in errors
2442
  153.             self.full_clean()
2443

    
2444
File "/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/forms/forms.py" in full_clean
2445
  363.         self._clean_form()
2446

    
2447
File "/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/forms/forms.py" in _clean_form
2448
  390.             cleaned_data = self.clean()
2449

    
2450
File "/home/django/source/tshilo-dikotla/td_maternal/forms/maternal_arv_history_form.py" in clean
2451
  16.         self.validate_haart_start_date()
2452

    
2453
File "/home/django/source/tshilo-dikotla/td_maternal/forms/maternal_arv_history_form.py" in validate_haart_start_date
2454
  50.                             'maternal_visit').appointment.registered_subject.subject_identifier)
2455

    
2456
File "/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/db/models/manager.py" in manager_method
2457
  122.                 return getattr(self.get_queryset(), name)(*args, **kwargs)
2458

    
2459
File "/home/django/.virtualenvs/td_protocol_changes/lib/python3.5/site-packages/django/db/models/query.py" in get
2460
  391.             (self.model._meta.object_name, num)
2461

    
2462
Exception Type: MultipleObjectsReturned at /admin/td_maternal/maternallifetimearvhistory/add/
2463
Exception Value: get() returned more than one MaternalConsent -- it returned 2!
2464
</textarea>
2465
  <br><br>
2466
  <input type="submit" value="Share this traceback on a public website">
2467
  </div>
2468
</form>
2469
</div>
2470

    
2471

    
2472

    
2473
<div id="requestinfo">
2474
  <h2>Request information</h2>
2475

    
2476

    
2477
  <h3 id="get-info">GET</h3>
2478
  
2479
    <table class="req">
2480
      <thead>
2481
        <tr>
2482
          <th>Variable</th>
2483
          <th>Value</th>
2484
        </tr>
2485
      </thead>
2486
      <tbody>
2487
        
2488
          <tr>
2489
            <td>dashboard_model</td>
2490
            <td class="code"><pre>'visit'</pre></td>
2491
          </tr>
2492
        
2493
          <tr>
2494
            <td>visit_attr</td>
2495
            <td class="code"><pre>'maternal_visit'</pre></td>
2496
          </tr>
2497
        
2498
          <tr>
2499
            <td>registered_subject</td>
2500
            <td class="code"><pre>'db054754-729e-472d-bc2b-5ab2f1790c93'</pre></td>
2501
          </tr>
2502
        
2503
          <tr>
2504
            <td>dashboard_type</td>
2505
            <td class="code"><pre>'maternal'</pre></td>
2506
          </tr>
2507
        
2508
          <tr>
2509
            <td>show</td>
2510
            <td class="code"><pre>'forms'</pre></td>
2511
          </tr>
2512
        
2513
          <tr>
2514
            <td>group_title</td>
2515
            <td class="code"><pre>'None'</pre></td>
2516
          </tr>
2517
        
2518
          <tr>
2519
            <td>next</td>
2520
            <td class="code"><pre>'subject_dashboard_url'</pre></td>
2521
          </tr>
2522
        
2523
          <tr>
2524
            <td>dashboard_id</td>
2525
            <td class="code"><pre>'9ba73c2e-5294-408b-948f-620be136515f'</pre></td>
2526
          </tr>
2527
        
2528
          <tr>
2529
            <td>maternal_visit</td>
2530
            <td class="code"><pre>'9ba73c2e-5294-408b-948f-620be136515f'</pre></td>
2531
          </tr>
2532
        
2533
          <tr>
2534
            <td>entry_order</td>
2535
            <td class="code"><pre>'60'</pre></td>
2536
          </tr>
2537
        
2538
      </tbody>
2539
    </table>
2540
  
2541

    
2542
  <h3 id="post-info">POST</h3>
2543
  
2544
    <table class="req">
2545
      <thead>
2546
        <tr>
2547
          <th>Variable</th>
2548
          <th>Value</th>
2549
        </tr>
2550
      </thead>
2551
      <tbody>
2552
        
2553
          <tr>
2554
            <td>prior_arv</td>
2555
            <td class="code"><pre>'8199d106-8860-40b2-b6ac-99d5e800e443'</pre></td>
2556
          </tr>
2557
        
2558
          <tr>
2559
            <td>_save</td>
2560
            <td class="code"><pre>'Save'</pre></td>
2561
          </tr>
2562
        
2563
          <tr>
2564
            <td>report_datetime_0</td>
2565
            <td class="code"><pre>'2018-06-29'</pre></td>
2566
          </tr>
2567
        
2568
          <tr>
2569
            <td>prev_sdnvp_labour</td>
2570
            <td class="code"><pre>'Yes'</pre></td>
2571
          </tr>
2572
        
2573
          <tr>
2574
            <td>csrfmiddlewaretoken</td>
2575
            <td class="code"><pre>'8cMv4kA7BmEIl8tz0QqvboW7uD6mC5l8'</pre></td>
2576
          </tr>
2577
        
2578
          <tr>
2579
            <td>report_datetime_1</td>
2580
            <td class="code"><pre>'15:35:22'</pre></td>
2581
          </tr>
2582
        
2583
          <tr>
2584
            <td>prior_preg</td>
2585
            <td class="code"><pre>'continuous'</pre></td>
2586
          </tr>
2587
        
2588
          <tr>
2589
            <td>haart_changes</td>
2590
            <td class="code"><pre>'0'</pre></td>
2591
          </tr>
2592
        
2593
          <tr>
2594
            <td>haart_start_date</td>
2595
            <td class="code"><pre>'2015-12-16'</pre></td>
2596
          </tr>
2597
        
2598
          <tr>
2599
            <td>prev_preg_azt</td>
2600
            <td class="code"><pre>'Yes'</pre></td>
2601
          </tr>
2602
        
2603
          <tr>
2604
            <td>initial-report_datetime_1</td>
2605
            <td class="code"><pre>'15:35:22'</pre></td>
2606
          </tr>
2607
        
2608
          <tr>
2609
            <td>initial-report_datetime_0</td>
2610
            <td class="code"><pre>'2018-06-29'</pre></td>
2611
          </tr>
2612
        
2613
          <tr>
2614
            <td>prior_arv_other</td>
2615
            <td class="code"><pre>''</pre></td>
2616
          </tr>
2617
        
2618
          <tr>
2619
            <td>prev_preg_haart</td>
2620
            <td class="code"><pre>'Yes'</pre></td>
2621
          </tr>
2622
        
2623
          <tr>
2624
            <td>maternal_visit</td>
2625
            <td class="code"><pre>'9ba73c2e-5294-408b-948f-620be136515f'</pre></td>
2626
          </tr>
2627
        
2628
          <tr>
2629
            <td>preg_on_haart</td>
2630
            <td class="code"><pre>'Yes'</pre></td>
2631
          </tr>
2632
        
2633
          <tr>
2634
            <td>is_date_estimated</td>
2635
            <td class="code"><pre>'-'</pre></td>
2636
          </tr>
2637
        
2638
      </tbody>
2639
    </table>
2640
  
2641
  <h3 id="files-info">FILES</h3>
2642
  
2643
    <p>No FILES data</p>
2644
  
2645

    
2646

    
2647
  <h3 id="cookie-info">COOKIES</h3>
2648
  
2649
    <table class="req">
2650
      <thead>
2651
        <tr>
2652
          <th>Variable</th>
2653
          <th>Value</th>
2654
        </tr>
2655
      </thead>
2656
      <tbody>
2657
        
2658
          <tr>
2659
            <td>csrftoken</td>
2660
            <td class="code"><pre>'8cMv4kA7BmEIl8tz0QqvboW7uD6mC5l8'</pre></td>
2661
          </tr>
2662
        
2663
          <tr>
2664
            <td>sessionid</td>
2665
            <td class="code"><pre>'15mv9oa24rdhf0e4tstwlgx2fzirg3t4'</pre></td>
2666
          </tr>
2667
        
2668
          <tr>
2669
            <td>org.cups.sid</td>
2670
            <td class="code"><pre>'761eca7cb0803673fe77dcb52eecd338'</pre></td>
2671
          </tr>
2672
        
2673
      </tbody>
2674
    </table>
2675
  
2676

    
2677
  <h3 id="meta-info">META</h3>
2678
  <table class="req">
2679
    <thead>
2680
      <tr>
2681
        <th>Variable</th>
2682
        <th>Value</th>
2683
      </tr>
2684
    </thead>
2685
    <tbody>
2686
      
2687
        <tr>
2688
          <td>HTTP_ORIGIN</td>
2689
          <td class="code"><pre>'http://td.bhp.org.bw'</pre></td>
2690
        </tr>
2691
      
2692
        <tr>
2693
          <td>HTTP_COOKIE</td>
2694
          <td class="code"><pre>('org.cups.sid=761eca7cb0803673fe77dcb52eecd338; '
2695
 'csrftoken=8cMv4kA7BmEIl8tz0QqvboW7uD6mC5l8; '
2696
 'sessionid=15mv9oa24rdhf0e4tstwlgx2fzirg3t4')</pre></td>
2697
        </tr>
2698
      
2699
        <tr>
2700
          <td>HTTP_REFERER</td>
2701
          <td class="code"><pre>'http://td.bhp.org.bw/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None'</pre></td>
2702
        </tr>
2703
      
2704
        <tr>
2705
          <td>REMOTE_ADDR</td>
2706
          <td class="code"><pre>'127.0.0.1'</pre></td>
2707
        </tr>
2708
      
2709
        <tr>
2710
          <td>PATH_INFO</td>
2711
          <td class="code"><pre>'/admin/td_maternal/maternallifetimearvhistory/add/'</pre></td>
2712
        </tr>
2713
      
2714
        <tr>
2715
          <td>HTTP_HOST</td>
2716
          <td class="code"><pre>'127.0.0.1:9000'</pre></td>
2717
        </tr>
2718
      
2719
        <tr>
2720
          <td>gunicorn.socket</td>
2721
          <td class="code"><pre>&lt;socket.socket fd=15, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 9000), raddr=('127.0.0.1', 52406)&gt;</pre></td>
2722
        </tr>
2723
      
2724
        <tr>
2725
          <td>CONTENT_TYPE</td>
2726
          <td class="code"><pre>'multipart/form-data; boundary=----WebKitFormBoundaryBRE0lgHGVpZmsIuJ'</pre></td>
2727
        </tr>
2728
      
2729
        <tr>
2730
          <td>HTTP_USER_AGENT</td>
2731
          <td class="code"><pre>('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_0) AppleWebKit/537.36 (KHTML, '
2732
 'like Gecko) Chrome/67.0.3396.99 Safari/537.36')</pre></td>
2733
        </tr>
2734
      
2735
        <tr>
2736
          <td>HTTP_ACCEPT_LANGUAGE</td>
2737
          <td class="code"><pre>'en-BW,en-US;q=0.9,en;q=0.8'</pre></td>
2738
        </tr>
2739
      
2740
        <tr>
2741
          <td>REMOTE_PORT</td>
2742
          <td class="code"><pre>'52406'</pre></td>
2743
        </tr>
2744
      
2745
        <tr>
2746
          <td>wsgi.multithread</td>
2747
          <td class="code"><pre>False</pre></td>
2748
        </tr>
2749
      
2750
        <tr>
2751
          <td>RAW_URI</td>
2752
          <td class="code"><pre>'/admin/td_maternal/maternallifetimearvhistory/add/?next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None'</pre></td>
2753
        </tr>
2754
      
2755
        <tr>
2756
          <td>wsgi.errors</td>
2757
          <td class="code"><pre>&lt;gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f49fc1a1a58&gt;</pre></td>
2758
        </tr>
2759
      
2760
        <tr>
2761
          <td>HTTP_X_FORWARDED_FOR</td>
2762
          <td class="code"><pre>'10.113.200.178'</pre></td>
2763
        </tr>
2764
      
2765
        <tr>
2766
          <td>HTTP_ACCEPT_ENCODING</td>
2767
          <td class="code"><pre>'gzip, deflate'</pre></td>
2768
        </tr>
2769
      
2770
        <tr>
2771
          <td>QUERY_STRING</td>
2772
          <td class="code"><pre>'next=subject_dashboard_url&amp;dashboard_type=maternal&amp;dashboard_model=visit&amp;dashboard_id=9ba73c2e-5294-408b-948f-620be136515f&amp;show=forms&amp;registered_subject=db054754-729e-472d-bc2b-5ab2f1790c93&amp;maternal_visit=9ba73c2e-5294-408b-948f-620be136515f&amp;visit_attr=maternal_visit&amp;entry_order=60&amp;group_title=None'</pre></td>
2773
        </tr>
2774
      
2775
        <tr>
2776
          <td>wsgi.multiprocess</td>
2777
          <td class="code"><pre>True</pre></td>
2778
        </tr>
2779
      
2780
        <tr>
2781
          <td>HTTP_ACCEPT</td>
2782
          <td class="code"><pre>'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'</pre></td>
2783
        </tr>
2784
      
2785
        <tr>
2786
          <td>HTTP_UPGRADE_INSECURE_REQUESTS</td>
2787
          <td class="code"><pre>'1'</pre></td>
2788
        </tr>
2789
      
2790
        <tr>
2791
          <td>REQUEST_METHOD</td>
2792
          <td class="code"><pre>'POST'</pre></td>
2793
        </tr>
2794
      
2795
        <tr>
2796
          <td>SCRIPT_NAME</td>
2797
          <td class="code"><pre>''</pre></td>
2798
        </tr>
2799
      
2800
        <tr>
2801
          <td>HTTP_CONNECTION</td>
2802
          <td class="code"><pre>'close'</pre></td>
2803
        </tr>
2804
      
2805
        <tr>
2806
          <td>SERVER_NAME</td>
2807
          <td class="code"><pre>'127.0.0.1'</pre></td>
2808
        </tr>
2809
      
2810
        <tr>
2811
          <td>wsgi.file_wrapper</td>
2812
          <td class="code"><pre>''</pre></td>
2813
        </tr>
2814
      
2815
        <tr>
2816
          <td>SERVER_PROTOCOL</td>
2817
          <td class="code"><pre>'HTTP/1.0'</pre></td>
2818
        </tr>
2819
      
2820
        <tr>
2821
          <td>wsgi.version</td>
2822
          <td class="code"><pre>(1, 0)</pre></td>
2823
        </tr>
2824
      
2825
        <tr>
2826
          <td>SERVER_SOFTWARE</td>
2827
          <td class="code"><pre>'gunicorn/19.8.1'</pre></td>
2828
        </tr>
2829
      
2830
        <tr>
2831
          <td>wsgi.url_scheme</td>
2832
          <td class="code"><pre>'http'</pre></td>
2833
        </tr>
2834
      
2835
        <tr>
2836
          <td>wsgi.run_once</td>
2837
          <td class="code"><pre>False</pre></td>
2838
        </tr>
2839
      
2840
        <tr>
2841
          <td>wsgi.input</td>
2842
          <td class="code"><pre>&lt;gunicorn.http.body.Body object at 0x7f49fc1a1198&gt;</pre></td>
2843
        </tr>
2844
      
2845
        <tr>
2846
          <td>HTTP_CACHE_CONTROL</td>
2847
          <td class="code"><pre>'max-age=0'</pre></td>
2848
        </tr>
2849
      
2850
        <tr>
2851
          <td>CSRF_COOKIE</td>
2852
          <td class="code"><pre>'8cMv4kA7BmEIl8tz0QqvboW7uD6mC5l8'</pre></td>
2853
        </tr>
2854
      
2855
        <tr>
2856
          <td>CONTENT_LENGTH</td>
2857
          <td class="code"><pre>'1961'</pre></td>
2858
        </tr>
2859
      
2860
        <tr>
2861
          <td>SERVER_PORT</td>
2862
          <td class="code"><pre>'9000'</pre></td>
2863
        </tr>
2864
      
2865
    </tbody>
2866
  </table>
2867

    
2868

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

    
3952
</div>
3953

    
3954
  <div id="explanation">
3955
    <p>
3956
      You're seeing this error because you have <code>DEBUG = True</code> in your
3957
      Django settings file. Change that to <code>False</code>, and Django will
3958
      display a standard page generated by the handler for this status code.
3959
    </p>
3960
  </div>
3961

    
3962

    
3963

    
3964
</body></html>