5680 lines
312 KiB
HTML
5680 lines
312 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||
<meta name="robots" content="NONE,NOARCHIVE">
|
||
<title>TemplateSyntaxError
|
||
at /surveys/s/H8d9tlVs0BgeAp1XA4NczXoiCcqAaN0r_lc0Eb63U1Y/</title>
|
||
<style>
|
||
html * { padding:0; margin:0; }
|
||
body * { padding:10px 20px; }
|
||
body * * { padding:0; }
|
||
body { font-family: sans-serif; background-color:#fff; color:#000; }
|
||
body > :where(header, main, footer) { border-bottom:1px solid #ddd; }
|
||
h1 { font-weight:normal; }
|
||
h2 { margin-bottom:.8em; }
|
||
h3 { margin:1em 0 .5em 0; }
|
||
h4 { margin:0 0 .5em 0; font-weight: normal; }
|
||
code, pre { font-size: 100%; white-space: pre-wrap; word-break: break-word; }
|
||
summary { cursor: pointer; }
|
||
table { border:1px solid #ccc; border-collapse: collapse; width:100%; background:white; }
|
||
tbody td, tbody th { vertical-align:top; padding:2px 3px; }
|
||
thead th {
|
||
padding:1px 6px 1px 3px; background:#fefefe; text-align:left;
|
||
font-weight:normal; font-size: 0.6875rem; border:1px solid #ddd;
|
||
}
|
||
tbody th { width:12em; text-align:right; color:#666; padding-right:.5em; }
|
||
table.vars { margin:5px 10px 2px 40px; width: auto; }
|
||
table.vars td, table.req td { font-family:monospace; }
|
||
table td.code { width:100%; }
|
||
table td.code pre { overflow:hidden; }
|
||
table.source th { color:#666; }
|
||
table.source td { font-family:monospace; white-space:pre; border-bottom:1px solid #eee; }
|
||
ul.traceback { list-style-type:none; color: #222; }
|
||
ul.traceback li.cause { word-break: break-word; }
|
||
ul.traceback li.frame { padding-bottom:1em; color:#4f4f4f; }
|
||
ul.traceback li.user { background-color:#e0e0e0; color:#000 }
|
||
div.context { padding:10px 0; overflow:hidden; }
|
||
div.context ol { padding-left:30px; margin:0 10px; list-style-position: inside; }
|
||
div.context ol li { font-family:monospace; white-space:pre; color:#777; cursor:pointer; padding-left: 2px; }
|
||
div.context ol li pre { display:inline; }
|
||
div.context ol.context-line li { color:#464646; background-color:#dfdfdf; padding: 3px 2px; }
|
||
div.context ol.context-line li span { position:absolute; right:32px; }
|
||
.user div.context ol.context-line li { background-color:#bbb; color:#000; }
|
||
.user div.context ol li { color:#666; }
|
||
div.commands, summary.commands { margin-left: 40px; }
|
||
div.commands a, summary.commands { color:#555; text-decoration:none; }
|
||
.user div.commands a { color: black; }
|
||
#summary { background: #ffc; }
|
||
#summary h2 { font-weight: normal; color: #666; }
|
||
#info { padding: 0; }
|
||
#info > * { padding:10px 20px; }
|
||
#explanation { background:#eee; }
|
||
#template, #template-not-exist { background:#f6f6f6; }
|
||
#template-not-exist ul { margin: 0 0 10px 20px; }
|
||
#template-not-exist .postmortem-section { margin-bottom: 3px; }
|
||
#unicode-hint { background:#eee; }
|
||
#traceback { background:#eee; }
|
||
#requestinfo { background:#f6f6f6; padding-left:120px; }
|
||
#summary table { border:none; background:transparent; }
|
||
#requestinfo h2, #requestinfo h3 { position:relative; margin-left:-100px; }
|
||
#requestinfo h3 { margin-bottom:-1em; }
|
||
.error { background: #ffc; }
|
||
.specific { color:#cc3300; font-weight:bold; }
|
||
h2 span.commands { font-size: 0.7rem; font-weight:normal; }
|
||
span.commands a:link {color:#5E5694;}
|
||
pre.exception_value { font-family: sans-serif; color: #575757; font-size: 1.5rem; margin: 10px 0 10px 0; }
|
||
.append-bottom { margin-bottom: 10px; }
|
||
.fname { user-select: all; }
|
||
</style>
|
||
|
||
<script>
|
||
function hideAll(elems) {
|
||
for (var e = 0; e < elems.length; e++) {
|
||
elems[e].style.display = 'none';
|
||
}
|
||
}
|
||
window.onload = function() {
|
||
hideAll(document.querySelectorAll('ol.pre-context'));
|
||
hideAll(document.querySelectorAll('ol.post-context'));
|
||
hideAll(document.querySelectorAll('div.pastebin'));
|
||
}
|
||
function toggle() {
|
||
for (var i = 0; i < arguments.length; i++) {
|
||
var e = document.getElementById(arguments[i]);
|
||
if (e) {
|
||
e.style.display = e.style.display == 'none' ? 'block': 'none';
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
function switchPastebinFriendly(link) {
|
||
s1 = "Switch to copy-and-paste view";
|
||
s2 = "Switch back to interactive view";
|
||
link.textContent = link.textContent.trim() == s1 ? s2: s1;
|
||
toggle('browserTraceback', 'pastebinTraceback');
|
||
return false;
|
||
}
|
||
</script>
|
||
|
||
</head>
|
||
<body>
|
||
<header id="summary">
|
||
<h1>TemplateSyntaxError
|
||
at /surveys/s/H8d9tlVs0BgeAp1XA4NczXoiCcqAaN0r_lc0Eb63U1Y/</h1>
|
||
<pre class="exception_value">Invalid filter: 'split'</pre>
|
||
<table class="meta">
|
||
|
||
<tr>
|
||
<th scope="row">Request Method:</th>
|
||
<td>GET</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Request URL:</th>
|
||
<td>http://localhost:8000/surveys/s/H8d9tlVs0BgeAp1XA4NczXoiCcqAaN0r_lc0Eb63U1Y/</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<th scope="row">Django Version:</th>
|
||
<td>6.0.1</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<th scope="row">Exception Type:</th>
|
||
<td>TemplateSyntaxError</td>
|
||
</tr>
|
||
|
||
|
||
<tr>
|
||
<th scope="row">Exception Value:</th>
|
||
<td><pre>Invalid filter: 'split'</pre></td>
|
||
</tr>
|
||
|
||
|
||
<tr>
|
||
<th scope="row">Exception Location:</th>
|
||
<td><span class="fname">/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/base.py</span>, line 682, in find_filter</td>
|
||
</tr>
|
||
|
||
|
||
<tr>
|
||
<th scope="row">Raised during:</th>
|
||
<td>apps.surveys.public_views.survey_form</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<th scope="row">Python Executable:</th>
|
||
<td>/home/ismail/projects/HH/.venv/bin/python3</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Python Version:</th>
|
||
<td>3.12.3</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Python Path:</th>
|
||
<td><pre><code>['/home/ismail/projects/HH',
|
||
'/home/ismail/projects/HH',
|
||
'/usr/lib/python312.zip',
|
||
'/usr/lib/python3.12',
|
||
'/usr/lib/python3.12/lib-dynload',
|
||
'/home/ismail/projects/HH/.venv/lib/python3.12/site-packages',
|
||
'__editable__.px360-0.1.0.finder.__path_hook__']</code></pre></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Server time:</th>
|
||
<td>Tue, 20 Jan 2026 18:03:50 +0300</td>
|
||
</tr>
|
||
</table>
|
||
</header>
|
||
|
||
<main id="info">
|
||
|
||
|
||
|
||
<div id="template">
|
||
<h2>Error during template rendering</h2>
|
||
<p>In template <code>/home/ismail/projects/HH/templates/surveys/public_form.html</code>, error at line <strong>451</strong></p>
|
||
<h3>Invalid filter: 'split'</h3>
|
||
<table class="source cut-top
|
||
cut-bottom">
|
||
|
||
|
||
<tr><th scope="row">441</th>
|
||
<td> <span>
|
||
</td></tr>
|
||
|
||
|
||
|
||
<tr><th scope="row">442</th>
|
||
<td> {% if language == 'ar' %}محتمل جداً{% else %}Extremely likely{% endif %}
|
||
</td></tr>
|
||
|
||
|
||
|
||
<tr><th scope="row">443</th>
|
||
<td> </span>
|
||
</td></tr>
|
||
|
||
|
||
|
||
<tr><th scope="row">444</th>
|
||
<td> </div>
|
||
</td></tr>
|
||
|
||
|
||
|
||
<tr><th scope="row">445</th>
|
||
<td> <input type="hidden" name="question_{{ question.id }}" id="question_{{ question.id }}"
|
||
</td></tr>
|
||
|
||
|
||
|
||
<tr><th scope="row">446</th>
|
||
<td> {% if question.is_required %}required{% endif %}>
|
||
</td></tr>
|
||
|
||
|
||
|
||
<tr><th scope="row">447</th>
|
||
<td>
|
||
</td></tr>
|
||
|
||
|
||
|
||
<tr><th scope="row">448</th>
|
||
<td> <!-- Likert Scale -->
|
||
</td></tr>
|
||
|
||
|
||
|
||
<tr><th scope="row">449</th>
|
||
<td> {% elif question.question_type == 'likert' %}
|
||
</td></tr>
|
||
|
||
|
||
|
||
<tr><th scope="row">450</th>
|
||
<td> <div class="likert-scale">
|
||
</td></tr>
|
||
|
||
|
||
|
||
<tr class="error"><th scope="row">451</th>
|
||
<td> <span class="specific">{% for value, label in "1:Strongly Disagree,2:Disagree,3:Neutral,4:Agree,5:Strongly Agree"|split:"," %}</span>
|
||
</td>
|
||
</tr>
|
||
|
||
|
||
|
||
<tr><th scope="row">452</th>
|
||
<td> {% with parts=label|split:":" %}
|
||
</td></tr>
|
||
|
||
|
||
|
||
<tr><th scope="row">453</th>
|
||
<td> <label class="likert-option">
|
||
</td></tr>
|
||
|
||
|
||
|
||
<tr><th scope="row">454</th>
|
||
<td> <input type="radio" name="question_{{ question.id }}" value="{{ parts.0 }}"
|
||
</td></tr>
|
||
|
||
|
||
|
||
<tr><th scope="row">455</th>
|
||
<td> {% if question.is_required %}required{% endif %}
|
||
</td></tr>
|
||
|
||
|
||
|
||
<tr><th scope="row">456</th>
|
||
<td> onchange="selectLikert(this)">
|
||
</td></tr>
|
||
|
||
|
||
|
||
<tr><th scope="row">457</th>
|
||
<td> <span>{{ parts.1 }}</span>
|
||
</td></tr>
|
||
|
||
|
||
|
||
<tr><th scope="row">458</th>
|
||
<td> </label>
|
||
</td></tr>
|
||
|
||
|
||
|
||
<tr><th scope="row">459</th>
|
||
<td> {% endwith %}
|
||
</td></tr>
|
||
|
||
|
||
|
||
<tr><th scope="row">460</th>
|
||
<td> {% endfor %}
|
||
</td></tr>
|
||
|
||
|
||
|
||
<tr><th scope="row">461</th>
|
||
<td> </div>
|
||
</td></tr>
|
||
|
||
|
||
</table>
|
||
</div>
|
||
|
||
|
||
<div id="traceback">
|
||
<h2>Traceback <span class="commands"><a href="#" role="button" onclick="return switchPastebinFriendly(this);">
|
||
Switch to copy-and-paste view</a></span>
|
||
</h2>
|
||
<div id="browserTraceback">
|
||
<ul class="traceback">
|
||
|
||
|
||
<li class="frame django">
|
||
|
||
<code class="fname">/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py</code>, line 55, in inner
|
||
|
||
|
||
|
||
<div class="context" id="c126073041794752">
|
||
|
||
<ol start="48" class="pre-context" id="pre126073041794752">
|
||
|
||
<li onclick="toggle('pre126073041794752', 'post126073041794752')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041794752', 'post126073041794752')"><pre> return inner</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041794752', 'post126073041794752')"><pre> else:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041794752', 'post126073041794752')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041794752', 'post126073041794752')"><pre> @wraps(get_response)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041794752', 'post126073041794752')"><pre> def inner(request):</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041794752', 'post126073041794752')"><pre> try:</pre></li>
|
||
|
||
</ol>
|
||
|
||
<ol start="55" class="context-line">
|
||
<li onclick="toggle('pre126073041794752', 'post126073041794752')"><pre> response = get_response(request)
|
||
^^^^^^^^^^^^^^^^^^^^^</pre> <span>…</span></li>
|
||
</ol>
|
||
|
||
<ol start='56' class="post-context" id="post126073041794752">
|
||
|
||
<li onclick="toggle('pre126073041794752', 'post126073041794752')"><pre> except Exception as exc:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041794752', 'post126073041794752')"><pre> response = response_for_exception(request, exc)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041794752', 'post126073041794752')"><pre> return response</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041794752', 'post126073041794752')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041794752', 'post126073041794752')"><pre> return inner</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041794752', 'post126073041794752')"><pre></pre></li>
|
||
|
||
</ol>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<details>
|
||
<summary class="commands">Local vars</summary>
|
||
|
||
<table class="vars" id="v126073041794752">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>exc</td>
|
||
<td class="code"><pre>TemplateSyntaxError("Template: /home/ismail/projects/HH/templates/surveys/public_form.html, Invalid filter: 'split'")</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>get_response</td>
|
||
<td class="code"><pre><bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x72a9b4a4b440>></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>request</td>
|
||
<td class="code"><pre><WSGIRequest: GET '/surveys/s/H8d9tlVs0BgeAp1XA4NczXoiCcqAaN0r_lc0Eb63U1Y/'></pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</details>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="frame django">
|
||
|
||
<code class="fname">/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/core/handlers/base.py</code>, line 198, in _get_response
|
||
|
||
|
||
|
||
<div class="context" id="c126073041784896">
|
||
|
||
<ol start="191" class="pre-context" id="pre126073041784896">
|
||
|
||
<li onclick="toggle('pre126073041784896', 'post126073041784896')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041784896', 'post126073041784896')"><pre> if response is None:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041784896', 'post126073041784896')"><pre> wrapped_callback = self.make_view_atomic(callback)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041784896', 'post126073041784896')"><pre> # If it is an asynchronous view, run it in a subthread.</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041784896', 'post126073041784896')"><pre> if iscoroutinefunction(wrapped_callback):</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041784896', 'post126073041784896')"><pre> wrapped_callback = async_to_sync(wrapped_callback)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041784896', 'post126073041784896')"><pre> try:</pre></li>
|
||
|
||
</ol>
|
||
|
||
<ol start="198" class="context-line">
|
||
<li onclick="toggle('pre126073041784896', 'post126073041784896')"><pre> response = wrapped_callback(request, *callback_args, **callback_kwargs)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</pre> <span>…</span></li>
|
||
</ol>
|
||
|
||
<ol start='199' class="post-context" id="post126073041784896">
|
||
|
||
<li onclick="toggle('pre126073041784896', 'post126073041784896')"><pre> except Exception as e:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041784896', 'post126073041784896')"><pre> response = self.process_exception_by_middleware(e, request)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041784896', 'post126073041784896')"><pre> if response is None:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041784896', 'post126073041784896')"><pre> raise</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041784896', 'post126073041784896')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041784896', 'post126073041784896')"><pre> # Complain if the view returned None (a common error).</pre></li>
|
||
|
||
</ol>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<details>
|
||
<summary class="commands">Local vars</summary>
|
||
|
||
<table class="vars" id="v126073041784896">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>callback</td>
|
||
<td class="code"><pre><function survey_form at 0x72a9b052dee0></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>callback_args</td>
|
||
<td class="code"><pre>()</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>callback_kwargs</td>
|
||
<td class="code"><pre>{'token': 'H8d9tlVs0BgeAp1XA4NczXoiCcqAaN0r_lc0Eb63U1Y'}</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>middleware_method</td>
|
||
<td class="code"><pre><bound method CsrfViewMiddleware.process_view of <CsrfViewMiddleware get_response=convert_exception_to_response.<locals>.inner>></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>request</td>
|
||
<td class="code"><pre><WSGIRequest: GET '/surveys/s/H8d9tlVs0BgeAp1XA4NczXoiCcqAaN0r_lc0Eb63U1Y/'></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>response</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>self</td>
|
||
<td class="code"><pre><django.core.handlers.wsgi.WSGIHandler object at 0x72a9b4a4b440></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>wrapped_callback</td>
|
||
<td class="code"><pre><function survey_form at 0x72a9b052dee0></pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</details>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="frame django">
|
||
|
||
<code class="fname">/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/views/decorators/http.py</code>, line 64, in inner
|
||
|
||
|
||
|
||
<div class="context" id="c126073041789760">
|
||
|
||
<ol start="57" class="pre-context" id="pre126073041789760">
|
||
|
||
<li onclick="toggle('pre126073041789760', 'post126073041789760')"><pre> "Method Not Allowed (%s): %s",</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789760', 'post126073041789760')"><pre> request.method,</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789760', 'post126073041789760')"><pre> request.path,</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789760', 'post126073041789760')"><pre> response=response,</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789760', 'post126073041789760')"><pre> request=request,</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789760', 'post126073041789760')"><pre> )</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789760', 'post126073041789760')"><pre> return response</pre></li>
|
||
|
||
</ol>
|
||
|
||
<ol start="64" class="context-line">
|
||
<li onclick="toggle('pre126073041789760', 'post126073041789760')"><pre> return func(request, *args, **kwargs)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</pre> <span>…</span></li>
|
||
</ol>
|
||
|
||
<ol start='65' class="post-context" id="post126073041789760">
|
||
|
||
<li onclick="toggle('pre126073041789760', 'post126073041789760')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789760', 'post126073041789760')"><pre> return inner</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789760', 'post126073041789760')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789760', 'post126073041789760')"><pre> return decorator</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789760', 'post126073041789760')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789760', 'post126073041789760')"><pre></pre></li>
|
||
|
||
</ol>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<details>
|
||
<summary class="commands">Local vars</summary>
|
||
|
||
<table class="vars" id="v126073041789760">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>args</td>
|
||
<td class="code"><pre>()</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>func</td>
|
||
<td class="code"><pre><function survey_form at 0x72a9b052de40></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>kwargs</td>
|
||
<td class="code"><pre>{'token': 'H8d9tlVs0BgeAp1XA4NczXoiCcqAaN0r_lc0Eb63U1Y'}</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>request</td>
|
||
<td class="code"><pre><WSGIRequest: GET '/surveys/s/H8d9tlVs0BgeAp1XA4NczXoiCcqAaN0r_lc0Eb63U1Y/'></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>request_method_list</td>
|
||
<td class="code"><pre>['GET', 'POST']</pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</details>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="frame user">
|
||
|
||
<code class="fname">/home/ismail/projects/HH/apps/surveys/public_views.py</code>, line 189, in survey_form
|
||
|
||
|
||
|
||
<div class="context" id="c126073041789888">
|
||
|
||
<ol start="182" class="pre-context" id="pre126073041789888">
|
||
|
||
<li onclick="toggle('pre126073041789888', 'post126073041789888')"><pre> context = {</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789888', 'post126073041789888')"><pre> 'survey': survey,</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789888', 'post126073041789888')"><pre> 'questions': questions,</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789888', 'post126073041789888')"><pre> 'language': language,</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789888', 'post126073041789888')"><pre> 'total_questions': questions.count(),</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789888', 'post126073041789888')"><pre> }</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789888', 'post126073041789888')"><pre> </pre></li>
|
||
|
||
</ol>
|
||
|
||
<ol start="189" class="context-line">
|
||
<li onclick="toggle('pre126073041789888', 'post126073041789888')"><pre> return render(request, 'surveys/public_form.html', context)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</pre> <span>…</span></li>
|
||
</ol>
|
||
|
||
<ol start='190' class="post-context" id="post126073041789888">
|
||
|
||
<li onclick="toggle('pre126073041789888', 'post126073041789888')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789888', 'post126073041789888')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789888', 'post126073041789888')"><pre>def thank_you(request, token):</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789888', 'post126073041789888')"><pre> """Thank you page after survey completion"""</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789888', 'post126073041789888')"><pre> try:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789888', 'post126073041789888')"><pre> survey = SurveyInstance.objects.select_related(</pre></li>
|
||
|
||
</ol>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<details>
|
||
<summary class="commands">Local vars</summary>
|
||
|
||
<table class="vars" id="v126073041789888">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>context</td>
|
||
<td class="code"><pre>{'language': 'en',
|
||
'questions': <QuerySet [<SurveyQuestion: OPD Experience Survey - Q1: How satisfied were you with the registration proce>, <SurveyQuestion: OPD Experience Survey - Q2: How long did you wait to see the doctor?>, <SurveyQuestion: OPD Experience Survey - Q3: Did the doctor listen to your concerns?>, <SurveyQuestion: OPD Experience Survey - Q4: Did the doctor explain your diagnosis and treatmen>, <SurveyQuestion: OPD Experience Survey - Q5: How satisfied were you with the lab services?>, <SurveyQuestion: OPD Experience Survey - Q6: How satisfied were you with the pharmacy services?>, <SurveyQuestion: OPD Experience Survey - Q7: How would you rate your overall visit experience?>]>,
|
||
'survey': <SurveyInstance: OPD Experience Survey - Full Journey>,
|
||
'total_questions': 7}</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>language</td>
|
||
<td class="code"><pre>'en'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>questions</td>
|
||
<td class="code"><pre><QuerySet [<SurveyQuestion: OPD Experience Survey - Q1: How satisfied were you with the registration proce>, <SurveyQuestion: OPD Experience Survey - Q2: How long did you wait to see the doctor?>, <SurveyQuestion: OPD Experience Survey - Q3: Did the doctor listen to your concerns?>, <SurveyQuestion: OPD Experience Survey - Q4: Did the doctor explain your diagnosis and treatmen>, <SurveyQuestion: OPD Experience Survey - Q5: How satisfied were you with the lab services?>, <SurveyQuestion: OPD Experience Survey - Q6: How satisfied were you with the pharmacy services?>, <SurveyQuestion: OPD Experience Survey - Q7: How would you rate your overall visit experience?>]></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>request</td>
|
||
<td class="code"><pre><WSGIRequest: GET '/surveys/s/H8d9tlVs0BgeAp1XA4NczXoiCcqAaN0r_lc0Eb63U1Y/'></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>survey</td>
|
||
<td class="code"><pre><SurveyInstance: OPD Experience Survey - Full Journey></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>token</td>
|
||
<td class="code"><pre>'H8d9tlVs0BgeAp1XA4NczXoiCcqAaN0r_lc0Eb63U1Y'</pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</details>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="frame django">
|
||
|
||
<code class="fname">/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/shortcuts.py</code>, line 25, in render
|
||
|
||
|
||
|
||
<div class="context" id="c126073041789184">
|
||
|
||
<ol start="18" class="pre-context" id="pre126073041789184">
|
||
|
||
<li onclick="toggle('pre126073041789184', 'post126073041789184')"><pre>def render(</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789184', 'post126073041789184')"><pre> request, template_name, context=None, content_type=None, status=None, using=None</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789184', 'post126073041789184')"><pre>):</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789184', 'post126073041789184')"><pre> """</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789184', 'post126073041789184')"><pre> Return an HttpResponse whose content is filled with the result of calling</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789184', 'post126073041789184')"><pre> django.template.loader.render_to_string() with the passed arguments.</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789184', 'post126073041789184')"><pre> """</pre></li>
|
||
|
||
</ol>
|
||
|
||
<ol start="25" class="context-line">
|
||
<li onclick="toggle('pre126073041789184', 'post126073041789184')"><pre> content = loader.render_to_string(template_name, context, request, using=using)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</pre> <span>…</span></li>
|
||
</ol>
|
||
|
||
<ol start='26' class="post-context" id="post126073041789184">
|
||
|
||
<li onclick="toggle('pre126073041789184', 'post126073041789184')"><pre> return HttpResponse(content, content_type, status)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789184', 'post126073041789184')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789184', 'post126073041789184')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789184', 'post126073041789184')"><pre>def redirect(to, *args, permanent=False, preserve_request=False, **kwargs):</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789184', 'post126073041789184')"><pre> """</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789184', 'post126073041789184')"><pre> Return an HttpResponseRedirect to the appropriate URL for the arguments</pre></li>
|
||
|
||
</ol>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<details>
|
||
<summary class="commands">Local vars</summary>
|
||
|
||
<table class="vars" id="v126073041789184">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>content_type</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>context</td>
|
||
<td class="code"><pre>{'language': 'en',
|
||
'questions': <QuerySet [<SurveyQuestion: OPD Experience Survey - Q1: How satisfied were you with the registration proce>, <SurveyQuestion: OPD Experience Survey - Q2: How long did you wait to see the doctor?>, <SurveyQuestion: OPD Experience Survey - Q3: Did the doctor listen to your concerns?>, <SurveyQuestion: OPD Experience Survey - Q4: Did the doctor explain your diagnosis and treatmen>, <SurveyQuestion: OPD Experience Survey - Q5: How satisfied were you with the lab services?>, <SurveyQuestion: OPD Experience Survey - Q6: How satisfied were you with the pharmacy services?>, <SurveyQuestion: OPD Experience Survey - Q7: How would you rate your overall visit experience?>]>,
|
||
'survey': <SurveyInstance: OPD Experience Survey - Full Journey>,
|
||
'total_questions': 7}</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>request</td>
|
||
<td class="code"><pre><WSGIRequest: GET '/surveys/s/H8d9tlVs0BgeAp1XA4NczXoiCcqAaN0r_lc0Eb63U1Y/'></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>status</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>template_name</td>
|
||
<td class="code"><pre>'surveys/public_form.html'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>using</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</details>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="frame django">
|
||
|
||
<code class="fname">/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/loader.py</code>, line 61, in render_to_string
|
||
|
||
|
||
|
||
<div class="context" id="c126073041785280">
|
||
|
||
<ol start="54" class="pre-context" id="pre126073041785280">
|
||
|
||
<li onclick="toggle('pre126073041785280', 'post126073041785280')"><pre> Load a template and render it with a context. Return a string.</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785280', 'post126073041785280')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785280', 'post126073041785280')"><pre> template_name may be a string or a list of strings.</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785280', 'post126073041785280')"><pre> """</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785280', 'post126073041785280')"><pre> if isinstance(template_name, (list, tuple)):</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785280', 'post126073041785280')"><pre> template = select_template(template_name, using=using)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785280', 'post126073041785280')"><pre> else:</pre></li>
|
||
|
||
</ol>
|
||
|
||
<ol start="61" class="context-line">
|
||
<li onclick="toggle('pre126073041785280', 'post126073041785280')"><pre> template = get_template(template_name, using=using)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</pre> <span>…</span></li>
|
||
</ol>
|
||
|
||
<ol start='62' class="post-context" id="post126073041785280">
|
||
|
||
<li onclick="toggle('pre126073041785280', 'post126073041785280')"><pre> return template.render(context, request)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785280', 'post126073041785280')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785280', 'post126073041785280')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785280', 'post126073041785280')"><pre>def _engine_list(using=None):</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785280', 'post126073041785280')"><pre> return engines.all() if using is None else [engines[using]]</pre></li>
|
||
|
||
</ol>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<details>
|
||
<summary class="commands">Local vars</summary>
|
||
|
||
<table class="vars" id="v126073041785280">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>context</td>
|
||
<td class="code"><pre>{'language': 'en',
|
||
'questions': <QuerySet [<SurveyQuestion: OPD Experience Survey - Q1: How satisfied were you with the registration proce>, <SurveyQuestion: OPD Experience Survey - Q2: How long did you wait to see the doctor?>, <SurveyQuestion: OPD Experience Survey - Q3: Did the doctor listen to your concerns?>, <SurveyQuestion: OPD Experience Survey - Q4: Did the doctor explain your diagnosis and treatmen>, <SurveyQuestion: OPD Experience Survey - Q5: How satisfied were you with the lab services?>, <SurveyQuestion: OPD Experience Survey - Q6: How satisfied were you with the pharmacy services?>, <SurveyQuestion: OPD Experience Survey - Q7: How would you rate your overall visit experience?>]>,
|
||
'survey': <SurveyInstance: OPD Experience Survey - Full Journey>,
|
||
'total_questions': 7}</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>request</td>
|
||
<td class="code"><pre><WSGIRequest: GET '/surveys/s/H8d9tlVs0BgeAp1XA4NczXoiCcqAaN0r_lc0Eb63U1Y/'></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>template_name</td>
|
||
<td class="code"><pre>'surveys/public_form.html'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>using</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</details>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="frame django">
|
||
|
||
<code class="fname">/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/loader.py</code>, line 15, in get_template
|
||
|
||
|
||
|
||
<div class="context" id="c126073041788928">
|
||
|
||
<ol start="8" class="pre-context" id="pre126073041788928">
|
||
|
||
<li onclick="toggle('pre126073041788928', 'post126073041788928')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041788928', 'post126073041788928')"><pre> Raise TemplateDoesNotExist if no such template exists.</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041788928', 'post126073041788928')"><pre> """</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041788928', 'post126073041788928')"><pre> chain = []</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041788928', 'post126073041788928')"><pre> engines = _engine_list(using)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041788928', 'post126073041788928')"><pre> for engine in engines:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041788928', 'post126073041788928')"><pre> try:</pre></li>
|
||
|
||
</ol>
|
||
|
||
<ol start="15" class="context-line">
|
||
<li onclick="toggle('pre126073041788928', 'post126073041788928')"><pre> return engine.get_template(template_name)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</pre> <span>…</span></li>
|
||
</ol>
|
||
|
||
<ol start='16' class="post-context" id="post126073041788928">
|
||
|
||
<li onclick="toggle('pre126073041788928', 'post126073041788928')"><pre> except TemplateDoesNotExist as e:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041788928', 'post126073041788928')"><pre> chain.append(e)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041788928', 'post126073041788928')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041788928', 'post126073041788928')"><pre> raise TemplateDoesNotExist(template_name, chain=chain)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041788928', 'post126073041788928')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041788928', 'post126073041788928')"><pre></pre></li>
|
||
|
||
</ol>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<details>
|
||
<summary class="commands">Local vars</summary>
|
||
|
||
<table class="vars" id="v126073041788928">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>chain</td>
|
||
<td class="code"><pre>[]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>engine</td>
|
||
<td class="code"><pre><django.template.backends.django.DjangoTemplates object at 0x72a9b351a120></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>engines</td>
|
||
<td class="code"><pre>[<django.template.backends.django.DjangoTemplates object at 0x72a9b351a120>]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>template_name</td>
|
||
<td class="code"><pre>'surveys/public_form.html'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>using</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</details>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="frame django">
|
||
|
||
<code class="fname">/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/backends/django.py</code>, line 79, in get_template
|
||
|
||
|
||
|
||
<div class="context" id="c126073041790016">
|
||
|
||
<ol start="72" class="pre-context" id="pre126073041790016">
|
||
|
||
<li onclick="toggle('pre126073041790016', 'post126073041790016')"><pre> return errors</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041790016', 'post126073041790016')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041790016', 'post126073041790016')"><pre> def from_string(self, template_code):</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041790016', 'post126073041790016')"><pre> return Template(self.engine.from_string(template_code), self)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041790016', 'post126073041790016')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041790016', 'post126073041790016')"><pre> def get_template(self, template_name):</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041790016', 'post126073041790016')"><pre> try:</pre></li>
|
||
|
||
</ol>
|
||
|
||
<ol start="79" class="context-line">
|
||
<li onclick="toggle('pre126073041790016', 'post126073041790016')"><pre> return Template(self.engine.get_template(template_name), self)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</pre> <span>…</span></li>
|
||
</ol>
|
||
|
||
<ol start='80' class="post-context" id="post126073041790016">
|
||
|
||
<li onclick="toggle('pre126073041790016', 'post126073041790016')"><pre> except TemplateDoesNotExist as exc:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041790016', 'post126073041790016')"><pre> reraise(exc, self)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041790016', 'post126073041790016')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041790016', 'post126073041790016')"><pre> def get_templatetag_libraries(self, custom_libraries):</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041790016', 'post126073041790016')"><pre> """</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041790016', 'post126073041790016')"><pre> Return a collation of template tag libraries from installed</pre></li>
|
||
|
||
</ol>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<details>
|
||
<summary class="commands">Local vars</summary>
|
||
|
||
<table class="vars" id="v126073041790016">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>self</td>
|
||
<td class="code"><pre><django.template.backends.django.DjangoTemplates object at 0x72a9b351a120></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>template_name</td>
|
||
<td class="code"><pre>'surveys/public_form.html'</pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</details>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="frame django">
|
||
|
||
<code class="fname">/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/engine.py</code>, line 186, in get_template
|
||
|
||
|
||
|
||
<div class="context" id="c126073041783360">
|
||
|
||
<ol start="179" class="pre-context" id="pre126073041783360">
|
||
|
||
<li onclick="toggle('pre126073041783360', 'post126073041783360')"><pre> template_name, _, partial_name = template_name.partition("#")</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041783360', 'post126073041783360')"><pre> except AttributeError:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041783360', 'post126073041783360')"><pre> raise TemplateDoesNotExist(original_name)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041783360', 'post126073041783360')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041783360', 'post126073041783360')"><pre> if not template_name:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041783360', 'post126073041783360')"><pre> raise TemplateDoesNotExist(original_name)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041783360', 'post126073041783360')"><pre></pre></li>
|
||
|
||
</ol>
|
||
|
||
<ol start="186" class="context-line">
|
||
<li onclick="toggle('pre126073041783360', 'post126073041783360')"><pre> template, origin = self.find_template(template_name)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</pre> <span>…</span></li>
|
||
</ol>
|
||
|
||
<ol start='187' class="post-context" id="post126073041783360">
|
||
|
||
<li onclick="toggle('pre126073041783360', 'post126073041783360')"><pre> if not hasattr(template, "render"):</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041783360', 'post126073041783360')"><pre> # template needs to be compiled</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041783360', 'post126073041783360')"><pre> template = Template(template, origin, template_name, engine=self)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041783360', 'post126073041783360')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041783360', 'post126073041783360')"><pre> if not partial_name:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041783360', 'post126073041783360')"><pre> return template</pre></li>
|
||
|
||
</ol>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<details>
|
||
<summary class="commands">Local vars</summary>
|
||
|
||
<table class="vars" id="v126073041783360">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>_</td>
|
||
<td class="code"><pre>''</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>original_name</td>
|
||
<td class="code"><pre>'surveys/public_form.html'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>partial_name</td>
|
||
<td class="code"><pre>''</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>self</td>
|
||
<td class="code"><pre><Engine: dirs=[PosixPath('/home/ismail/projects/HH/templates')] app_dirs=True context_processors=['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', 'django.template.context_processors.i18n', 'apps.core.context_processors.sidebar_counts', 'apps.core.context_processors.hospital_context'] debug=True loaders=[('django.template.loaders.cached.Loader', ['django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader'])] string_if_invalid='' file_charset='utf-8' libraries={'cache': 'django.templatetags.cache', 'i18n': 'django.templatetags.i18n', 'l10n': 'django.templatetags.l10n', 'static': 'django.templatetags.static', 'tz': 'django.templatetags.tz', 'admin_list': 'django.contrib.admin.templatetags.admin_list', 'admin_modify': 'django.contrib.admin.templatetags.admin_modify', 'admin_urls': 'django.contrib.admin.templatetags.admin_urls', 'log': 'django.contrib.admin.templatetags.log', 'auth': 'django.contrib.auth.templatetags.auth', 'rest_framework': 'rest_framework.templatetags.rest_framework', 'hospital_filters': 'apps.core.templatetags.hospital_filters', 'math': 'apps.complaints.templatetags.math', 'action_icons': 'apps.social.templatetags.action_icons', 'social_filters': 'apps.social.templatetags.social_filters', 'social_icons': 'apps.social.templatetags.social_icons', 'star_rating': 'apps.social.templatetags.star_rating', 'sentiment_tags': 'apps.ai_engine.templatetags.sentiment_tags', 'standards_filters': 'apps.standards.templatetags.standards_filters', 'debugger_tags': 'django_extensions.templatetags.debugger_tags', 'highlighting': 'django_extensions.templatetags.highlighting', 'indent_text': 'django_extensions.templatetags.indent_text', 'syntax_color': 'django_extensions.templatetags.syntax_color', 'widont': 'django_extensions.templatetags.widont'} builtins=['django.template.defaulttags', 'django.template.defaultfilters', 'django.template.loader_tags'] autoescape=True></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>template_name</td>
|
||
<td class="code"><pre>'surveys/public_form.html'</pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</details>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="frame django">
|
||
|
||
<code class="fname">/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/engine.py</code>, line 159, in find_template
|
||
|
||
|
||
|
||
<div class="context" id="c126073041781760">
|
||
|
||
<ol start="152" class="pre-context" id="pre126073041781760">
|
||
|
||
<li onclick="toggle('pre126073041781760', 'post126073041781760')"><pre> "Invalid value in template loaders configuration: %r" % loader</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041781760', 'post126073041781760')"><pre> )</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041781760', 'post126073041781760')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041781760', 'post126073041781760')"><pre> def find_template(self, name, dirs=None, skip=None):</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041781760', 'post126073041781760')"><pre> tried = []</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041781760', 'post126073041781760')"><pre> for loader in self.template_loaders:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041781760', 'post126073041781760')"><pre> try:</pre></li>
|
||
|
||
</ol>
|
||
|
||
<ol start="159" class="context-line">
|
||
<li onclick="toggle('pre126073041781760', 'post126073041781760')"><pre> template = loader.get_template(name, skip=skip)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</pre> <span>…</span></li>
|
||
</ol>
|
||
|
||
<ol start='160' class="post-context" id="post126073041781760">
|
||
|
||
<li onclick="toggle('pre126073041781760', 'post126073041781760')"><pre> return template, template.origin</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041781760', 'post126073041781760')"><pre> except TemplateDoesNotExist as e:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041781760', 'post126073041781760')"><pre> tried.extend(e.tried)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041781760', 'post126073041781760')"><pre> raise TemplateDoesNotExist(name, tried=tried)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041781760', 'post126073041781760')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041781760', 'post126073041781760')"><pre> def from_string(self, template_code):</pre></li>
|
||
|
||
</ol>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<details>
|
||
<summary class="commands">Local vars</summary>
|
||
|
||
<table class="vars" id="v126073041781760">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>dirs</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>loader</td>
|
||
<td class="code"><pre><django.template.loaders.cached.Loader object at 0x72a9b002d190></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>name</td>
|
||
<td class="code"><pre>'surveys/public_form.html'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>self</td>
|
||
<td class="code"><pre><Engine: dirs=[PosixPath('/home/ismail/projects/HH/templates')] app_dirs=True context_processors=['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', 'django.template.context_processors.i18n', 'apps.core.context_processors.sidebar_counts', 'apps.core.context_processors.hospital_context'] debug=True loaders=[('django.template.loaders.cached.Loader', ['django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader'])] string_if_invalid='' file_charset='utf-8' libraries={'cache': 'django.templatetags.cache', 'i18n': 'django.templatetags.i18n', 'l10n': 'django.templatetags.l10n', 'static': 'django.templatetags.static', 'tz': 'django.templatetags.tz', 'admin_list': 'django.contrib.admin.templatetags.admin_list', 'admin_modify': 'django.contrib.admin.templatetags.admin_modify', 'admin_urls': 'django.contrib.admin.templatetags.admin_urls', 'log': 'django.contrib.admin.templatetags.log', 'auth': 'django.contrib.auth.templatetags.auth', 'rest_framework': 'rest_framework.templatetags.rest_framework', 'hospital_filters': 'apps.core.templatetags.hospital_filters', 'math': 'apps.complaints.templatetags.math', 'action_icons': 'apps.social.templatetags.action_icons', 'social_filters': 'apps.social.templatetags.social_filters', 'social_icons': 'apps.social.templatetags.social_icons', 'star_rating': 'apps.social.templatetags.star_rating', 'sentiment_tags': 'apps.ai_engine.templatetags.sentiment_tags', 'standards_filters': 'apps.standards.templatetags.standards_filters', 'debugger_tags': 'django_extensions.templatetags.debugger_tags', 'highlighting': 'django_extensions.templatetags.highlighting', 'indent_text': 'django_extensions.templatetags.indent_text', 'syntax_color': 'django_extensions.templatetags.syntax_color', 'widont': 'django_extensions.templatetags.widont'} builtins=['django.template.defaulttags', 'django.template.defaultfilters', 'django.template.loader_tags'] autoescape=True></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>skip</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>tried</td>
|
||
<td class="code"><pre>[]</pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</details>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="frame django">
|
||
|
||
<code class="fname">/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/loaders/cached.py</code>, line 57, in get_template
|
||
|
||
|
||
|
||
<div class="context" id="c126073041793536">
|
||
|
||
<ol start="50" class="pre-context" id="pre126073041793536">
|
||
|
||
<li onclick="toggle('pre126073041793536', 'post126073041793536')"><pre> if isinstance(cached, type) and issubclass(cached, TemplateDoesNotExist):</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041793536', 'post126073041793536')"><pre> raise cached(template_name)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041793536', 'post126073041793536')"><pre> elif isinstance(cached, TemplateDoesNotExist):</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041793536', 'post126073041793536')"><pre> raise copy_exception(cached)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041793536', 'post126073041793536')"><pre> return cached</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041793536', 'post126073041793536')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041793536', 'post126073041793536')"><pre> try:</pre></li>
|
||
|
||
</ol>
|
||
|
||
<ol start="57" class="context-line">
|
||
<li onclick="toggle('pre126073041793536', 'post126073041793536')"><pre> template = super().get_template(template_name, skip)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</pre> <span>…</span></li>
|
||
</ol>
|
||
|
||
<ol start='58' class="post-context" id="post126073041793536">
|
||
|
||
<li onclick="toggle('pre126073041793536', 'post126073041793536')"><pre> except TemplateDoesNotExist as e:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041793536', 'post126073041793536')"><pre> self.get_template_cache[key] = (</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041793536', 'post126073041793536')"><pre> copy_exception(e) if self.engine.debug else TemplateDoesNotExist</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041793536', 'post126073041793536')"><pre> )</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041793536', 'post126073041793536')"><pre> raise</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041793536', 'post126073041793536')"><pre> else:</pre></li>
|
||
|
||
</ol>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<details>
|
||
<summary class="commands">Local vars</summary>
|
||
|
||
<table class="vars" id="v126073041793536">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>__class__</td>
|
||
<td class="code"><pre><class 'django.template.loaders.cached.Loader'></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>cached</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>key</td>
|
||
<td class="code"><pre>'surveys/public_form.html'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>self</td>
|
||
<td class="code"><pre><django.template.loaders.cached.Loader object at 0x72a9b002d190></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>skip</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>template_name</td>
|
||
<td class="code"><pre>'surveys/public_form.html'</pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</details>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="frame django">
|
||
|
||
<code class="fname">/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/loaders/base.py</code>, line 28, in get_template
|
||
|
||
|
||
|
||
<div class="context" id="c126073041795264">
|
||
|
||
<ol start="21" class="pre-context" id="pre126073041795264">
|
||
|
||
<li onclick="toggle('pre126073041795264', 'post126073041795264')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041795264', 'post126073041795264')"><pre> try:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041795264', 'post126073041795264')"><pre> contents = self.get_contents(origin)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041795264', 'post126073041795264')"><pre> except TemplateDoesNotExist:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041795264', 'post126073041795264')"><pre> tried.append((origin, "Source does not exist"))</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041795264', 'post126073041795264')"><pre> continue</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041795264', 'post126073041795264')"><pre> else:</pre></li>
|
||
|
||
</ol>
|
||
|
||
<ol start="28" class="context-line">
|
||
<li onclick="toggle('pre126073041795264', 'post126073041795264')"><pre> return Template(
|
||
</pre> <span>…</span></li>
|
||
</ol>
|
||
|
||
<ol start='29' class="post-context" id="post126073041795264">
|
||
|
||
<li onclick="toggle('pre126073041795264', 'post126073041795264')"><pre> contents,</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041795264', 'post126073041795264')"><pre> origin,</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041795264', 'post126073041795264')"><pre> origin.template_name,</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041795264', 'post126073041795264')"><pre> self.engine,</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041795264', 'post126073041795264')"><pre> )</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041795264', 'post126073041795264')"><pre></pre></li>
|
||
|
||
</ol>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<details>
|
||
<summary class="commands">Local vars</summary>
|
||
|
||
<table class="vars" id="v126073041795264">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>contents</td>
|
||
<td class="code"><pre>('{% load i18n %}\n'
|
||
'<!DOCTYPE html>\n'
|
||
'<html lang="{{ language }}" dir="{% if language == \'ar\' %}rtl{% else '
|
||
'%}ltr{% endif %}">\n'
|
||
'<head>\n'
|
||
' <meta charset="UTF-8">\n'
|
||
' <meta name="viewport" content="width=device-width, initial-scale=1.0, '
|
||
'maximum-scale=1.0, user-scalable=no">\n'
|
||
" <title>{% if language == 'ar' %}استبيان رضا المرضى{% else %}Patient "
|
||
'Satisfaction Survey{% endif %} - PX360</title>\n'
|
||
' \n'
|
||
' <!-- Bootstrap 5 CSS -->\n'
|
||
' <link '
|
||
'href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap{% if '
|
||
'language == \'ar\' %}.rtl{% endif %}.min.css" rel="stylesheet">\n'
|
||
' <!-- Bootstrap Icons -->\n'
|
||
' <link '
|
||
'href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.0/font/bootstrap-icons.css" '
|
||
'rel="stylesheet">\n'
|
||
' \n'
|
||
' <style>\n'
|
||
' :root {\n'
|
||
' --primary-color: #667eea;\n'
|
||
' --secondary-color: #764ba2;\n'
|
||
' --success-color: #4caf50;\n'
|
||
' --warning-color: #ff9800;\n'
|
||
' --danger-color: #f44336;\n'
|
||
' }\n'
|
||
' \n'
|
||
' body {\n'
|
||
' background: linear-gradient(135deg, var(--primary-color) 0%, '
|
||
'var(--secondary-color) 100%);\n'
|
||
' min-height: 100vh;\n'
|
||
" font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', "
|
||
"Roboto, 'Helvetica Neue', Arial, sans-serif;\n"
|
||
" {% if language == 'ar' %}\n"
|
||
" font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n"
|
||
' {% endif %}\n'
|
||
' }\n'
|
||
' \n'
|
||
' .survey-container {\n'
|
||
' max-width: 600px;\n'
|
||
' margin: 20px auto;\n'
|
||
' padding: 0 15px;\n'
|
||
' }\n'
|
||
' \n'
|
||
' .survey-card {\n'
|
||
' background: white;\n'
|
||
' border-radius: 20px;\n'
|
||
' box-shadow: 0 10px 40px rgba(0,0,0,0.2);\n'
|
||
' overflow: hidden;\n'
|
||
' margin-bottom: 20px;\n'
|
||
' }\n'
|
||
' \n'
|
||
' .survey-header {\n'
|
||
' background: linear-gradient(135deg, var(--primary-color) 0%, '
|
||
'var(--secondary-color) 100%);\n'
|
||
' color: white;\n'
|
||
' padding: 30px 20px;\n'
|
||
' text-align: center;\n'
|
||
' }\n'
|
||
' \n'
|
||
' .survey-header h1 {\n'
|
||
' font-size: 1.5rem;\n'
|
||
' font-weight: 600;\n'
|
||
' margin-bottom: 10px;\n'
|
||
' }\n'
|
||
' \n'
|
||
' .survey-header p {\n'
|
||
' font-size: 0.9rem;\n'
|
||
' opacity: 0.9;\n'
|
||
' margin-bottom: 0;\n'
|
||
' }\n'
|
||
' \n'
|
||
' .progress-bar-container {\n'
|
||
' background: rgba(255,255,255,0.2);\n'
|
||
' height: 8px;\n'
|
||
' border-radius: 4px;\n'
|
||
' margin-top: 15px;\n'
|
||
' overflow: hidden;\n'
|
||
' }\n'
|
||
' \n'
|
||
' .progress-bar-fill {\n'
|
||
' background: white;\n'
|
||
' height: 100%;\n'
|
||
' border-radius: 4px;\n'
|
||
' transition: width 0.3s ease;\n'
|
||
' }\n'
|
||
' \n'
|
||
' .survey-body {\n'
|
||
' padding: 30px 20px;\n'
|
||
' }\n'
|
||
' \n'
|
||
' .question-card {\n'
|
||
' margin-bottom: 30px;\n'
|
||
' padding-bottom: 30px;\n'
|
||
' border-bottom: 1px solid #e0e0e0;\n'
|
||
' }\n'
|
||
' \n'
|
||
' .question-card:last-child {\n'
|
||
' border-bottom: none;\n'
|
||
' margin-bottom: 0;\n'
|
||
' padding-bottom: 0;\n'
|
||
' }\n'
|
||
' \n'
|
||
' .question-number {\n'
|
||
' display: inline-block;\n'
|
||
' background: var(--primary-color);\n'
|
||
' color: white;\n'
|
||
' width: 28px;\n'
|
||
' height: 28px;\n'
|
||
' border-radius: 50%;\n'
|
||
' text-align: center;\n'
|
||
' line-height: 28px;\n'
|
||
' font-size: 0.85rem;\n'
|
||
' font-weight: 600;\n'
|
||
' margin-bottom: 10px;\n'
|
||
' }\n'
|
||
' \n'
|
||
' .question-text {\n'
|
||
' font-size: 1.1rem;\n'
|
||
' font-weight: 500;… <trimmed 26615 bytes string></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>origin</td>
|
||
<td class="code"><pre><Origin name='/home/ismail/projects/HH/templates/surveys/public_form.html'></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>self</td>
|
||
<td class="code"><pre><django.template.loaders.cached.Loader object at 0x72a9b002d190></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>skip</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>template_name</td>
|
||
<td class="code"><pre>'surveys/public_form.html'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>tried</td>
|
||
<td class="code"><pre>[]</pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</details>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="frame django">
|
||
|
||
<code class="fname">/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/base.py</code>, line 157, in __init__
|
||
|
||
|
||
|
||
<div class="context" id="c126073041781120">
|
||
|
||
<ol start="150" class="pre-context" id="pre126073041781120">
|
||
|
||
<li onclick="toggle('pre126073041781120', 'post126073041781120')"><pre> engine = Engine.get_default()</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041781120', 'post126073041781120')"><pre> if origin is None:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041781120', 'post126073041781120')"><pre> origin = Origin(UNKNOWN_SOURCE)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041781120', 'post126073041781120')"><pre> self.name = name</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041781120', 'post126073041781120')"><pre> self.origin = origin</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041781120', 'post126073041781120')"><pre> self.engine = engine</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041781120', 'post126073041781120')"><pre> self.source = str(template_string) # May be lazy.</pre></li>
|
||
|
||
</ol>
|
||
|
||
<ol start="157" class="context-line">
|
||
<li onclick="toggle('pre126073041781120', 'post126073041781120')"><pre> self.nodelist = self.compile_nodelist()
|
||
^^^^^^^^^^^^^^^^^^^^^^^</pre> <span>…</span></li>
|
||
</ol>
|
||
|
||
<ol start='158' class="post-context" id="post126073041781120">
|
||
|
||
<li onclick="toggle('pre126073041781120', 'post126073041781120')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041781120', 'post126073041781120')"><pre> def __repr__(self):</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041781120', 'post126073041781120')"><pre> return '<%s template_string="%s...">' % (</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041781120', 'post126073041781120')"><pre> self.__class__.__qualname__,</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041781120', 'post126073041781120')"><pre> self.source[:20].replace("\n", ""),</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041781120', 'post126073041781120')"><pre> )</pre></li>
|
||
|
||
</ol>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<details>
|
||
<summary class="commands">Local vars</summary>
|
||
|
||
<table class="vars" id="v126073041781120">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>engine</td>
|
||
<td class="code"><pre><Engine: dirs=[PosixPath('/home/ismail/projects/HH/templates')] app_dirs=True context_processors=['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', 'django.template.context_processors.i18n', 'apps.core.context_processors.sidebar_counts', 'apps.core.context_processors.hospital_context'] debug=True loaders=[('django.template.loaders.cached.Loader', ['django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader'])] string_if_invalid='' file_charset='utf-8' libraries={'cache': 'django.templatetags.cache', 'i18n': 'django.templatetags.i18n', 'l10n': 'django.templatetags.l10n', 'static': 'django.templatetags.static', 'tz': 'django.templatetags.tz', 'admin_list': 'django.contrib.admin.templatetags.admin_list', 'admin_modify': 'django.contrib.admin.templatetags.admin_modify', 'admin_urls': 'django.contrib.admin.templatetags.admin_urls', 'log': 'django.contrib.admin.templatetags.log', 'auth': 'django.contrib.auth.templatetags.auth', 'rest_framework': 'rest_framework.templatetags.rest_framework', 'hospital_filters': 'apps.core.templatetags.hospital_filters', 'math': 'apps.complaints.templatetags.math', 'action_icons': 'apps.social.templatetags.action_icons', 'social_filters': 'apps.social.templatetags.social_filters', 'social_icons': 'apps.social.templatetags.social_icons', 'star_rating': 'apps.social.templatetags.star_rating', 'sentiment_tags': 'apps.ai_engine.templatetags.sentiment_tags', 'standards_filters': 'apps.standards.templatetags.standards_filters', 'debugger_tags': 'django_extensions.templatetags.debugger_tags', 'highlighting': 'django_extensions.templatetags.highlighting', 'indent_text': 'django_extensions.templatetags.indent_text', 'syntax_color': 'django_extensions.templatetags.syntax_color', 'widont': 'django_extensions.templatetags.widont'} builtins=['django.template.defaulttags', 'django.template.defaultfilters', 'django.template.loader_tags'] autoescape=True></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>name</td>
|
||
<td class="code"><pre>'surveys/public_form.html'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>origin</td>
|
||
<td class="code"><pre><Origin name='/home/ismail/projects/HH/templates/surveys/public_form.html'></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>self</td>
|
||
<td class="code"><pre><Template template_string="{% load i18n %}<!DO..."></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>template_string</td>
|
||
<td class="code"><pre>('{% load i18n %}\n'
|
||
'<!DOCTYPE html>\n'
|
||
'<html lang="{{ language }}" dir="{% if language == \'ar\' %}rtl{% else '
|
||
'%}ltr{% endif %}">\n'
|
||
'<head>\n'
|
||
' <meta charset="UTF-8">\n'
|
||
' <meta name="viewport" content="width=device-width, initial-scale=1.0, '
|
||
'maximum-scale=1.0, user-scalable=no">\n'
|
||
" <title>{% if language == 'ar' %}استبيان رضا المرضى{% else %}Patient "
|
||
'Satisfaction Survey{% endif %} - PX360</title>\n'
|
||
' \n'
|
||
' <!-- Bootstrap 5 CSS -->\n'
|
||
' <link '
|
||
'href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap{% if '
|
||
'language == \'ar\' %}.rtl{% endif %}.min.css" rel="stylesheet">\n'
|
||
' <!-- Bootstrap Icons -->\n'
|
||
' <link '
|
||
'href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.0/font/bootstrap-icons.css" '
|
||
'rel="stylesheet">\n'
|
||
' \n'
|
||
' <style>\n'
|
||
' :root {\n'
|
||
' --primary-color: #667eea;\n'
|
||
' --secondary-color: #764ba2;\n'
|
||
' --success-color: #4caf50;\n'
|
||
' --warning-color: #ff9800;\n'
|
||
' --danger-color: #f44336;\n'
|
||
' }\n'
|
||
' \n'
|
||
' body {\n'
|
||
' background: linear-gradient(135deg, var(--primary-color) 0%, '
|
||
'var(--secondary-color) 100%);\n'
|
||
' min-height: 100vh;\n'
|
||
" font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', "
|
||
"Roboto, 'Helvetica Neue', Arial, sans-serif;\n"
|
||
" {% if language == 'ar' %}\n"
|
||
" font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n"
|
||
' {% endif %}\n'
|
||
' }\n'
|
||
' \n'
|
||
' .survey-container {\n'
|
||
' max-width: 600px;\n'
|
||
' margin: 20px auto;\n'
|
||
' padding: 0 15px;\n'
|
||
' }\n'
|
||
' \n'
|
||
' .survey-card {\n'
|
||
' background: white;\n'
|
||
' border-radius: 20px;\n'
|
||
' box-shadow: 0 10px 40px rgba(0,0,0,0.2);\n'
|
||
' overflow: hidden;\n'
|
||
' margin-bottom: 20px;\n'
|
||
' }\n'
|
||
' \n'
|
||
' .survey-header {\n'
|
||
' background: linear-gradient(135deg, var(--primary-color) 0%, '
|
||
'var(--secondary-color) 100%);\n'
|
||
' color: white;\n'
|
||
' padding: 30px 20px;\n'
|
||
' text-align: center;\n'
|
||
' }\n'
|
||
' \n'
|
||
' .survey-header h1 {\n'
|
||
' font-size: 1.5rem;\n'
|
||
' font-weight: 600;\n'
|
||
' margin-bottom: 10px;\n'
|
||
' }\n'
|
||
' \n'
|
||
' .survey-header p {\n'
|
||
' font-size: 0.9rem;\n'
|
||
' opacity: 0.9;\n'
|
||
' margin-bottom: 0;\n'
|
||
' }\n'
|
||
' \n'
|
||
' .progress-bar-container {\n'
|
||
' background: rgba(255,255,255,0.2);\n'
|
||
' height: 8px;\n'
|
||
' border-radius: 4px;\n'
|
||
' margin-top: 15px;\n'
|
||
' overflow: hidden;\n'
|
||
' }\n'
|
||
' \n'
|
||
' .progress-bar-fill {\n'
|
||
' background: white;\n'
|
||
' height: 100%;\n'
|
||
' border-radius: 4px;\n'
|
||
' transition: width 0.3s ease;\n'
|
||
' }\n'
|
||
' \n'
|
||
' .survey-body {\n'
|
||
' padding: 30px 20px;\n'
|
||
' }\n'
|
||
' \n'
|
||
' .question-card {\n'
|
||
' margin-bottom: 30px;\n'
|
||
' padding-bottom: 30px;\n'
|
||
' border-bottom: 1px solid #e0e0e0;\n'
|
||
' }\n'
|
||
' \n'
|
||
' .question-card:last-child {\n'
|
||
' border-bottom: none;\n'
|
||
' margin-bottom: 0;\n'
|
||
' padding-bottom: 0;\n'
|
||
' }\n'
|
||
' \n'
|
||
' .question-number {\n'
|
||
' display: inline-block;\n'
|
||
' background: var(--primary-color);\n'
|
||
' color: white;\n'
|
||
' width: 28px;\n'
|
||
' height: 28px;\n'
|
||
' border-radius: 50%;\n'
|
||
' text-align: center;\n'
|
||
' line-height: 28px;\n'
|
||
' font-size: 0.85rem;\n'
|
||
' font-weight: 600;\n'
|
||
' margin-bottom: 10px;\n'
|
||
' }\n'
|
||
' \n'
|
||
' .question-text {\n'
|
||
' font-size: 1.1rem;\n'
|
||
' font-weight: 500;… <trimmed 26615 bytes string></pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</details>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="frame django">
|
||
|
||
<code class="fname">/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/base.py</code>, line 199, in compile_nodelist
|
||
|
||
|
||
|
||
<div class="context" id="c126073041789312">
|
||
|
||
<ol start="192" class="pre-context" id="pre126073041789312">
|
||
|
||
<li onclick="toggle('pre126073041789312', 'post126073041789312')"><pre> tokens,</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789312', 'post126073041789312')"><pre> self.engine.template_libraries,</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789312', 'post126073041789312')"><pre> self.engine.template_builtins,</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789312', 'post126073041789312')"><pre> self.origin,</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789312', 'post126073041789312')"><pre> )</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789312', 'post126073041789312')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789312', 'post126073041789312')"><pre> try:</pre></li>
|
||
|
||
</ol>
|
||
|
||
<ol start="199" class="context-line">
|
||
<li onclick="toggle('pre126073041789312', 'post126073041789312')"><pre> nodelist = parser.parse()
|
||
^^^^^^^^^^^^^^</pre> <span>…</span></li>
|
||
</ol>
|
||
|
||
<ol start='200' class="post-context" id="post126073041789312">
|
||
|
||
<li onclick="toggle('pre126073041789312', 'post126073041789312')"><pre> self.extra_data = parser.extra_data</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789312', 'post126073041789312')"><pre> return nodelist</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789312', 'post126073041789312')"><pre> except Exception as e:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789312', 'post126073041789312')"><pre> if self.engine.debug:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789312', 'post126073041789312')"><pre> e.template_debug = self.get_exception_info(e, e.token)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041789312', 'post126073041789312')"><pre> if (</pre></li>
|
||
|
||
</ol>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<details>
|
||
<summary class="commands">Local vars</summary>
|
||
|
||
<table class="vars" id="v126073041789312">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>lexer</td>
|
||
<td class="code"><pre><DebugLexer template_string="{% load i18n %}<!DO...", verbatim=False></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>parser</td>
|
||
<td class="code"><pre><Parser tokens=[<Text token: "'); ...">, <Block token: "endif...">, <Text token: "Please answer all re...">, <Block token: "else...">, <Text token: "يرجى الإجابة على جمي...">, <Block token: "if language == "ar"...">, <Text token: "; const ...">, <Var token: "total_questions...">, <Text token: " </small...">, <Block token: "endif...">, <Text token: " Tha...">, <Block token: "else...">, <Text token: " شكر...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: " ...">, <Block token: "else...">, <Text token: " ...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endif...">, <Text token: ""></textarea> ...">, <Block token: "endif...">, <Text token: "Enter your answer he...">, <Block token: "else...">, <Text token: "أدخل إجابتك هنا...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" class="form-contro...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: ""> ...">, <Block token: "endif...">, <Text token: "Enter your answer he...">, <Block token: "else...">, <Text token: "أدخل إجابتك هنا...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" class="form-contro...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endif...">, <Text token: " ...">, <Var token: "choice.label...">, <Text token: " ...">, <Block token: "else...">, <Text token: " ...">, <Var token: "choice.label_ar...">, <Text token: " ...">, <Block token: "if language == 'ar' ...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "choice.value...">, <Text token: "" value="...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "for choice in questi...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: "> ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "question.id...">, <Text token: "" id="question_...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "No...">, <Block token: "else...">, <Text token: "لا...">, <Block token: "if language == 'ar'...">, <Text token: "')"> ...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "Yes...">, <Block token: "else...">, <Text token: "نعم...">, <Block token: "if language == 'ar'...">, <Text token: "')"> ...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endwith...">, <Text token: "</span> ...">, <Var token: "parts.1...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "parts.0...">, <Text token: "" value="...">, <Var token: "question.id...">, <Text token: " … <trimmed 4195 bytes string></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>raw_message</td>
|
||
<td class="code"><pre>"Invalid filter: 'split'"</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>self</td>
|
||
<td class="code"><pre><Template template_string="{% load i18n %}<!DO..."></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>tokens</td>
|
||
<td class="code"><pre>[<Block token: "load i18n...">,
|
||
<Text token: "<!DOCTYPE html><ht...">,
|
||
<Var token: "language...">,
|
||
<Text token: "" dir="...">,
|
||
<Block token: "if language == 'ar'...">,
|
||
<Text token: "rtl...">,
|
||
<Block token: "else...">,
|
||
<Text token: "ltr...">,
|
||
<Block token: "endif...">,
|
||
<Text token: ""><head> <meta ...">,
|
||
<Block token: "if language == 'ar'...">,
|
||
<Text token: "استبيان رضا المرضى...">,
|
||
<Block token: "else...">,
|
||
<Text token: "Patient Satisfaction...">,
|
||
<Block token: "endif...">,
|
||
<Text token: " - PX360</title> ...">,
|
||
<Block token: "if language == 'ar'...">,
|
||
<Text token: ".rtl...">,
|
||
<Block token: "endif...">,
|
||
<Text token: ".min.css" rel="style...">,
|
||
<Block token: "if language == 'ar'...">,
|
||
<Text token: " font-fa...">,
|
||
<Block token: "endif...">,
|
||
<Text token: " } ...">,
|
||
<Block token: "if language == 'ar'...">,
|
||
<Text token: "left...">,
|
||
<Block token: "else...">,
|
||
<Text token: "right...">,
|
||
<Block token: "endif...">,
|
||
<Text token: ": 20px; ...">,
|
||
<Block token: "if language == 'ar'...">,
|
||
<Text token: " <a href="?l...">,
|
||
<Block token: "else...">,
|
||
<Text token: " <a href="?l...">,
|
||
<Block token: "endif...">,
|
||
<Text token: " </div> <di...">,
|
||
<Block token: "if language == 'ar'...">,
|
||
<Text token: " ...">,
|
||
<Var token: "survey.survey_templa...">,
|
||
<Text token: " ...">,
|
||
<Block token: "else...">,
|
||
<Text token: " ...">,
|
||
<Var token: "survey.survey_templa...">,
|
||
<Text token: " ...">,
|
||
<Block token: "endif...">,
|
||
<Text token: " </h...">,
|
||
<Block token: "if language == 'ar'...">,
|
||
<Text token: " ...">,
|
||
<Var token: "survey.survey_templa...">,
|
||
<Text token: " ...">,
|
||
<Block token: "else...">,
|
||
<Text token: " ...">,
|
||
<Var token: "survey.survey_templa...">,
|
||
<Text token: " ...">,
|
||
<Block token: "endif...">,
|
||
<Text token: " </p...">,
|
||
<Block token: "if errors...">,
|
||
<Text token: " <di...">,
|
||
<Block token: "if language == 'ar'...">,
|
||
<Text token: " ...">,
|
||
<Block token: "else...">,
|
||
<Text token: " ...">,
|
||
<Block token: "endif...">,
|
||
<Text token: " ...">,
|
||
<Block token: "for error in errors...">,
|
||
<Text token: " ...">,
|
||
<Var token: "error...">,
|
||
<Text token: "</li> ...">,
|
||
<Block token: "endfor...">,
|
||
<Text token: " ...">,
|
||
<Block token: "endif...">,
|
||
<Text token: " <!...">,
|
||
<Block token: "csrf_token...">,
|
||
<Text token: " ...">,
|
||
<Var token: "language...">,
|
||
<Text token: ""> ...">,
|
||
<Block token: "for question in ques...">,
|
||
<Text token: " ...">,
|
||
<Var token: "forloop.counter...">,
|
||
<Text token: ""> ...">,
|
||
<Var token: "forloop.counter...">,
|
||
<Text token: "</div> ...">,
|
||
<Block token: "if language == 'ar' ...">,
|
||
<Text token: " ...">,
|
||
<Var token: "question.text_ar...">,
|
||
<Text token: " ...">,
|
||
<Block token: "else...">,
|
||
<Text token: " ...">,
|
||
<Var token: "question.text...">,
|
||
<Text token: " ...">,
|
||
<Block token: "endif...">,
|
||
<Text token: " ...">,
|
||
<Block token: "if question.is_requi...">,
|
||
<Text token: " ...">,
|
||
<Block token: "endif...">,
|
||
<Text token: " ...">,
|
||
<Block token: "if question.help_tex...">,
|
||
<Text token: " ...">,
|
||
<Block token: "if language == 'ar' ...">,
|
||
<Text token: " ...">,
|
||
<Var token: "question.help_text_a...">,
|
||
<Text token: " ...">,
|
||
<Block token: "else...">,
|
||
<Text token: " ...">,
|
||
<Var token: "question.help_text...">,
|
||
<Text token: " ...">,
|
||
<Block token: "endif...">,
|
||
<Text token: " ...">,
|
||
<Block token: "endif...">,
|
||
<Text token: " ...">,
|
||
<Block token: "if question.question...">,
|
||
<Text token: " … <trimmed 10298 bytes string></pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</details>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="frame django">
|
||
|
||
<code class="fname">/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/base.py</code>, line 585, in parse
|
||
|
||
|
||
|
||
<div class="context" id="c126073041791424">
|
||
|
||
<ol start="578" class="pre-context" id="pre126073041791424">
|
||
|
||
<li onclick="toggle('pre126073041791424', 'post126073041791424')"><pre> except KeyError:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041791424', 'post126073041791424')"><pre> self.invalid_block_tag(token, command, parse_until)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041791424', 'post126073041791424')"><pre> # Compile the callback into a node object and add it to</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041791424', 'post126073041791424')"><pre> # the node list.</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041791424', 'post126073041791424')"><pre> try:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041791424', 'post126073041791424')"><pre> compiled_result = compile_func(self, token)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041791424', 'post126073041791424')"><pre> except Exception as e:</pre></li>
|
||
|
||
</ol>
|
||
|
||
<ol start="585" class="context-line">
|
||
<li onclick="toggle('pre126073041791424', 'post126073041791424')"><pre> raise self.error(token, e)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^</pre> <span>…</span></li>
|
||
</ol>
|
||
|
||
<ol start='586' class="post-context" id="post126073041791424">
|
||
|
||
<li onclick="toggle('pre126073041791424', 'post126073041791424')"><pre> self.extend_nodelist(nodelist, compiled_result, token)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041791424', 'post126073041791424')"><pre> # Compile success. Remove the token from the command stack.</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041791424', 'post126073041791424')"><pre> self.command_stack.pop()</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041791424', 'post126073041791424')"><pre> if parse_until:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041791424', 'post126073041791424')"><pre> self.unclosed_block_tag(parse_until)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041791424', 'post126073041791424')"><pre> return nodelist</pre></li>
|
||
|
||
</ol>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<details>
|
||
<summary class="commands">Local vars</summary>
|
||
|
||
<table class="vars" id="v126073041791424">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>command</td>
|
||
<td class="code"><pre>'for'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>compile_func</td>
|
||
<td class="code"><pre><function do_for at 0x72a9b47325c0></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>compiled_result</td>
|
||
<td class="code"><pre><django.template.defaulttags.CsrfTokenNode object at 0x72a9aadd9d60></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>filter_expression</td>
|
||
<td class="code"><pre><FilterExpression 'language'></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>nodelist</td>
|
||
<td class="code"><pre>[<django.template.defaulttags.LoadNode object at 0x72a9aab643e0>,
|
||
<TextNode: '\n<!DOCTYPE html>\n<html la'>,
|
||
<Variable Node: language>,
|
||
<TextNode: '" dir="'>,
|
||
<IfNode>,
|
||
<TextNode: '">\n<head>\n <meta chars'>,
|
||
<IfNode>,
|
||
<TextNode: ' - PX360</title>\n \n '>,
|
||
<IfNode>,
|
||
<TextNode: '.min.css" rel="stylesheet'>,
|
||
<IfNode>,
|
||
<TextNode: '\n }\n \n '>,
|
||
<IfNode>,
|
||
<TextNode: ': 20px;\n backg'>,
|
||
<IfNode>,
|
||
<TextNode: '\n </div>\n\n <div cla'>,
|
||
<IfNode>,
|
||
<TextNode: '\n </h1>\n '>,
|
||
<IfNode>,
|
||
<TextNode: '\n </p>\n '>,
|
||
<IfNode>,
|
||
<TextNode: '\n\n <!-- Su'>,
|
||
<django.template.defaulttags.CsrfTokenNode object at 0x72a9aadd9d60>,
|
||
<TextNode: '\n <inp'>,
|
||
<Variable Node: language>,
|
||
<TextNode: '">\n \n '>]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>parse_until</td>
|
||
<td class="code"><pre>[]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>self</td>
|
||
<td class="code"><pre><Parser tokens=[<Text token: "'); ...">, <Block token: "endif...">, <Text token: "Please answer all re...">, <Block token: "else...">, <Text token: "يرجى الإجابة على جمي...">, <Block token: "if language == "ar"...">, <Text token: "; const ...">, <Var token: "total_questions...">, <Text token: " </small...">, <Block token: "endif...">, <Text token: " Tha...">, <Block token: "else...">, <Text token: " شكر...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: " ...">, <Block token: "else...">, <Text token: " ...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endif...">, <Text token: ""></textarea> ...">, <Block token: "endif...">, <Text token: "Enter your answer he...">, <Block token: "else...">, <Text token: "أدخل إجابتك هنا...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" class="form-contro...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: ""> ...">, <Block token: "endif...">, <Text token: "Enter your answer he...">, <Block token: "else...">, <Text token: "أدخل إجابتك هنا...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" class="form-contro...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endif...">, <Text token: " ...">, <Var token: "choice.label...">, <Text token: " ...">, <Block token: "else...">, <Text token: " ...">, <Var token: "choice.label_ar...">, <Text token: " ...">, <Block token: "if language == 'ar' ...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "choice.value...">, <Text token: "" value="...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "for choice in questi...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: "> ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "question.id...">, <Text token: "" id="question_...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "No...">, <Block token: "else...">, <Text token: "لا...">, <Block token: "if language == 'ar'...">, <Text token: "')"> ...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "Yes...">, <Block token: "else...">, <Text token: "نعم...">, <Block token: "if language == 'ar'...">, <Text token: "')"> ...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endwith...">, <Text token: "</span> ...">, <Var token: "parts.1...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "parts.0...">, <Text token: "" value="...">, <Var token: "question.id...">, <Text token: " … <trimmed 4195 bytes string></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>token</td>
|
||
<td class="code"><pre><Block token: "for question in ques..."></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>token_type</td>
|
||
<td class="code"><pre>2</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>var_node</td>
|
||
<td class="code"><pre><Variable Node: language></pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</details>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="frame django">
|
||
|
||
<code class="fname">/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/base.py</code>, line 583, in parse
|
||
|
||
|
||
|
||
<div class="context" id="c126073041782976">
|
||
|
||
<ol start="576" class="pre-context" id="pre126073041782976">
|
||
|
||
<li onclick="toggle('pre126073041782976', 'post126073041782976')"><pre> try:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041782976', 'post126073041782976')"><pre> compile_func = self.tags[command]</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041782976', 'post126073041782976')"><pre> except KeyError:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041782976', 'post126073041782976')"><pre> self.invalid_block_tag(token, command, parse_until)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041782976', 'post126073041782976')"><pre> # Compile the callback into a node object and add it to</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041782976', 'post126073041782976')"><pre> # the node list.</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041782976', 'post126073041782976')"><pre> try:</pre></li>
|
||
|
||
</ol>
|
||
|
||
<ol start="583" class="context-line">
|
||
<li onclick="toggle('pre126073041782976', 'post126073041782976')"><pre> compiled_result = compile_func(self, token)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^</pre> <span>…</span></li>
|
||
</ol>
|
||
|
||
<ol start='584' class="post-context" id="post126073041782976">
|
||
|
||
<li onclick="toggle('pre126073041782976', 'post126073041782976')"><pre> except Exception as e:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041782976', 'post126073041782976')"><pre> raise self.error(token, e)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041782976', 'post126073041782976')"><pre> self.extend_nodelist(nodelist, compiled_result, token)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041782976', 'post126073041782976')"><pre> # Compile success. Remove the token from the command stack.</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041782976', 'post126073041782976')"><pre> self.command_stack.pop()</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041782976', 'post126073041782976')"><pre> if parse_until:</pre></li>
|
||
|
||
</ol>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<details>
|
||
<summary class="commands">Local vars</summary>
|
||
|
||
<table class="vars" id="v126073041782976">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>command</td>
|
||
<td class="code"><pre>'for'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>compile_func</td>
|
||
<td class="code"><pre><function do_for at 0x72a9b47325c0></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>compiled_result</td>
|
||
<td class="code"><pre><django.template.defaulttags.CsrfTokenNode object at 0x72a9aadd9d60></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>filter_expression</td>
|
||
<td class="code"><pre><FilterExpression 'language'></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>nodelist</td>
|
||
<td class="code"><pre>[<django.template.defaulttags.LoadNode object at 0x72a9aab643e0>,
|
||
<TextNode: '\n<!DOCTYPE html>\n<html la'>,
|
||
<Variable Node: language>,
|
||
<TextNode: '" dir="'>,
|
||
<IfNode>,
|
||
<TextNode: '">\n<head>\n <meta chars'>,
|
||
<IfNode>,
|
||
<TextNode: ' - PX360</title>\n \n '>,
|
||
<IfNode>,
|
||
<TextNode: '.min.css" rel="stylesheet'>,
|
||
<IfNode>,
|
||
<TextNode: '\n }\n \n '>,
|
||
<IfNode>,
|
||
<TextNode: ': 20px;\n backg'>,
|
||
<IfNode>,
|
||
<TextNode: '\n </div>\n\n <div cla'>,
|
||
<IfNode>,
|
||
<TextNode: '\n </h1>\n '>,
|
||
<IfNode>,
|
||
<TextNode: '\n </p>\n '>,
|
||
<IfNode>,
|
||
<TextNode: '\n\n <!-- Su'>,
|
||
<django.template.defaulttags.CsrfTokenNode object at 0x72a9aadd9d60>,
|
||
<TextNode: '\n <inp'>,
|
||
<Variable Node: language>,
|
||
<TextNode: '">\n \n '>]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>parse_until</td>
|
||
<td class="code"><pre>[]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>self</td>
|
||
<td class="code"><pre><Parser tokens=[<Text token: "'); ...">, <Block token: "endif...">, <Text token: "Please answer all re...">, <Block token: "else...">, <Text token: "يرجى الإجابة على جمي...">, <Block token: "if language == "ar"...">, <Text token: "; const ...">, <Var token: "total_questions...">, <Text token: " </small...">, <Block token: "endif...">, <Text token: " Tha...">, <Block token: "else...">, <Text token: " شكر...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: " ...">, <Block token: "else...">, <Text token: " ...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endif...">, <Text token: ""></textarea> ...">, <Block token: "endif...">, <Text token: "Enter your answer he...">, <Block token: "else...">, <Text token: "أدخل إجابتك هنا...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" class="form-contro...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: ""> ...">, <Block token: "endif...">, <Text token: "Enter your answer he...">, <Block token: "else...">, <Text token: "أدخل إجابتك هنا...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" class="form-contro...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endif...">, <Text token: " ...">, <Var token: "choice.label...">, <Text token: " ...">, <Block token: "else...">, <Text token: " ...">, <Var token: "choice.label_ar...">, <Text token: " ...">, <Block token: "if language == 'ar' ...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "choice.value...">, <Text token: "" value="...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "for choice in questi...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: "> ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "question.id...">, <Text token: "" id="question_...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "No...">, <Block token: "else...">, <Text token: "لا...">, <Block token: "if language == 'ar'...">, <Text token: "')"> ...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "Yes...">, <Block token: "else...">, <Text token: "نعم...">, <Block token: "if language == 'ar'...">, <Text token: "')"> ...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endwith...">, <Text token: "</span> ...">, <Var token: "parts.1...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "parts.0...">, <Text token: "" value="...">, <Var token: "question.id...">, <Text token: " … <trimmed 4195 bytes string></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>token</td>
|
||
<td class="code"><pre><Block token: "for question in ques..."></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>token_type</td>
|
||
<td class="code"><pre>2</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>var_node</td>
|
||
<td class="code"><pre><Variable Node: language></pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</details>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="frame django">
|
||
|
||
<code class="fname">/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/defaulttags.py</code>, line 894, in do_for
|
||
|
||
|
||
|
||
<div class="context" id="c126073041786624">
|
||
|
||
<ol start="887" class="pre-context" id="pre126073041786624">
|
||
|
||
<li onclick="toggle('pre126073041786624', 'post126073041786624')"><pre> for var in loopvars:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041786624', 'post126073041786624')"><pre> if not var or not invalid_chars.isdisjoint(var):</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041786624', 'post126073041786624')"><pre> raise TemplateSyntaxError(</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041786624', 'post126073041786624')"><pre> "'for' tag received an invalid argument: %s" % token.contents</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041786624', 'post126073041786624')"><pre> )</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041786624', 'post126073041786624')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041786624', 'post126073041786624')"><pre> sequence = parser.compile_filter(bits[in_index + 1])</pre></li>
|
||
|
||
</ol>
|
||
|
||
<ol start="894" class="context-line">
|
||
<li onclick="toggle('pre126073041786624', 'post126073041786624')"><pre> nodelist_loop = parser.parse(
|
||
</pre> <span>…</span></li>
|
||
</ol>
|
||
|
||
<ol start='895' class="post-context" id="post126073041786624">
|
||
|
||
<li onclick="toggle('pre126073041786624', 'post126073041786624')"><pre> (</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041786624', 'post126073041786624')"><pre> "empty",</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041786624', 'post126073041786624')"><pre> "endfor",</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041786624', 'post126073041786624')"><pre> )</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041786624', 'post126073041786624')"><pre> )</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041786624', 'post126073041786624')"><pre> token = parser.next_token()</pre></li>
|
||
|
||
</ol>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<details>
|
||
<summary class="commands">Local vars</summary>
|
||
|
||
<table class="vars" id="v126073041786624">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>bits</td>
|
||
<td class="code"><pre>['for', 'question', 'in', 'questions']</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>in_index</td>
|
||
<td class="code"><pre>-2</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>invalid_chars</td>
|
||
<td class="code"><pre>frozenset({' ', "'", '"', '|'})</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>is_reversed</td>
|
||
<td class="code"><pre>False</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>loopvars</td>
|
||
<td class="code"><pre>['question']</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>parser</td>
|
||
<td class="code"><pre><Parser tokens=[<Text token: "'); ...">, <Block token: "endif...">, <Text token: "Please answer all re...">, <Block token: "else...">, <Text token: "يرجى الإجابة على جمي...">, <Block token: "if language == "ar"...">, <Text token: "; const ...">, <Var token: "total_questions...">, <Text token: " </small...">, <Block token: "endif...">, <Text token: " Tha...">, <Block token: "else...">, <Text token: " شكر...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: " ...">, <Block token: "else...">, <Text token: " ...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endif...">, <Text token: ""></textarea> ...">, <Block token: "endif...">, <Text token: "Enter your answer he...">, <Block token: "else...">, <Text token: "أدخل إجابتك هنا...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" class="form-contro...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: ""> ...">, <Block token: "endif...">, <Text token: "Enter your answer he...">, <Block token: "else...">, <Text token: "أدخل إجابتك هنا...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" class="form-contro...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endif...">, <Text token: " ...">, <Var token: "choice.label...">, <Text token: " ...">, <Block token: "else...">, <Text token: " ...">, <Var token: "choice.label_ar...">, <Text token: " ...">, <Block token: "if language == 'ar' ...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "choice.value...">, <Text token: "" value="...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "for choice in questi...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: "> ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "question.id...">, <Text token: "" id="question_...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "No...">, <Block token: "else...">, <Text token: "لا...">, <Block token: "if language == 'ar'...">, <Text token: "')"> ...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "Yes...">, <Block token: "else...">, <Text token: "نعم...">, <Block token: "if language == 'ar'...">, <Text token: "')"> ...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endwith...">, <Text token: "</span> ...">, <Var token: "parts.1...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "parts.0...">, <Text token: "" value="...">, <Var token: "question.id...">, <Text token: " … <trimmed 4195 bytes string></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>sequence</td>
|
||
<td class="code"><pre><FilterExpression 'questions'></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>token</td>
|
||
<td class="code"><pre><Block token: "for question in ques..."></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>var</td>
|
||
<td class="code"><pre>'question'</pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</details>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="frame django">
|
||
|
||
<code class="fname">/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/base.py</code>, line 585, in parse
|
||
|
||
|
||
|
||
<div class="context" id="c126073041795456">
|
||
|
||
<ol start="578" class="pre-context" id="pre126073041795456">
|
||
|
||
<li onclick="toggle('pre126073041795456', 'post126073041795456')"><pre> except KeyError:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041795456', 'post126073041795456')"><pre> self.invalid_block_tag(token, command, parse_until)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041795456', 'post126073041795456')"><pre> # Compile the callback into a node object and add it to</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041795456', 'post126073041795456')"><pre> # the node list.</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041795456', 'post126073041795456')"><pre> try:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041795456', 'post126073041795456')"><pre> compiled_result = compile_func(self, token)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041795456', 'post126073041795456')"><pre> except Exception as e:</pre></li>
|
||
|
||
</ol>
|
||
|
||
<ol start="585" class="context-line">
|
||
<li onclick="toggle('pre126073041795456', 'post126073041795456')"><pre> raise self.error(token, e)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^</pre> <span>…</span></li>
|
||
</ol>
|
||
|
||
<ol start='586' class="post-context" id="post126073041795456">
|
||
|
||
<li onclick="toggle('pre126073041795456', 'post126073041795456')"><pre> self.extend_nodelist(nodelist, compiled_result, token)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041795456', 'post126073041795456')"><pre> # Compile success. Remove the token from the command stack.</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041795456', 'post126073041795456')"><pre> self.command_stack.pop()</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041795456', 'post126073041795456')"><pre> if parse_until:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041795456', 'post126073041795456')"><pre> self.unclosed_block_tag(parse_until)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041795456', 'post126073041795456')"><pre> return nodelist</pre></li>
|
||
|
||
</ol>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<details>
|
||
<summary class="commands">Local vars</summary>
|
||
|
||
<table class="vars" id="v126073041795456">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>command</td>
|
||
<td class="code"><pre>'if'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>compile_func</td>
|
||
<td class="code"><pre><function do_if at 0x72a9b4732ac0></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>compiled_result</td>
|
||
<td class="code"><pre><IfNode></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>filter_expression</td>
|
||
<td class="code"><pre><FilterExpression 'forloop.counter'></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>nodelist</td>
|
||
<td class="code"><pre>[<TextNode: '\n <div'>,
|
||
<Variable Node: forloop.counter>,
|
||
<TextNode: '">\n '>,
|
||
<Variable Node: forloop.counter>,
|
||
<TextNode: '</div>\n '>,
|
||
<IfNode>,
|
||
<TextNode: '\n '>,
|
||
<IfNode>,
|
||
<TextNode: '\n '>,
|
||
<IfNode>,
|
||
<TextNode: '\n '>]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>parse_until</td>
|
||
<td class="code"><pre>('empty', 'endfor')</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>self</td>
|
||
<td class="code"><pre><Parser tokens=[<Text token: "'); ...">, <Block token: "endif...">, <Text token: "Please answer all re...">, <Block token: "else...">, <Text token: "يرجى الإجابة على جمي...">, <Block token: "if language == "ar"...">, <Text token: "; const ...">, <Var token: "total_questions...">, <Text token: " </small...">, <Block token: "endif...">, <Text token: " Tha...">, <Block token: "else...">, <Text token: " شكر...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: " ...">, <Block token: "else...">, <Text token: " ...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endif...">, <Text token: ""></textarea> ...">, <Block token: "endif...">, <Text token: "Enter your answer he...">, <Block token: "else...">, <Text token: "أدخل إجابتك هنا...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" class="form-contro...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: ""> ...">, <Block token: "endif...">, <Text token: "Enter your answer he...">, <Block token: "else...">, <Text token: "أدخل إجابتك هنا...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" class="form-contro...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endif...">, <Text token: " ...">, <Var token: "choice.label...">, <Text token: " ...">, <Block token: "else...">, <Text token: " ...">, <Var token: "choice.label_ar...">, <Text token: " ...">, <Block token: "if language == 'ar' ...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "choice.value...">, <Text token: "" value="...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "for choice in questi...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: "> ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "question.id...">, <Text token: "" id="question_...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "No...">, <Block token: "else...">, <Text token: "لا...">, <Block token: "if language == 'ar'...">, <Text token: "')"> ...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "Yes...">, <Block token: "else...">, <Text token: "نعم...">, <Block token: "if language == 'ar'...">, <Text token: "')"> ...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endwith...">, <Text token: "</span> ...">, <Var token: "parts.1...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "parts.0...">, <Text token: "" value="...">, <Var token: "question.id...">, <Text token: " … <trimmed 4195 bytes string></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>token</td>
|
||
<td class="code"><pre><Block token: "if question.question..."></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>token_type</td>
|
||
<td class="code"><pre>2</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>var_node</td>
|
||
<td class="code"><pre><Variable Node: forloop.counter></pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</details>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="frame django">
|
||
|
||
<code class="fname">/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/base.py</code>, line 583, in parse
|
||
|
||
|
||
|
||
<div class="context" id="c126073041783232">
|
||
|
||
<ol start="576" class="pre-context" id="pre126073041783232">
|
||
|
||
<li onclick="toggle('pre126073041783232', 'post126073041783232')"><pre> try:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041783232', 'post126073041783232')"><pre> compile_func = self.tags[command]</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041783232', 'post126073041783232')"><pre> except KeyError:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041783232', 'post126073041783232')"><pre> self.invalid_block_tag(token, command, parse_until)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041783232', 'post126073041783232')"><pre> # Compile the callback into a node object and add it to</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041783232', 'post126073041783232')"><pre> # the node list.</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041783232', 'post126073041783232')"><pre> try:</pre></li>
|
||
|
||
</ol>
|
||
|
||
<ol start="583" class="context-line">
|
||
<li onclick="toggle('pre126073041783232', 'post126073041783232')"><pre> compiled_result = compile_func(self, token)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^</pre> <span>…</span></li>
|
||
</ol>
|
||
|
||
<ol start='584' class="post-context" id="post126073041783232">
|
||
|
||
<li onclick="toggle('pre126073041783232', 'post126073041783232')"><pre> except Exception as e:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041783232', 'post126073041783232')"><pre> raise self.error(token, e)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041783232', 'post126073041783232')"><pre> self.extend_nodelist(nodelist, compiled_result, token)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041783232', 'post126073041783232')"><pre> # Compile success. Remove the token from the command stack.</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041783232', 'post126073041783232')"><pre> self.command_stack.pop()</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041783232', 'post126073041783232')"><pre> if parse_until:</pre></li>
|
||
|
||
</ol>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<details>
|
||
<summary class="commands">Local vars</summary>
|
||
|
||
<table class="vars" id="v126073041783232">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>command</td>
|
||
<td class="code"><pre>'if'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>compile_func</td>
|
||
<td class="code"><pre><function do_if at 0x72a9b4732ac0></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>compiled_result</td>
|
||
<td class="code"><pre><IfNode></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>filter_expression</td>
|
||
<td class="code"><pre><FilterExpression 'forloop.counter'></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>nodelist</td>
|
||
<td class="code"><pre>[<TextNode: '\n <div'>,
|
||
<Variable Node: forloop.counter>,
|
||
<TextNode: '">\n '>,
|
||
<Variable Node: forloop.counter>,
|
||
<TextNode: '</div>\n '>,
|
||
<IfNode>,
|
||
<TextNode: '\n '>,
|
||
<IfNode>,
|
||
<TextNode: '\n '>,
|
||
<IfNode>,
|
||
<TextNode: '\n '>]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>parse_until</td>
|
||
<td class="code"><pre>('empty', 'endfor')</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>self</td>
|
||
<td class="code"><pre><Parser tokens=[<Text token: "'); ...">, <Block token: "endif...">, <Text token: "Please answer all re...">, <Block token: "else...">, <Text token: "يرجى الإجابة على جمي...">, <Block token: "if language == "ar"...">, <Text token: "; const ...">, <Var token: "total_questions...">, <Text token: " </small...">, <Block token: "endif...">, <Text token: " Tha...">, <Block token: "else...">, <Text token: " شكر...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: " ...">, <Block token: "else...">, <Text token: " ...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endif...">, <Text token: ""></textarea> ...">, <Block token: "endif...">, <Text token: "Enter your answer he...">, <Block token: "else...">, <Text token: "أدخل إجابتك هنا...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" class="form-contro...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: ""> ...">, <Block token: "endif...">, <Text token: "Enter your answer he...">, <Block token: "else...">, <Text token: "أدخل إجابتك هنا...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" class="form-contro...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endif...">, <Text token: " ...">, <Var token: "choice.label...">, <Text token: " ...">, <Block token: "else...">, <Text token: " ...">, <Var token: "choice.label_ar...">, <Text token: " ...">, <Block token: "if language == 'ar' ...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "choice.value...">, <Text token: "" value="...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "for choice in questi...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: "> ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "question.id...">, <Text token: "" id="question_...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "No...">, <Block token: "else...">, <Text token: "لا...">, <Block token: "if language == 'ar'...">, <Text token: "')"> ...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "Yes...">, <Block token: "else...">, <Text token: "نعم...">, <Block token: "if language == 'ar'...">, <Text token: "')"> ...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endwith...">, <Text token: "</span> ...">, <Var token: "parts.1...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "parts.0...">, <Text token: "" value="...">, <Var token: "question.id...">, <Text token: " … <trimmed 4195 bytes string></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>token</td>
|
||
<td class="code"><pre><Block token: "if question.question..."></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>token_type</td>
|
||
<td class="code"><pre>2</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>var_node</td>
|
||
<td class="code"><pre><Variable Node: forloop.counter></pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</details>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="frame django">
|
||
|
||
<code class="fname">/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/defaulttags.py</code>, line 1002, in do_if
|
||
|
||
|
||
|
||
<div class="context" id="c126073041793728">
|
||
|
||
<ol start="995" class="pre-context" id="pre126073041793728">
|
||
|
||
<li onclick="toggle('pre126073041793728', 'post126073041793728')"><pre> conditions_nodelists = [(condition, nodelist)]</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041793728', 'post126073041793728')"><pre> token = parser.next_token()</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041793728', 'post126073041793728')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041793728', 'post126073041793728')"><pre> # {% elif ... %} (repeatable)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041793728', 'post126073041793728')"><pre> while token.contents.startswith("elif"):</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041793728', 'post126073041793728')"><pre> bits = token.split_contents()[1:]</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041793728', 'post126073041793728')"><pre> condition = TemplateIfParser(parser, bits).parse()</pre></li>
|
||
|
||
</ol>
|
||
|
||
<ol start="1002" class="context-line">
|
||
<li onclick="toggle('pre126073041793728', 'post126073041793728')"><pre> nodelist = parser.parse(("elif", "else", "endif"))
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</pre> <span>…</span></li>
|
||
</ol>
|
||
|
||
<ol start='1003' class="post-context" id="post126073041793728">
|
||
|
||
<li onclick="toggle('pre126073041793728', 'post126073041793728')"><pre> conditions_nodelists.append((condition, nodelist))</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041793728', 'post126073041793728')"><pre> token = parser.next_token()</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041793728', 'post126073041793728')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041793728', 'post126073041793728')"><pre> # {% else %} (optional)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041793728', 'post126073041793728')"><pre> if token.contents == "else":</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041793728', 'post126073041793728')"><pre> nodelist = parser.parse(("endif",))</pre></li>
|
||
|
||
</ol>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<details>
|
||
<summary class="commands">Local vars</summary>
|
||
|
||
<table class="vars" id="v126073041793728">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>bits</td>
|
||
<td class="code"><pre>['question.question_type', '==', "'likert'"]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>condition</td>
|
||
<td class="code"><pre>(== (literal <FilterExpression 'question.question_type'>) (literal <FilterExpression "'likert'">))</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>conditions_nodelists</td>
|
||
<td class="code"><pre>[((== (literal <FilterExpression 'question.question_type'>) (literal <FilterExpression "'rating'">)),
|
||
[<TextNode: '\n '>,
|
||
<ForNode: for i in "12345", tail_len: 5>,
|
||
<TextNode: '\n '>,
|
||
<Variable Node: question.id>,
|
||
<TextNode: '" id="question_'>,
|
||
<Variable Node: question.id>,
|
||
<TextNode: '" \n '>,
|
||
<IfNode>,
|
||
<TextNode: '>\n '>]),
|
||
((== (literal <FilterExpression 'question.question_type'>) (literal <FilterExpression "'nps'">)),
|
||
[<TextNode: '\n '>,
|
||
<ForNode: for i in "012345678910", tail_len: 7>,
|
||
<TextNode: '\n '>,
|
||
<IfNode>,
|
||
<TextNode: '\n '>,
|
||
<IfNode>,
|
||
<TextNode: '\n '>,
|
||
<Variable Node: question.id>,
|
||
<TextNode: '" id="question_'>,
|
||
<Variable Node: question.id>,
|
||
<TextNode: '"\n '>,
|
||
<IfNode>,
|
||
<TextNode: '>\n '>])]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>nodelist</td>
|
||
<td class="code"><pre>[<TextNode: '\n '>,
|
||
<ForNode: for i in "012345678910", tail_len: 7>,
|
||
<TextNode: '\n '>,
|
||
<IfNode>,
|
||
<TextNode: '\n '>,
|
||
<IfNode>,
|
||
<TextNode: '\n '>,
|
||
<Variable Node: question.id>,
|
||
<TextNode: '" id="question_'>,
|
||
<Variable Node: question.id>,
|
||
<TextNode: '"\n '>,
|
||
<IfNode>,
|
||
<TextNode: '>\n '>]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>parser</td>
|
||
<td class="code"><pre><Parser tokens=[<Text token: "'); ...">, <Block token: "endif...">, <Text token: "Please answer all re...">, <Block token: "else...">, <Text token: "يرجى الإجابة على جمي...">, <Block token: "if language == "ar"...">, <Text token: "; const ...">, <Var token: "total_questions...">, <Text token: " </small...">, <Block token: "endif...">, <Text token: " Tha...">, <Block token: "else...">, <Text token: " شكر...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: " ...">, <Block token: "else...">, <Text token: " ...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endif...">, <Text token: ""></textarea> ...">, <Block token: "endif...">, <Text token: "Enter your answer he...">, <Block token: "else...">, <Text token: "أدخل إجابتك هنا...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" class="form-contro...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: ""> ...">, <Block token: "endif...">, <Text token: "Enter your answer he...">, <Block token: "else...">, <Text token: "أدخل إجابتك هنا...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" class="form-contro...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endif...">, <Text token: " ...">, <Var token: "choice.label...">, <Text token: " ...">, <Block token: "else...">, <Text token: " ...">, <Var token: "choice.label_ar...">, <Text token: " ...">, <Block token: "if language == 'ar' ...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "choice.value...">, <Text token: "" value="...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "for choice in questi...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: "> ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "question.id...">, <Text token: "" id="question_...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "No...">, <Block token: "else...">, <Text token: "لا...">, <Block token: "if language == 'ar'...">, <Text token: "')"> ...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "Yes...">, <Block token: "else...">, <Text token: "نعم...">, <Block token: "if language == 'ar'...">, <Text token: "')"> ...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endwith...">, <Text token: "</span> ...">, <Var token: "parts.1...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "parts.0...">, <Text token: "" value="...">, <Var token: "question.id...">, <Text token: " … <trimmed 4195 bytes string></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>token</td>
|
||
<td class="code"><pre><Block token: "elif question.questi..."></pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</details>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="frame django">
|
||
|
||
<code class="fname">/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/base.py</code>, line 585, in parse
|
||
|
||
|
||
|
||
<div class="context" id="c126073041785536">
|
||
|
||
<ol start="578" class="pre-context" id="pre126073041785536">
|
||
|
||
<li onclick="toggle('pre126073041785536', 'post126073041785536')"><pre> except KeyError:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785536', 'post126073041785536')"><pre> self.invalid_block_tag(token, command, parse_until)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785536', 'post126073041785536')"><pre> # Compile the callback into a node object and add it to</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785536', 'post126073041785536')"><pre> # the node list.</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785536', 'post126073041785536')"><pre> try:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785536', 'post126073041785536')"><pre> compiled_result = compile_func(self, token)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785536', 'post126073041785536')"><pre> except Exception as e:</pre></li>
|
||
|
||
</ol>
|
||
|
||
<ol start="585" class="context-line">
|
||
<li onclick="toggle('pre126073041785536', 'post126073041785536')"><pre> raise self.error(token, e)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^</pre> <span>…</span></li>
|
||
</ol>
|
||
|
||
<ol start='586' class="post-context" id="post126073041785536">
|
||
|
||
<li onclick="toggle('pre126073041785536', 'post126073041785536')"><pre> self.extend_nodelist(nodelist, compiled_result, token)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785536', 'post126073041785536')"><pre> # Compile success. Remove the token from the command stack.</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785536', 'post126073041785536')"><pre> self.command_stack.pop()</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785536', 'post126073041785536')"><pre> if parse_until:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785536', 'post126073041785536')"><pre> self.unclosed_block_tag(parse_until)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785536', 'post126073041785536')"><pre> return nodelist</pre></li>
|
||
|
||
</ol>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<details>
|
||
<summary class="commands">Local vars</summary>
|
||
|
||
<table class="vars" id="v126073041785536">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>command</td>
|
||
<td class="code"><pre>'for'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>compile_func</td>
|
||
<td class="code"><pre><function do_for at 0x72a9b47325c0></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>nodelist</td>
|
||
<td class="code"><pre>[<TextNode: '\n '>]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>parse_until</td>
|
||
<td class="code"><pre>('elif', 'else', 'endif')</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>self</td>
|
||
<td class="code"><pre><Parser tokens=[<Text token: "'); ...">, <Block token: "endif...">, <Text token: "Please answer all re...">, <Block token: "else...">, <Text token: "يرجى الإجابة على جمي...">, <Block token: "if language == "ar"...">, <Text token: "; const ...">, <Var token: "total_questions...">, <Text token: " </small...">, <Block token: "endif...">, <Text token: " Tha...">, <Block token: "else...">, <Text token: " شكر...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: " ...">, <Block token: "else...">, <Text token: " ...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endif...">, <Text token: ""></textarea> ...">, <Block token: "endif...">, <Text token: "Enter your answer he...">, <Block token: "else...">, <Text token: "أدخل إجابتك هنا...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" class="form-contro...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: ""> ...">, <Block token: "endif...">, <Text token: "Enter your answer he...">, <Block token: "else...">, <Text token: "أدخل إجابتك هنا...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" class="form-contro...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endif...">, <Text token: " ...">, <Var token: "choice.label...">, <Text token: " ...">, <Block token: "else...">, <Text token: " ...">, <Var token: "choice.label_ar...">, <Text token: " ...">, <Block token: "if language == 'ar' ...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "choice.value...">, <Text token: "" value="...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "for choice in questi...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: "> ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "question.id...">, <Text token: "" id="question_...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "No...">, <Block token: "else...">, <Text token: "لا...">, <Block token: "if language == 'ar'...">, <Text token: "')"> ...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "Yes...">, <Block token: "else...">, <Text token: "نعم...">, <Block token: "if language == 'ar'...">, <Text token: "')"> ...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endwith...">, <Text token: "</span> ...">, <Var token: "parts.1...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "parts.0...">, <Text token: "" value="...">, <Var token: "question.id...">, <Text token: " … <trimmed 4195 bytes string></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>token</td>
|
||
<td class="code"><pre><Block token: "for value, label in ..."></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>token_type</td>
|
||
<td class="code"><pre>2</pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</details>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="frame django">
|
||
|
||
<code class="fname">/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/base.py</code>, line 583, in parse
|
||
|
||
|
||
|
||
<div class="context" id="c126073041796992">
|
||
|
||
<ol start="576" class="pre-context" id="pre126073041796992">
|
||
|
||
<li onclick="toggle('pre126073041796992', 'post126073041796992')"><pre> try:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041796992', 'post126073041796992')"><pre> compile_func = self.tags[command]</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041796992', 'post126073041796992')"><pre> except KeyError:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041796992', 'post126073041796992')"><pre> self.invalid_block_tag(token, command, parse_until)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041796992', 'post126073041796992')"><pre> # Compile the callback into a node object and add it to</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041796992', 'post126073041796992')"><pre> # the node list.</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041796992', 'post126073041796992')"><pre> try:</pre></li>
|
||
|
||
</ol>
|
||
|
||
<ol start="583" class="context-line">
|
||
<li onclick="toggle('pre126073041796992', 'post126073041796992')"><pre> compiled_result = compile_func(self, token)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^</pre> <span>…</span></li>
|
||
</ol>
|
||
|
||
<ol start='584' class="post-context" id="post126073041796992">
|
||
|
||
<li onclick="toggle('pre126073041796992', 'post126073041796992')"><pre> except Exception as e:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041796992', 'post126073041796992')"><pre> raise self.error(token, e)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041796992', 'post126073041796992')"><pre> self.extend_nodelist(nodelist, compiled_result, token)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041796992', 'post126073041796992')"><pre> # Compile success. Remove the token from the command stack.</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041796992', 'post126073041796992')"><pre> self.command_stack.pop()</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041796992', 'post126073041796992')"><pre> if parse_until:</pre></li>
|
||
|
||
</ol>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<details>
|
||
<summary class="commands">Local vars</summary>
|
||
|
||
<table class="vars" id="v126073041796992">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>command</td>
|
||
<td class="code"><pre>'for'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>compile_func</td>
|
||
<td class="code"><pre><function do_for at 0x72a9b47325c0></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>nodelist</td>
|
||
<td class="code"><pre>[<TextNode: '\n '>]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>parse_until</td>
|
||
<td class="code"><pre>('elif', 'else', 'endif')</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>self</td>
|
||
<td class="code"><pre><Parser tokens=[<Text token: "'); ...">, <Block token: "endif...">, <Text token: "Please answer all re...">, <Block token: "else...">, <Text token: "يرجى الإجابة على جمي...">, <Block token: "if language == "ar"...">, <Text token: "; const ...">, <Var token: "total_questions...">, <Text token: " </small...">, <Block token: "endif...">, <Text token: " Tha...">, <Block token: "else...">, <Text token: " شكر...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: " ...">, <Block token: "else...">, <Text token: " ...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endif...">, <Text token: ""></textarea> ...">, <Block token: "endif...">, <Text token: "Enter your answer he...">, <Block token: "else...">, <Text token: "أدخل إجابتك هنا...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" class="form-contro...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: ""> ...">, <Block token: "endif...">, <Text token: "Enter your answer he...">, <Block token: "else...">, <Text token: "أدخل إجابتك هنا...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" class="form-contro...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endif...">, <Text token: " ...">, <Var token: "choice.label...">, <Text token: " ...">, <Block token: "else...">, <Text token: " ...">, <Var token: "choice.label_ar...">, <Text token: " ...">, <Block token: "if language == 'ar' ...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "choice.value...">, <Text token: "" value="...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "for choice in questi...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: "> ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "question.id...">, <Text token: "" id="question_...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "No...">, <Block token: "else...">, <Text token: "لا...">, <Block token: "if language == 'ar'...">, <Text token: "')"> ...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "Yes...">, <Block token: "else...">, <Text token: "نعم...">, <Block token: "if language == 'ar'...">, <Text token: "')"> ...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endwith...">, <Text token: "</span> ...">, <Var token: "parts.1...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "parts.0...">, <Text token: "" value="...">, <Var token: "question.id...">, <Text token: " … <trimmed 4195 bytes string></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>token</td>
|
||
<td class="code"><pre><Block token: "for value, label in ..."></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>token_type</td>
|
||
<td class="code"><pre>2</pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</details>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="frame django">
|
||
|
||
<code class="fname">/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/defaulttags.py</code>, line 893, in do_for
|
||
|
||
|
||
|
||
<div class="context" id="c126073041785088">
|
||
|
||
<ol start="886" class="pre-context" id="pre126073041785088">
|
||
|
||
<li onclick="toggle('pre126073041785088', 'post126073041785088')"><pre> loopvars = re.split(r" *, *", " ".join(bits[1:in_index]))</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785088', 'post126073041785088')"><pre> for var in loopvars:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785088', 'post126073041785088')"><pre> if not var or not invalid_chars.isdisjoint(var):</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785088', 'post126073041785088')"><pre> raise TemplateSyntaxError(</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785088', 'post126073041785088')"><pre> "'for' tag received an invalid argument: %s" % token.contents</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785088', 'post126073041785088')"><pre> )</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785088', 'post126073041785088')"><pre></pre></li>
|
||
|
||
</ol>
|
||
|
||
<ol start="893" class="context-line">
|
||
<li onclick="toggle('pre126073041785088', 'post126073041785088')"><pre> sequence = parser.compile_filter(bits[in_index + 1])
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</pre> <span>…</span></li>
|
||
</ol>
|
||
|
||
<ol start='894' class="post-context" id="post126073041785088">
|
||
|
||
<li onclick="toggle('pre126073041785088', 'post126073041785088')"><pre> nodelist_loop = parser.parse(</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785088', 'post126073041785088')"><pre> (</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785088', 'post126073041785088')"><pre> "empty",</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785088', 'post126073041785088')"><pre> "endfor",</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785088', 'post126073041785088')"><pre> )</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041785088', 'post126073041785088')"><pre> )</pre></li>
|
||
|
||
</ol>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<details>
|
||
<summary class="commands">Local vars</summary>
|
||
|
||
<table class="vars" id="v126073041785088">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>bits</td>
|
||
<td class="code"><pre>['for',
|
||
'value,',
|
||
'label',
|
||
'in',
|
||
'"1:Strongly Disagree,2:Disagree,3:Neutral,4:Agree,5:Strongly '
|
||
'Agree"|split:","']</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>in_index</td>
|
||
<td class="code"><pre>-2</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>invalid_chars</td>
|
||
<td class="code"><pre>frozenset({' ', "'", '"', '|'})</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>is_reversed</td>
|
||
<td class="code"><pre>False</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>loopvars</td>
|
||
<td class="code"><pre>['value', 'label']</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>parser</td>
|
||
<td class="code"><pre><Parser tokens=[<Text token: "'); ...">, <Block token: "endif...">, <Text token: "Please answer all re...">, <Block token: "else...">, <Text token: "يرجى الإجابة على جمي...">, <Block token: "if language == "ar"...">, <Text token: "; const ...">, <Var token: "total_questions...">, <Text token: " </small...">, <Block token: "endif...">, <Text token: " Tha...">, <Block token: "else...">, <Text token: " شكر...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: " ...">, <Block token: "else...">, <Text token: " ...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endif...">, <Text token: ""></textarea> ...">, <Block token: "endif...">, <Text token: "Enter your answer he...">, <Block token: "else...">, <Text token: "أدخل إجابتك هنا...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" class="form-contro...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: ""> ...">, <Block token: "endif...">, <Text token: "Enter your answer he...">, <Block token: "else...">, <Text token: "أدخل إجابتك هنا...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" class="form-contro...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endif...">, <Text token: " ...">, <Var token: "choice.label...">, <Text token: " ...">, <Block token: "else...">, <Text token: " ...">, <Var token: "choice.label_ar...">, <Text token: " ...">, <Block token: "if language == 'ar' ...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "choice.value...">, <Text token: "" value="...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "for choice in questi...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: "> ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "question.id...">, <Text token: "" id="question_...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "No...">, <Block token: "else...">, <Text token: "لا...">, <Block token: "if language == 'ar'...">, <Text token: "')"> ...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "Yes...">, <Block token: "else...">, <Text token: "نعم...">, <Block token: "if language == 'ar'...">, <Text token: "')"> ...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endwith...">, <Text token: "</span> ...">, <Var token: "parts.1...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "parts.0...">, <Text token: "" value="...">, <Var token: "question.id...">, <Text token: " … <trimmed 4195 bytes string></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>token</td>
|
||
<td class="code"><pre><Block token: "for value, label in ..."></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>var</td>
|
||
<td class="code"><pre>'label'</pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</details>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="frame django">
|
||
|
||
<code class="fname">/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/base.py</code>, line 676, in compile_filter
|
||
|
||
|
||
|
||
<div class="context" id="c126073041782912">
|
||
|
||
<ol start="669" class="pre-context" id="pre126073041782912">
|
||
|
||
<li onclick="toggle('pre126073041782912', 'post126073041782912')"><pre> self.tags.update(lib.tags)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041782912', 'post126073041782912')"><pre> self.filters.update(lib.filters)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041782912', 'post126073041782912')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041782912', 'post126073041782912')"><pre> def compile_filter(self, token):</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041782912', 'post126073041782912')"><pre> """</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041782912', 'post126073041782912')"><pre> Convenient wrapper for FilterExpression</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041782912', 'post126073041782912')"><pre> """</pre></li>
|
||
|
||
</ol>
|
||
|
||
<ol start="676" class="context-line">
|
||
<li onclick="toggle('pre126073041782912', 'post126073041782912')"><pre> return FilterExpression(token, self)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</pre> <span>…</span></li>
|
||
</ol>
|
||
|
||
<ol start='677' class="post-context" id="post126073041782912">
|
||
|
||
<li onclick="toggle('pre126073041782912', 'post126073041782912')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041782912', 'post126073041782912')"><pre> def find_filter(self, filter_name):</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041782912', 'post126073041782912')"><pre> if filter_name in self.filters:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041782912', 'post126073041782912')"><pre> return self.filters[filter_name]</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041782912', 'post126073041782912')"><pre> else:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041782912', 'post126073041782912')"><pre> raise TemplateSyntaxError("Invalid filter: '%s'" % filter_name)</pre></li>
|
||
|
||
</ol>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<details>
|
||
<summary class="commands">Local vars</summary>
|
||
|
||
<table class="vars" id="v126073041782912">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>self</td>
|
||
<td class="code"><pre><Parser tokens=[<Text token: "'); ...">, <Block token: "endif...">, <Text token: "Please answer all re...">, <Block token: "else...">, <Text token: "يرجى الإجابة على جمي...">, <Block token: "if language == "ar"...">, <Text token: "; const ...">, <Var token: "total_questions...">, <Text token: " </small...">, <Block token: "endif...">, <Text token: " Tha...">, <Block token: "else...">, <Text token: " شكر...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: " ...">, <Block token: "else...">, <Text token: " ...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endif...">, <Text token: ""></textarea> ...">, <Block token: "endif...">, <Text token: "Enter your answer he...">, <Block token: "else...">, <Text token: "أدخل إجابتك هنا...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" class="form-contro...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: ""> ...">, <Block token: "endif...">, <Text token: "Enter your answer he...">, <Block token: "else...">, <Text token: "أدخل إجابتك هنا...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" class="form-contro...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endif...">, <Text token: " ...">, <Var token: "choice.label...">, <Text token: " ...">, <Block token: "else...">, <Text token: " ...">, <Var token: "choice.label_ar...">, <Text token: " ...">, <Block token: "if language == 'ar' ...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "choice.value...">, <Text token: "" value="...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "for choice in questi...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: "> ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "question.id...">, <Text token: "" id="question_...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "No...">, <Block token: "else...">, <Text token: "لا...">, <Block token: "if language == 'ar'...">, <Text token: "')"> ...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "Yes...">, <Block token: "else...">, <Text token: "نعم...">, <Block token: "if language == 'ar'...">, <Text token: "')"> ...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endwith...">, <Text token: "</span> ...">, <Var token: "parts.1...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "parts.0...">, <Text token: "" value="...">, <Var token: "question.id...">, <Text token: " … <trimmed 4195 bytes string></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>token</td>
|
||
<td class="code"><pre>'"1:Strongly Disagree,2:Disagree,3:Neutral,4:Agree,5:Strongly Agree"|split:","'</pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</details>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="frame django">
|
||
|
||
<code class="fname">/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/base.py</code>, line 771, in __init__
|
||
|
||
|
||
|
||
<div class="context" id="c126073041787584">
|
||
|
||
<ol start="764" class="pre-context" id="pre126073041787584">
|
||
|
||
<li onclick="toggle('pre126073041787584', 'post126073041787584')"><pre> else:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041787584', 'post126073041787584')"><pre> filter_name = match["filter_name"]</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041787584', 'post126073041787584')"><pre> args = []</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041787584', 'post126073041787584')"><pre> if constant_arg := match["constant_arg"]:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041787584', 'post126073041787584')"><pre> args.append((False, Variable(constant_arg).resolve({})))</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041787584', 'post126073041787584')"><pre> elif var_arg := match["var_arg"]:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041787584', 'post126073041787584')"><pre> args.append((True, Variable(var_arg)))</pre></li>
|
||
|
||
</ol>
|
||
|
||
<ol start="771" class="context-line">
|
||
<li onclick="toggle('pre126073041787584', 'post126073041787584')"><pre> filter_func = parser.find_filter(filter_name)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</pre> <span>…</span></li>
|
||
</ol>
|
||
|
||
<ol start='772' class="post-context" id="post126073041787584">
|
||
|
||
<li onclick="toggle('pre126073041787584', 'post126073041787584')"><pre> self.args_check(filter_name, filter_func, args)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041787584', 'post126073041787584')"><pre> filters.append((filter_func, args))</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041787584', 'post126073041787584')"><pre> upto = match.end()</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041787584', 'post126073041787584')"><pre> if upto != len(token):</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041787584', 'post126073041787584')"><pre> raise TemplateSyntaxError(</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041787584', 'post126073041787584')"><pre> "Could not parse the remainder: '%s' "</pre></li>
|
||
|
||
</ol>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<details>
|
||
<summary class="commands">Local vars</summary>
|
||
|
||
<table class="vars" id="v126073041787584">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>args</td>
|
||
<td class="code"><pre>[(False, ',')]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>constant</td>
|
||
<td class="code"><pre>'"1:Strongly Disagree,2:Disagree,3:Neutral,4:Agree,5:Strongly Agree"'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>constant_arg</td>
|
||
<td class="code"><pre>'","'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>filter_name</td>
|
||
<td class="code"><pre>'split'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>filters</td>
|
||
<td class="code"><pre>[]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>match</td>
|
||
<td class="code"><pre><re.Match object; span=(67, 77), match='|split:","'></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>matches</td>
|
||
<td class="code"><pre><callable_iterator object at 0x72a9aab17a30></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>parser</td>
|
||
<td class="code"><pre><Parser tokens=[<Text token: "'); ...">, <Block token: "endif...">, <Text token: "Please answer all re...">, <Block token: "else...">, <Text token: "يرجى الإجابة على جمي...">, <Block token: "if language == "ar"...">, <Text token: "; const ...">, <Var token: "total_questions...">, <Text token: " </small...">, <Block token: "endif...">, <Text token: " Tha...">, <Block token: "else...">, <Text token: " شكر...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: " ...">, <Block token: "else...">, <Text token: " ...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endif...">, <Text token: ""></textarea> ...">, <Block token: "endif...">, <Text token: "Enter your answer he...">, <Block token: "else...">, <Text token: "أدخل إجابتك هنا...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" class="form-contro...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: ""> ...">, <Block token: "endif...">, <Text token: "Enter your answer he...">, <Block token: "else...">, <Text token: "أدخل إجابتك هنا...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" class="form-contro...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endif...">, <Text token: " ...">, <Var token: "choice.label...">, <Text token: " ...">, <Block token: "else...">, <Text token: " ...">, <Var token: "choice.label_ar...">, <Text token: " ...">, <Block token: "if language == 'ar' ...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "choice.value...">, <Text token: "" value="...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "for choice in questi...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: "> ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "question.id...">, <Text token: "" id="question_...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "No...">, <Block token: "else...">, <Text token: "لا...">, <Block token: "if language == 'ar'...">, <Text token: "')"> ...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "Yes...">, <Block token: "else...">, <Text token: "نعم...">, <Block token: "if language == 'ar'...">, <Text token: "')"> ...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endwith...">, <Text token: "</span> ...">, <Var token: "parts.1...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "parts.0...">, <Text token: "" value="...">, <Var token: "question.id...">, <Text token: " … <trimmed 4195 bytes string></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>self</td>
|
||
<td class="code"><pre><FilterExpression '"1:Strongly Disagree,2:Disagree,3:Neutral,4:Agree,5:Strongly Agree"|split:","'></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>start</td>
|
||
<td class="code"><pre>67</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>token</td>
|
||
<td class="code"><pre>'"1:Strongly Disagree,2:Disagree,3:Neutral,4:Agree,5:Strongly Agree"|split:","'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>upto</td>
|
||
<td class="code"><pre>67</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>var_obj</td>
|
||
<td class="code"><pre>'1:Strongly Disagree,2:Disagree,3:Neutral,4:Agree,5:Strongly Agree'</pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</details>
|
||
|
||
</li>
|
||
|
||
|
||
<li class="frame django">
|
||
|
||
<code class="fname">/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/base.py</code>, line 682, in find_filter
|
||
|
||
|
||
|
||
<div class="context" id="c126073041792896">
|
||
|
||
<ol start="675" class="pre-context" id="pre126073041792896">
|
||
|
||
<li onclick="toggle('pre126073041792896', 'post126073041792896')"><pre> """</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041792896', 'post126073041792896')"><pre> return FilterExpression(token, self)</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041792896', 'post126073041792896')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041792896', 'post126073041792896')"><pre> def find_filter(self, filter_name):</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041792896', 'post126073041792896')"><pre> if filter_name in self.filters:</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041792896', 'post126073041792896')"><pre> return self.filters[filter_name]</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041792896', 'post126073041792896')"><pre> else:</pre></li>
|
||
|
||
</ol>
|
||
|
||
<ol start="682" class="context-line">
|
||
<li onclick="toggle('pre126073041792896', 'post126073041792896')"><pre> raise TemplateSyntaxError("Invalid filter: '%s'" % filter_name)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</pre> <span>…</span></li>
|
||
</ol>
|
||
|
||
<ol start='683' class="post-context" id="post126073041792896">
|
||
|
||
<li onclick="toggle('pre126073041792896', 'post126073041792896')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041792896', 'post126073041792896')"><pre></pre></li>
|
||
|
||
<li onclick="toggle('pre126073041792896', 'post126073041792896')"><pre># This only matches constant *strings* (things in quotes or marked for</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041792896', 'post126073041792896')"><pre># translation). Numbers are treated as variables for implementation reasons</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041792896', 'post126073041792896')"><pre># (so that they retain their type when passed to filters).</pre></li>
|
||
|
||
<li onclick="toggle('pre126073041792896', 'post126073041792896')"><pre>constant_string = r"""</pre></li>
|
||
|
||
</ol>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<details>
|
||
<summary class="commands">Local vars</summary>
|
||
|
||
<table class="vars" id="v126073041792896">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>filter_name</td>
|
||
<td class="code"><pre>'split'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>self</td>
|
||
<td class="code"><pre><Parser tokens=[<Text token: "'); ...">, <Block token: "endif...">, <Text token: "Please answer all re...">, <Block token: "else...">, <Text token: "يرجى الإجابة على جمي...">, <Block token: "if language == "ar"...">, <Text token: "; const ...">, <Var token: "total_questions...">, <Text token: " </small...">, <Block token: "endif...">, <Text token: " Tha...">, <Block token: "else...">, <Text token: " شكر...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: " ...">, <Block token: "else...">, <Text token: " ...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endif...">, <Text token: ""></textarea> ...">, <Block token: "endif...">, <Text token: "Enter your answer he...">, <Block token: "else...">, <Text token: "أدخل إجابتك هنا...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" class="form-contro...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: ""> ...">, <Block token: "endif...">, <Text token: "Enter your answer he...">, <Block token: "else...">, <Text token: "أدخل إجابتك هنا...">, <Block token: "if language == 'ar'...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" class="form-contro...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endif...">, <Text token: " ...">, <Var token: "choice.label...">, <Text token: " ...">, <Block token: "else...">, <Text token: " ...">, <Var token: "choice.label_ar...">, <Text token: " ...">, <Block token: "if language == 'ar' ...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "choice.value...">, <Text token: "" value="...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "for choice in questi...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: "> ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "question.id...">, <Text token: "" id="question_...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "No...">, <Block token: "else...">, <Text token: "لا...">, <Block token: "if language == 'ar'...">, <Text token: "')"> ...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "Yes...">, <Block token: "else...">, <Text token: "نعم...">, <Block token: "if language == 'ar'...">, <Text token: "')"> ...">, <Var token: "question.id...">, <Text token: " ...">, <Block token: "elif question.questi...">, <Text token: " ...">, <Block token: "endfor...">, <Text token: " ...">, <Block token: "endwith...">, <Text token: "</span> ...">, <Var token: "parts.1...">, <Text token: " ...">, <Block token: "endif...">, <Text token: "required...">, <Block token: "if question.is_requi...">, <Text token: "" ...">, <Var token: "parts.0...">, <Text token: "" value="...">, <Var token: "question.id...">, <Text token: " … <trimmed 4195 bytes string></pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</details>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
|
||
<form action="https://dpaste.com/" name="pasteform" id="pasteform" method="post">
|
||
<div id="pastebinTraceback" class="pastebin">
|
||
<input type="hidden" name="language" value="PythonConsole">
|
||
<input type="hidden" name="title"
|
||
value="TemplateSyntaxError at /surveys/s/H8d9tlVs0BgeAp1XA4NczXoiCcqAaN0r_lc0Eb63U1Y/">
|
||
<input type="hidden" name="source" value="Django Dpaste Agent">
|
||
<input type="hidden" name="poster" value="Django">
|
||
<textarea name="content" id="traceback_area" cols="140" rows="25">
|
||
Environment:
|
||
|
||
|
||
Request Method: GET
|
||
Request URL: http://localhost:8000/surveys/s/H8d9tlVs0BgeAp1XA4NczXoiCcqAaN0r_lc0Eb63U1Y/
|
||
|
||
Django Version: 6.0.1
|
||
Python Version: 3.12.3
|
||
Installed Applications:
|
||
['django.contrib.admin',
|
||
'django.contrib.auth',
|
||
'django.contrib.contenttypes',
|
||
'django.contrib.sessions',
|
||
'django.contrib.messages',
|
||
'django.contrib.staticfiles',
|
||
'rest_framework',
|
||
'rest_framework_simplejwt',
|
||
'django_filters',
|
||
'drf_spectacular',
|
||
'django_celery_beat',
|
||
'apps.core',
|
||
'apps.accounts',
|
||
'apps.organizations',
|
||
'apps.journeys',
|
||
'apps.surveys',
|
||
'apps.complaints',
|
||
'apps.feedback',
|
||
'apps.callcenter',
|
||
'apps.social',
|
||
'apps.px_action_center',
|
||
'apps.analytics',
|
||
'apps.physicians',
|
||
'apps.projects',
|
||
'apps.integrations',
|
||
'apps.notifications',
|
||
'apps.ai_engine',
|
||
'apps.dashboard',
|
||
'apps.appreciation',
|
||
'apps.observations',
|
||
'apps.px_sources',
|
||
'apps.references',
|
||
'apps.standards',
|
||
'apps.simulator',
|
||
'django_extensions']
|
||
Installed Middleware:
|
||
['django.middleware.security.SecurityMiddleware',
|
||
'whitenoise.middleware.WhiteNoiseMiddleware',
|
||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||
'django.middleware.locale.LocaleMiddleware',
|
||
'django.middleware.common.CommonMiddleware',
|
||
'django.middleware.csrf.CsrfViewMiddleware',
|
||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||
'apps.core.middleware.TenantMiddleware',
|
||
'django.contrib.messages.middleware.MessageMiddleware',
|
||
'django.middleware.clickjacking.XFrameOptionsMiddleware']
|
||
|
||
|
||
Template error:
|
||
In template /home/ismail/projects/HH/templates/surveys/public_form.html, error at line 451
|
||
Invalid filter: 'split'
|
||
441 : <span>
|
||
442 : {% if language == 'ar' %}محتمل جداً{% else %}Extremely likely{% endif %}
|
||
443 : </span>
|
||
444 : </div>
|
||
445 : <input type="hidden" name="question_{{ question.id }}" id="question_{{ question.id }}"
|
||
446 : {% if question.is_required %}required{% endif %}>
|
||
447 :
|
||
448 : <!-- Likert Scale -->
|
||
449 : {% elif question.question_type == 'likert' %}
|
||
450 : <div class="likert-scale">
|
||
451 : {% for value, label in "1:Strongly Disagree,2:Disagree,3:Neutral,4:Agree,5:Strongly Agree"|split:"," %}
|
||
452 : {% with parts=label|split:":" %}
|
||
453 : <label class="likert-option">
|
||
454 : <input type="radio" name="question_{{ question.id }}" value="{{ parts.0 }}"
|
||
455 : {% if question.is_required %}required{% endif %}
|
||
456 : onchange="selectLikert(this)">
|
||
457 : <span>{{ parts.1 }}</span>
|
||
458 : </label>
|
||
459 : {% endwith %}
|
||
460 : {% endfor %}
|
||
461 : </div>
|
||
|
||
|
||
Traceback (most recent call last):
|
||
File "/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
|
||
response = get_response(request)
|
||
^^^^^^^^^^^^^^^^^^^^^
|
||
File "/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 198, in _get_response
|
||
response = wrapped_callback(request, *callback_args, **callback_kwargs)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
File "/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/views/decorators/http.py", line 64, in inner
|
||
return func(request, *args, **kwargs)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
File "/home/ismail/projects/HH/apps/surveys/public_views.py", line 189, in survey_form
|
||
return render(request, 'surveys/public_form.html', context)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
File "/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/shortcuts.py", line 25, in render
|
||
content = loader.render_to_string(template_name, context, request, using=using)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
File "/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/loader.py", line 61, in render_to_string
|
||
template = get_template(template_name, using=using)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
File "/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/loader.py", line 15, in get_template
|
||
return engine.get_template(template_name)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
File "/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 79, in get_template
|
||
return Template(self.engine.get_template(template_name), self)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
File "/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/engine.py", line 186, in get_template
|
||
template, origin = self.find_template(template_name)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
File "/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/engine.py", line 159, in find_template
|
||
template = loader.get_template(name, skip=skip)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
File "/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/loaders/cached.py", line 57, in get_template
|
||
template = super().get_template(template_name, skip)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
File "/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/loaders/base.py", line 28, in get_template
|
||
return Template(
|
||
|
||
File "/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/base.py", line 157, in __init__
|
||
self.nodelist = self.compile_nodelist()
|
||
^^^^^^^^^^^^^^^^^^^^^^^
|
||
File "/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/base.py", line 199, in compile_nodelist
|
||
nodelist = parser.parse()
|
||
^^^^^^^^^^^^^^
|
||
File "/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/base.py", line 585, in parse
|
||
raise self.error(token, e)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
File "/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/base.py", line 583, in parse
|
||
compiled_result = compile_func(self, token)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
File "/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 894, in do_for
|
||
nodelist_loop = parser.parse(
|
||
|
||
File "/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/base.py", line 585, in parse
|
||
raise self.error(token, e)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
File "/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/base.py", line 583, in parse
|
||
compiled_result = compile_func(self, token)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
File "/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 1002, in do_if
|
||
nodelist = parser.parse(("elif", "else", "endif"))
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
File "/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/base.py", line 585, in parse
|
||
raise self.error(token, e)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
File "/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/base.py", line 583, in parse
|
||
compiled_result = compile_func(self, token)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
File "/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 893, in do_for
|
||
sequence = parser.compile_filter(bits[in_index + 1])
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
File "/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/base.py", line 676, in compile_filter
|
||
return FilterExpression(token, self)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
File "/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/base.py", line 771, in __init__
|
||
filter_func = parser.find_filter(filter_name)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
File "/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/template/base.py", line 682, in find_filter
|
||
raise TemplateSyntaxError("Invalid filter: '%s'" % filter_name)
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
|
||
Exception Type: TemplateSyntaxError at /surveys/s/H8d9tlVs0BgeAp1XA4NczXoiCcqAaN0r_lc0Eb63U1Y/
|
||
Exception Value: Invalid filter: 'split'
|
||
</textarea>
|
||
<br><br>
|
||
<input type="submit" value="Share this traceback on a public website">
|
||
</div>
|
||
</form>
|
||
|
||
</div>
|
||
|
||
|
||
<div id="requestinfo">
|
||
<h2>Request information</h2>
|
||
|
||
|
||
|
||
<h3 id="user-info">USER</h3>
|
||
<p>AnonymousUser</p>
|
||
|
||
|
||
<h3 id="get-info">GET</h3>
|
||
|
||
<p>No GET data</p>
|
||
|
||
|
||
<h3 id="post-info">POST</h3>
|
||
|
||
<p>No POST data</p>
|
||
|
||
|
||
<h3 id="files-info">FILES</h3>
|
||
|
||
<p>No FILES data</p>
|
||
|
||
|
||
<h3 id="cookie-info">COOKIES</h3>
|
||
|
||
<p>No cookie data</p>
|
||
|
||
|
||
<h3 id="meta-info">META</h3>
|
||
<table class="req">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Variable</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>ADMIN_URL</td>
|
||
<td class="code"><pre>'admin/'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>AI_MAX_TOKENS</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>AI_MODEL</td>
|
||
<td class="code"><pre>'openai/gpt-4o-mini'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>AI_TEMPERATURE</td>
|
||
<td class="code"><pre>'0.3'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>ALLOWED_HOSTS</td>
|
||
<td class="code"><pre>'localhost,127.0.0.1'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>BUNDLED_DEBUGPY_PATH</td>
|
||
<td class="code"><pre>'/home/ismail/.vscode/extensions/ms-python.debugpy-2025.18.0-linux-x64/bundled/libs/debugpy'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CELERY_BROKER_URL</td>
|
||
<td class="code"><pre>'redis://localhost:6379/0'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CELERY_RESULT_BACKEND</td>
|
||
<td class="code"><pre>'redis://localhost:6379/0'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CELERY_TASK_ALWAYS_EAGER</td>
|
||
<td class="code"><pre>'False'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CHI_API_KEY</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CHI_API_URL</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CHROME_DESKTOP</td>
|
||
<td class="code"><pre>'code.desktop'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CLINE_ACTIVE</td>
|
||
<td class="code"><pre>'true'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CLUTTER_BACKEND</td>
|
||
<td class="code"><pre>'x11'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>COLORTERM</td>
|
||
<td class="code"><pre>'truecolor'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>COMPIZ_CONFIG_PROFILE</td>
|
||
<td class="code"><pre>'mint'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CONTENT_LENGTH</td>
|
||
<td class="code"><pre>''</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CONTENT_TYPE</td>
|
||
<td class="code"><pre>'text/plain'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DATABASE_URL</td>
|
||
<td class="code"><pre>'sqlite:///db.sqlite3'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DBUS_SESSION_BUS_ADDRESS</td>
|
||
<td class="code"><pre>'unix:path=/run/user/1000/bus,guid=ec01317cbe154a03aadece3369691cd5'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DBUS_STARTER_ADDRESS</td>
|
||
<td class="code"><pre>'unix:path=/run/user/1000/bus,guid=ec01317cbe154a03aadece3369691cd5'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DBUS_STARTER_BUS_TYPE</td>
|
||
<td class="code"><pre>'session'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DEBUG</td>
|
||
<td class="code"><pre>'True'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DEFAULT_FROM_EMAIL</td>
|
||
<td class="code"><pre>'noreply@px360.sa'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DESKTOP_SESSION</td>
|
||
<td class="code"><pre>'mate'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DISPLAY</td>
|
||
<td class="code"><pre>':0'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DJANGO_SETTINGS_MODULE</td>
|
||
<td class="code"><pre>'config.settings.dev'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>EMAIL_API_ENABLED</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>EMAIL_API_KEY</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>EMAIL_API_URL</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>EMAIL_BACKEND</td>
|
||
<td class="code"><pre>'django.core.mail.backends.smtp.EmailBackend'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>EMAIL_ENABLED</td>
|
||
<td class="code"><pre>'True'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>EMAIL_HOST</td>
|
||
<td class="code"><pre>'localhost'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>EMAIL_HOST_PASSWORD</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>EMAIL_HOST_USER</td>
|
||
<td class="code"><pre>''</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>EMAIL_PORT</td>
|
||
<td class="code"><pre>'2525'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>EMAIL_PROVIDER</td>
|
||
<td class="code"><pre>'console'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>EMAIL_USE_TLS</td>
|
||
<td class="code"><pre>'False'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>FC_FONTATIONS</td>
|
||
<td class="code"><pre>'1'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>GATEWAY_INTERFACE</td>
|
||
<td class="code"><pre>'CGI/1.1'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>GDK_BACKEND</td>
|
||
<td class="code"><pre>'x11'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>GDMSESSION</td>
|
||
<td class="code"><pre>'mate'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>GDM_LANG</td>
|
||
<td class="code"><pre>'en_US'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>GIO_LAUNCHED_DESKTOP_FILE</td>
|
||
<td class="code"><pre>'/usr/share/applications/code.desktop'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>GIO_LAUNCHED_DESKTOP_FILE_PID</td>
|
||
<td class="code"><pre>'2259'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>GIT_ASKPASS</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>GNOME_KEYRING_CONTROL</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>GPG_AGENT_INFO</td>
|
||
<td class="code"><pre>'/run/user/1000/gnupg/S.gpg-agent:0:1'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>GSM_SKIP_SSH_AGENT_WORKAROUND</td>
|
||
<td class="code"><pre>'true'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>GTK3_MODULES</td>
|
||
<td class="code"><pre>'xapp-gtk3-module'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>GTK_MODULES</td>
|
||
<td class="code"><pre>'gail:atk-bridge'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>GTK_OVERLAY_SCROLLING</td>
|
||
<td class="code"><pre>'0'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>HIS_API_KEY</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>HIS_API_URL</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>HOME</td>
|
||
<td class="code"><pre>'/home/ismail'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>HTTP_ACCEPT</td>
|
||
<td class="code"><pre>'*/*'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>HTTP_HOST</td>
|
||
<td class="code"><pre>'localhost:8000'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>HTTP_USER_AGENT</td>
|
||
<td class="code"><pre>'curl/8.5.0'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>IM_CONFIG_PHASE</td>
|
||
<td class="code"><pre>'1'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LANG</td>
|
||
<td class="code"><pre>'en_US.UTF-8'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LANGUAGE</td>
|
||
<td class="code"><pre>'en_US'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LC_ADDRESS</td>
|
||
<td class="code"><pre>'ar_SA.UTF-8'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LC_IDENTIFICATION</td>
|
||
<td class="code"><pre>'ar_SA.UTF-8'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LC_MEASUREMENT</td>
|
||
<td class="code"><pre>'ar_SA.UTF-8'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LC_MONETARY</td>
|
||
<td class="code"><pre>'ar_SA.UTF-8'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LC_NAME</td>
|
||
<td class="code"><pre>'ar_SA.UTF-8'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LC_NUMERIC</td>
|
||
<td class="code"><pre>'ar_SA.UTF-8'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LC_PAPER</td>
|
||
<td class="code"><pre>'ar_SA.UTF-8'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LC_TELEPHONE</td>
|
||
<td class="code"><pre>'ar_SA.UTF-8'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LC_TIME</td>
|
||
<td class="code"><pre>'en_US.UTF-8'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LESSCLOSE</td>
|
||
<td class="code"><pre>'/usr/bin/lesspipe %s %s'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LESSOPEN</td>
|
||
<td class="code"><pre>'| /usr/bin/lesspipe %s'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LOGNAME</td>
|
||
<td class="code"><pre>'ismail'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LS_COLORS</td>
|
||
<td class="code"><pre>'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.crdownload=00;90:*.dpkg-dist=00;90:*.dpkg-new=00;90:*.dpkg-old=00;90:*.dpkg-tmp=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:*.swp=00;90:*.tmp=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>MANAGERPID</td>
|
||
<td class="code"><pre>'1065'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>MATE_DESKTOP_SESSION_ID</td>
|
||
<td class="code"><pre>'this-is-deprecated'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>MEMORY_PRESSURE_WATCH</td>
|
||
<td class="code"><pre>'/sys/fs/cgroup/user.slice/user-1000.slice/user@1000.service/session.slice/dbus.service/memory.pressure'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>MEMORY_PRESSURE_WRITE</td>
|
||
<td class="code"><pre>'c29tZSAyMDAwMDAgMjAwMDAwMAA='</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>MOH_API_KEY</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>MOH_API_URL</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>NVM_BIN</td>
|
||
<td class="code"><pre>'/home/ismail/.nvm/versions/node/v24.12.0/bin'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>NVM_CD_FLAGS</td>
|
||
<td class="code"><pre>''</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>NVM_DIR</td>
|
||
<td class="code"><pre>'/home/ismail/.nvm'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>NVM_INC</td>
|
||
<td class="code"><pre>'/home/ismail/.nvm/versions/node/v24.12.0/include/node'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>OPENROUTER_API_KEY</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>PAPERSIZE</td>
|
||
<td class="code"><pre>'a4'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>PATH</td>
|
||
<td class="code"><pre>'/home/ismail/projects/HH/.venv/bin:/home/ismail/projects/local_ai_builder/venv/bin:/home/ismail/.opencode/bin:/home/ismail/.local/bin:/home/ismail/.opencode/bin:/home/ismail/.nvm/versions/node/v24.12.0/bin:/home/ismail/.cargo/bin:/home/ismail/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/ismail/.vscode/extensions/ms-python.debugpy-2025.18.0-linux-x64/bundled/scripts/noConfigScripts'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>PATH_INFO</td>
|
||
<td class="code"><pre>'/surveys/s/H8d9tlVs0BgeAp1XA4NczXoiCcqAaN0r_lc0Eb63U1Y/'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>PS1</td>
|
||
<td class="code"><pre>('\\[\x1b]633;A\x07\\](venv) \\[\x1b]633;A\x07\\]\\[\\e]0;\\u@\\h: '
|
||
'\\w\\a\\]${debian_chroot:+($debian_chroot)}\\[\\033[01;32m\\]\\u@\\h\\[\\033[00m\\]:\\[\\033[01;34m\\]\\w\\[\\033[00m\\]\\$ '
|
||
'\\[\x1b]633;B\x07\\]\\[\x1b]633;B\x07\\]')</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>PWD</td>
|
||
<td class="code"><pre>'/home/ismail/projects/HH'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>PYDEVD_DISABLE_FILE_VALIDATION</td>
|
||
<td class="code"><pre>'1'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>PYTHONSTARTUP</td>
|
||
<td class="code"><pre>'/home/ismail/.config/Code/User/workspaceStorage/be2a9b869fd4f54d8616f8f370827124/ms-python.python/pythonrc.py'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>PYTHON_BASIC_REPL</td>
|
||
<td class="code"><pre>'1'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>QT_ACCESSIBILITY</td>
|
||
<td class="code"><pre>'1'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>QT_FONT_DPI</td>
|
||
<td class="code"><pre>'96'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>QT_SCALE_FACTOR</td>
|
||
<td class="code"><pre>'1'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>QUERY_STRING</td>
|
||
<td class="code"><pre>''</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>REMOTE_ADDR</td>
|
||
<td class="code"><pre>'127.0.0.1'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>REMOTE_HOST</td>
|
||
<td class="code"><pre>''</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>REQUEST_METHOD</td>
|
||
<td class="code"><pre>'GET'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>RUN_MAIN</td>
|
||
<td class="code"><pre>'true'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SCRIPT_NAME</td>
|
||
<td class="code"><pre>''</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SECRET_KEY</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SERVER_NAME</td>
|
||
<td class="code"><pre>'localhost'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SERVER_PORT</td>
|
||
<td class="code"><pre>'8000'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SERVER_PROTOCOL</td>
|
||
<td class="code"><pre>'HTTP/1.1'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SERVER_SOFTWARE</td>
|
||
<td class="code"><pre>'WSGIServer/0.2'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SESSION_MANAGER</td>
|
||
<td class="code"><pre>'local/ismail-Latitude-5500:@/tmp/.ICE-unix/1084,unix/ismail-Latitude-5500:/tmp/.ICE-unix/1084'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SHELL</td>
|
||
<td class="code"><pre>'/bin/bash'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SHLVL</td>
|
||
<td class="code"><pre>'0'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SMS_API_ENABLED</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SMS_API_KEY</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SMS_API_URL</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SMS_ENABLED</td>
|
||
<td class="code"><pre>'False'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SMS_PROVIDER</td>
|
||
<td class="code"><pre>'console'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SSH_AUTH_SOCK</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SYSTEMD_EXEC_PID</td>
|
||
<td class="code"><pre>'1090'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>TERM</td>
|
||
<td class="code"><pre>'xterm-256color'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>TERM_PROGRAM</td>
|
||
<td class="code"><pre>'vscode'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>TERM_PROGRAM_VERSION</td>
|
||
<td class="code"><pre>'1.108.1'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>TZ</td>
|
||
<td class="code"><pre>'Asia/Riyadh'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>USER</td>
|
||
<td class="code"><pre>'ismail'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>UV</td>
|
||
<td class="code"><pre>'/home/ismail/.local/bin/uv'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>UV_RUN_RECURSION_DEPTH</td>
|
||
<td class="code"><pre>'1'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>VIRTUAL_ENV</td>
|
||
<td class="code"><pre>'/home/ismail/projects/HH/.venv'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>VIRTUAL_ENV_PROMPT</td>
|
||
<td class="code"><pre>'(venv) '</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>VSCODE_DEBUGPY_ADAPTER_ENDPOINTS</td>
|
||
<td class="code"><pre>'/home/ismail/.vscode/extensions/ms-python.debugpy-2025.18.0-linux-x64/.noConfigDebugAdapterEndpoints/endpoint-982a1c8d3b85454b.txt'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>VSCODE_GIT_ASKPASS_EXTRA_ARGS</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>VSCODE_GIT_ASKPASS_MAIN</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>VSCODE_GIT_ASKPASS_NODE</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>VSCODE_GIT_IPC_HANDLE</td>
|
||
<td class="code"><pre>'/run/user/1000/vscode-git-4aa301eaf0.sock'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>VSCODE_PYTHON_AUTOACTIVATE_GUARD</td>
|
||
<td class="code"><pre>'1'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>WHATSAPP_ENABLED</td>
|
||
<td class="code"><pre>'False'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>WHATSAPP_PROVIDER</td>
|
||
<td class="code"><pre>'console'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>XAUTHORITY</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>XDG_CONFIG_DIRS</td>
|
||
<td class="code"><pre>'/etc/xdg/xdg-mate:/etc/xdg'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>XDG_CURRENT_DESKTOP</td>
|
||
<td class="code"><pre>'MATE'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>XDG_DATA_DIRS</td>
|
||
<td class="code"><pre>'/usr/share/mate:/usr/share/mate:/usr/share/gnome:/home/ismail/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>XDG_GREETER_DATA_DIR</td>
|
||
<td class="code"><pre>'/var/lib/lightdm-data/ismail'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>XDG_RUNTIME_DIR</td>
|
||
<td class="code"><pre>'/run/user/1000'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>XDG_SEAT_PATH</td>
|
||
<td class="code"><pre>'/org/freedesktop/DisplayManager/Seat0'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>XDG_SESSION_CLASS</td>
|
||
<td class="code"><pre>'user'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>XDG_SESSION_DESKTOP</td>
|
||
<td class="code"><pre>'mate'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>XDG_SESSION_PATH</td>
|
||
<td class="code"><pre>'/org/freedesktop/DisplayManager/Session0'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>XDG_SESSION_TYPE</td>
|
||
<td class="code"><pre>'x11'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>_</td>
|
||
<td class="code"><pre>'/home/ismail/.local/bin/uv'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>wsgi.errors</td>
|
||
<td class="code"><pre><_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf-8'></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>wsgi.file_wrapper</td>
|
||
<td class="code"><pre><class 'wsgiref.util.FileWrapper'></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>wsgi.input</td>
|
||
<td class="code"><pre><django.core.handlers.wsgi.LimitedStream object at 0x72a9aab30430></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>wsgi.multiprocess</td>
|
||
<td class="code"><pre>False</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>wsgi.multithread</td>
|
||
<td class="code"><pre>True</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>wsgi.run_once</td>
|
||
<td class="code"><pre>False</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>wsgi.url_scheme</td>
|
||
<td class="code"><pre>'http'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>wsgi.version</td>
|
||
<td class="code"><pre>(1, 0)</pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
|
||
|
||
<h3 id="settings-info">Settings</h3>
|
||
<h4>Using settings module <code>config.settings.dev</code></h4>
|
||
<table class="req">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Setting</th>
|
||
<th scope="col">Value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td>ABSOLUTE_URL_OVERRIDES</td>
|
||
<td class="code"><pre>{}</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>ADMINS</td>
|
||
<td class="code"><pre>[]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>AI_MAX_TOKENS</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>AI_MODEL</td>
|
||
<td class="code"><pre>'openai/gpt-4o-mini'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>AI_TEMPERATURE</td>
|
||
<td class="code"><pre>0.3</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>ALLOWED_HOSTS</td>
|
||
<td class="code"><pre>['localhost', '127.0.0.1', '0.0.0.0']</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>ANALYSIS_BATCH_SIZE</td>
|
||
<td class="code"><pre>2</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>ANALYSIS_ENABLED</td>
|
||
<td class="code"><pre>True</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>APPEND_SLASH</td>
|
||
<td class="code"><pre>True</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>AUTHENTICATION_BACKENDS</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>AUTH_PASSWORD_VALIDATORS</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>AUTH_USER_MODEL</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>BASE_DIR</td>
|
||
<td class="code"><pre>PosixPath('/home/ismail/projects/HH')</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CACHES</td>
|
||
<td class="code"><pre>{'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CACHE_MIDDLEWARE_ALIAS</td>
|
||
<td class="code"><pre>'default'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CACHE_MIDDLEWARE_KEY_PREFIX</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CACHE_MIDDLEWARE_SECONDS</td>
|
||
<td class="code"><pre>600</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CELERY_ACCEPT_CONTENT</td>
|
||
<td class="code"><pre>['json']</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CELERY_BEAT_SCHEDULER</td>
|
||
<td class="code"><pre>'django_celery_beat.schedulers:DatabaseScheduler'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CELERY_BROKER_URL</td>
|
||
<td class="code"><pre>'redis://localhost:6379/0'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CELERY_RESULT_BACKEND</td>
|
||
<td class="code"><pre>'redis://localhost:6379/0'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CELERY_RESULT_SERIALIZER</td>
|
||
<td class="code"><pre>'json'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CELERY_TASK_ALWAYS_EAGER</td>
|
||
<td class="code"><pre>False</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CELERY_TASK_EAGER_PROPAGATES</td>
|
||
<td class="code"><pre>True</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CELERY_TASK_SERIALIZER</td>
|
||
<td class="code"><pre>'json'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CELERY_TASK_TIME_LIMIT</td>
|
||
<td class="code"><pre>1800</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CELERY_TASK_TRACK_STARTED</td>
|
||
<td class="code"><pre>True</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CELERY_TIMEZONE</td>
|
||
<td class="code"><pre>'Asia/Riyadh'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CORS_ALLOW_ALL_ORIGINS</td>
|
||
<td class="code"><pre>True</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CSRF_COOKIE_AGE</td>
|
||
<td class="code"><pre>31449600</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CSRF_COOKIE_DOMAIN</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CSRF_COOKIE_HTTPONLY</td>
|
||
<td class="code"><pre>True</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CSRF_COOKIE_NAME</td>
|
||
<td class="code"><pre>'csrftoken'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CSRF_COOKIE_PATH</td>
|
||
<td class="code"><pre>'/'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CSRF_COOKIE_SAMESITE</td>
|
||
<td class="code"><pre>'Lax'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CSRF_COOKIE_SECURE</td>
|
||
<td class="code"><pre>False</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CSRF_FAILURE_VIEW</td>
|
||
<td class="code"><pre>'django.views.csrf.csrf_failure'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CSRF_HEADER_NAME</td>
|
||
<td class="code"><pre>'HTTP_X_CSRFTOKEN'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CSRF_TRUSTED_ORIGINS</td>
|
||
<td class="code"><pre>[]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CSRF_USE_SESSIONS</td>
|
||
<td class="code"><pre>False</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DATABASES</td>
|
||
<td class="code"><pre>{'default': {'ATOMIC_REQUESTS': False,
|
||
'AUTOCOMMIT': True,
|
||
'CONN_HEALTH_CHECKS': False,
|
||
'CONN_MAX_AGE': 0,
|
||
'ENGINE': 'django.db.backends.sqlite3',
|
||
'HOST': '',
|
||
'NAME': PosixPath('/home/ismail/projects/HH/db.sqlite3'),
|
||
'OPTIONS': {},
|
||
'PASSWORD': '********************',
|
||
'PORT': '',
|
||
'TEST': {'CHARSET': None,
|
||
'COLLATION': None,
|
||
'MIGRATE': True,
|
||
'MIRROR': None,
|
||
'NAME': None},
|
||
'TIME_ZONE': None,
|
||
'USER': ''}}</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DATABASE_ROUTERS</td>
|
||
<td class="code"><pre>[]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DATA_UPLOAD_MAX_MEMORY_SIZE</td>
|
||
<td class="code"><pre>2621440</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DATA_UPLOAD_MAX_NUMBER_FIELDS</td>
|
||
<td class="code"><pre>1000</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DATA_UPLOAD_MAX_NUMBER_FILES</td>
|
||
<td class="code"><pre>100</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DATETIME_FORMAT</td>
|
||
<td class="code"><pre>'N j, Y, P'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DATETIME_INPUT_FORMATS</td>
|
||
<td class="code"><pre>['%Y-%m-%d %H:%M:%S',
|
||
'%Y-%m-%d %H:%M:%S.%f',
|
||
'%Y-%m-%d %H:%M',
|
||
'%m/%d/%Y %H:%M:%S',
|
||
'%m/%d/%Y %H:%M:%S.%f',
|
||
'%m/%d/%Y %H:%M',
|
||
'%m/%d/%y %H:%M:%S',
|
||
'%m/%d/%y %H:%M:%S.%f',
|
||
'%m/%d/%y %H:%M']</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DATE_FORMAT</td>
|
||
<td class="code"><pre>'N j, Y'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DATE_INPUT_FORMATS</td>
|
||
<td class="code"><pre>['%Y-%m-%d',
|
||
'%m/%d/%Y',
|
||
'%m/%d/%y',
|
||
'%b %d %Y',
|
||
'%b %d, %Y',
|
||
'%d %b %Y',
|
||
'%d %b, %Y',
|
||
'%B %d %Y',
|
||
'%B %d, %Y',
|
||
'%d %B %Y',
|
||
'%d %B, %Y']</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DEBUG</td>
|
||
<td class="code"><pre>True</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DEBUG_PROPAGATE_EXCEPTIONS</td>
|
||
<td class="code"><pre>False</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DECIMAL_SEPARATOR</td>
|
||
<td class="code"><pre>'.'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DEFAULT_AUTO_FIELD</td>
|
||
<td class="code"><pre>'django.db.models.BigAutoField'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DEFAULT_CHARSET</td>
|
||
<td class="code"><pre>'utf-8'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DEFAULT_EXCEPTION_REPORTER</td>
|
||
<td class="code"><pre>'django.views.debug.ExceptionReporter'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DEFAULT_EXCEPTION_REPORTER_FILTER</td>
|
||
<td class="code"><pre>'django.views.debug.SafeExceptionReporterFilter'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DEFAULT_FROM_EMAIL</td>
|
||
<td class="code"><pre>'noreply@px360.sa'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DEFAULT_INDEX_TABLESPACE</td>
|
||
<td class="code"><pre>''</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DEFAULT_TABLESPACE</td>
|
||
<td class="code"><pre>''</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DISALLOWED_USER_AGENTS</td>
|
||
<td class="code"><pre>[]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>DJANGO_APPS</td>
|
||
<td class="code"><pre>['django.contrib.admin',
|
||
'django.contrib.auth',
|
||
'django.contrib.contenttypes',
|
||
'django.contrib.sessions',
|
||
'django.contrib.messages',
|
||
'django.contrib.staticfiles']</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>EMAIL_BACKEND</td>
|
||
<td class="code"><pre>'django.core.mail.backends.smtp.EmailBackend'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>EMAIL_HOST</td>
|
||
<td class="code"><pre>'localhost'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>EMAIL_HOST_PASSWORD</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>EMAIL_HOST_USER</td>
|
||
<td class="code"><pre>''</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>EMAIL_PORT</td>
|
||
<td class="code"><pre>2525</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>EMAIL_SSL_CERTFILE</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>EMAIL_SSL_KEYFILE</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>EMAIL_SUBJECT_PREFIX</td>
|
||
<td class="code"><pre>'[Django] '</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>EMAIL_TIMEOUT</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>EMAIL_USE_LOCALTIME</td>
|
||
<td class="code"><pre>False</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>EMAIL_USE_SSL</td>
|
||
<td class="code"><pre>False</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>EMAIL_USE_TLS</td>
|
||
<td class="code"><pre>False</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>EXTERNAL_NOTIFICATION_API</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>FACEBOOK_ACCESS_TOKEN</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>FACEBOOK_PAGE_ID</td>
|
||
<td class="code"><pre>'938104059393026'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>FILE_UPLOAD_DIRECTORY_PERMISSIONS</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>FILE_UPLOAD_HANDLERS</td>
|
||
<td class="code"><pre>['django.core.files.uploadhandler.MemoryFileUploadHandler',
|
||
'django.core.files.uploadhandler.TemporaryFileUploadHandler']</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>FILE_UPLOAD_MAX_MEMORY_SIZE</td>
|
||
<td class="code"><pre>2621440</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>FILE_UPLOAD_PERMISSIONS</td>
|
||
<td class="code"><pre>420</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>FILE_UPLOAD_TEMP_DIR</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>FIRST_DAY_OF_WEEK</td>
|
||
<td class="code"><pre>0</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>FIXTURE_DIRS</td>
|
||
<td class="code"><pre>[]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>FORCE_SCRIPT_NAME</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>FORMAT_MODULE_PATH</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>FORM_RENDERER</td>
|
||
<td class="code"><pre>'django.forms.renderers.DjangoTemplates'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>GOOGLE_CREDENTIALS_FILE</td>
|
||
<td class="code"><pre>'client_secret.json'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>GOOGLE_LOCATIONS</td>
|
||
<td class="code"><pre>[]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>GOOGLE_TOKEN_FILE</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>IGNORABLE_404_URLS</td>
|
||
<td class="code"><pre>[]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>INSTAGRAM_ACCESS_TOKEN</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>INSTAGRAM_ACCOUNT_ID</td>
|
||
<td class="code"><pre>'17841431861985364'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>INSTALLED_APPS</td>
|
||
<td class="code"><pre>['django.contrib.admin',
|
||
'django.contrib.auth',
|
||
'django.contrib.contenttypes',
|
||
'django.contrib.sessions',
|
||
'django.contrib.messages',
|
||
'django.contrib.staticfiles',
|
||
'rest_framework',
|
||
'rest_framework_simplejwt',
|
||
'django_filters',
|
||
'drf_spectacular',
|
||
'django_celery_beat',
|
||
'apps.core',
|
||
'apps.accounts',
|
||
'apps.organizations',
|
||
'apps.journeys',
|
||
'apps.surveys',
|
||
'apps.complaints',
|
||
'apps.feedback',
|
||
'apps.callcenter',
|
||
'apps.social',
|
||
'apps.px_action_center',
|
||
'apps.analytics',
|
||
'apps.physicians',
|
||
'apps.projects',
|
||
'apps.integrations',
|
||
'apps.notifications',
|
||
'apps.ai_engine',
|
||
'apps.dashboard',
|
||
'apps.appreciation',
|
||
'apps.observations',
|
||
'apps.px_sources',
|
||
'apps.references',
|
||
'apps.standards',
|
||
'apps.simulator',
|
||
'django_extensions']</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>INTERNAL_IPS</td>
|
||
<td class="code"><pre>[]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LANGUAGES</td>
|
||
<td class="code"><pre>[('en', 'English'), ('ar', 'Arabic')]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LANGUAGES_BIDI</td>
|
||
<td class="code"><pre>['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ug', 'ur']</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LANGUAGE_CODE</td>
|
||
<td class="code"><pre>'en-us'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LANGUAGE_COOKIE_AGE</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LANGUAGE_COOKIE_DOMAIN</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LANGUAGE_COOKIE_HTTPONLY</td>
|
||
<td class="code"><pre>False</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LANGUAGE_COOKIE_NAME</td>
|
||
<td class="code"><pre>'django_language'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LANGUAGE_COOKIE_PATH</td>
|
||
<td class="code"><pre>'/'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LANGUAGE_COOKIE_SAMESITE</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LANGUAGE_COOKIE_SECURE</td>
|
||
<td class="code"><pre>False</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LINKEDIN_ACCESS_TOKEN</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LINKEDIN_ORGANIZATION_ID</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LOCALE_PATHS</td>
|
||
<td class="code"><pre>[PosixPath('/home/ismail/projects/HH/locale')]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LOCAL_APPS</td>
|
||
<td class="code"><pre>['apps.core',
|
||
'apps.accounts',
|
||
'apps.organizations',
|
||
'apps.journeys',
|
||
'apps.surveys',
|
||
'apps.complaints',
|
||
'apps.feedback',
|
||
'apps.callcenter',
|
||
'apps.social',
|
||
'apps.px_action_center',
|
||
'apps.analytics',
|
||
'apps.physicians',
|
||
'apps.projects',
|
||
'apps.integrations',
|
||
'apps.notifications',
|
||
'apps.ai_engine',
|
||
'apps.dashboard',
|
||
'apps.appreciation',
|
||
'apps.observations',
|
||
'apps.px_sources',
|
||
'apps.references',
|
||
'apps.standards',
|
||
'apps.simulator']</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LOGGING</td>
|
||
<td class="code"><pre>{'disable_existing_loggers': False,
|
||
'filters': {'require_debug_true': {'()': 'django.utils.log.RequireDebugTrue'}},
|
||
'formatters': {'simple': {'format': '{levelname} {message}', 'style': '{'},
|
||
'verbose': {'format': '{levelname} {asctime} {module} '
|
||
'{process:d} {thread:d} {message}',
|
||
'style': '{'}},
|
||
'handlers': {'console': {'class': 'logging.StreamHandler',
|
||
'formatter': 'verbose',
|
||
'level': 'INFO'},
|
||
'file': {'backupCount': 10,
|
||
'class': 'logging.handlers.RotatingFileHandler',
|
||
'filename': PosixPath('/home/ismail/projects/HH/logs/px360.log'),
|
||
'formatter': 'verbose',
|
||
'level': 'INFO',
|
||
'maxBytes': 15728640},
|
||
'integration_file': {'backupCount': 10,
|
||
'class': 'logging.handlers.RotatingFileHandler',
|
||
'filename': PosixPath('/home/ismail/projects/HH/logs/integrations.log'),
|
||
'formatter': 'verbose',
|
||
'level': 'INFO',
|
||
'maxBytes': 15728640}},
|
||
'loggers': {'apps': {'handlers': ['console', 'file'],
|
||
'level': 'DEBUG',
|
||
'propagate': False},
|
||
'apps.integrations': {'handlers': ['console', 'integration_file'],
|
||
'level': 'INFO',
|
||
'propagate': False},
|
||
'django': {'handlers': ['console', 'file'],
|
||
'level': 'DEBUG',
|
||
'propagate': False}},
|
||
'version': 1}</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LOGGING_CONFIG</td>
|
||
<td class="code"><pre>'logging.config.dictConfig'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LOGIN_ATTEMPT_TIMEOUT_MINUTES</td>
|
||
<td class="code"><pre>30</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LOGIN_REDIRECT_URL</td>
|
||
<td class="code"><pre>'/'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LOGIN_URL</td>
|
||
<td class="code"><pre>'/accounts/login/'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LOGOUT_REDIRECT_URL</td>
|
||
<td class="code"><pre>'/accounts/login/'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>LOGS_DIR</td>
|
||
<td class="code"><pre>PosixPath('/home/ismail/projects/HH/logs')</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>MANAGERS</td>
|
||
<td class="code"><pre>[]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>MAX_LOGIN_ATTEMPTS</td>
|
||
<td class="code"><pre>5</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>MEDIA_ROOT</td>
|
||
<td class="code"><pre>PosixPath('/home/ismail/projects/HH/media')</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>MEDIA_URL</td>
|
||
<td class="code"><pre>'/media/'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>MESSAGE_STORAGE</td>
|
||
<td class="code"><pre>'django.contrib.messages.storage.fallback.FallbackStorage'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>MIDDLEWARE</td>
|
||
<td class="code"><pre>['django.middleware.security.SecurityMiddleware',
|
||
'whitenoise.middleware.WhiteNoiseMiddleware',
|
||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||
'django.middleware.locale.LocaleMiddleware',
|
||
'django.middleware.common.CommonMiddleware',
|
||
'django.middleware.csrf.CsrfViewMiddleware',
|
||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||
'apps.core.middleware.TenantMiddleware',
|
||
'django.contrib.messages.middleware.MessageMiddleware',
|
||
'django.middleware.clickjacking.XFrameOptionsMiddleware']</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>MIGRATION_MODULES</td>
|
||
<td class="code"><pre>{}</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>MONTH_DAY_FORMAT</td>
|
||
<td class="code"><pre>'F j'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>NOTIFICATION_CHANNELS</td>
|
||
<td class="code"><pre>{'email': {'enabled': True, 'provider': 'console'},
|
||
'sms': {'enabled': False, 'provider': 'console'},
|
||
'whatsapp': {'enabled': False, 'provider': 'console'}}</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>NUMBER_GROUPING</td>
|
||
<td class="code"><pre>0</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>OPENROUTER_API_KEY</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>OPENROUTER_MODEL</td>
|
||
<td class="code"><pre>'google/gemma-3-27b-it:free'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>PASSWORD_COMPLEXITY</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>PASSWORD_HASHERS</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>PASSWORD_MIN_LENGTH</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>PASSWORD_RESET_TIMEOUT</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>PREPEND_WWW</td>
|
||
<td class="code"><pre>False</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>REST_FRAMEWORK</td>
|
||
<td class="code"><pre>{'DEFAULT_AUTHENTICATION_CLASSES': '********************',
|
||
'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend',
|
||
'rest_framework.filters.SearchFilter',
|
||
'rest_framework.filters.OrderingFilter'],
|
||
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
|
||
'DEFAULT_PERMISSION_CLASSES': ['rest_framework.permissions.IsAuthenticated'],
|
||
'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema',
|
||
'PAGE_SIZE': 50}</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>ROOT_URLCONF</td>
|
||
<td class="code"><pre>'config.urls'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SECRET_KEY</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SECRET_KEY_FALLBACKS</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SECURE_BROWSER_XSS_FILTER</td>
|
||
<td class="code"><pre>True</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SECURE_CONTENT_TYPE_NOSNIFF</td>
|
||
<td class="code"><pre>True</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SECURE_CROSS_ORIGIN_OPENER_POLICY</td>
|
||
<td class="code"><pre>'same-origin'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SECURE_CSP</td>
|
||
<td class="code"><pre>{}</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SECURE_CSP_REPORT_ONLY</td>
|
||
<td class="code"><pre>{}</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SECURE_HSTS_INCLUDE_SUBDOMAINS</td>
|
||
<td class="code"><pre>False</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SECURE_HSTS_PRELOAD</td>
|
||
<td class="code"><pre>False</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SECURE_HSTS_SECONDS</td>
|
||
<td class="code"><pre>0</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SECURE_PROXY_SSL_HEADER</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SECURE_REDIRECT_EXEMPT</td>
|
||
<td class="code"><pre>[]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SECURE_REFERRER_POLICY</td>
|
||
<td class="code"><pre>'same-origin'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SECURE_SSL_HOST</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SECURE_SSL_REDIRECT</td>
|
||
<td class="code"><pre>False</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SERVER_EMAIL</td>
|
||
<td class="code"><pre>'root@localhost'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SESSION_CACHE_ALIAS</td>
|
||
<td class="code"><pre>'default'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SESSION_COOKIE_AGE</td>
|
||
<td class="code"><pre>7200</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SESSION_COOKIE_DOMAIN</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SESSION_COOKIE_HTTPONLY</td>
|
||
<td class="code"><pre>True</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SESSION_COOKIE_NAME</td>
|
||
<td class="code"><pre>'sessionid'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SESSION_COOKIE_PATH</td>
|
||
<td class="code"><pre>'/'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SESSION_COOKIE_SAMESITE</td>
|
||
<td class="code"><pre>'Lax'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SESSION_COOKIE_SECURE</td>
|
||
<td class="code"><pre>False</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SESSION_ENGINE</td>
|
||
<td class="code"><pre>'django.contrib.sessions.backends.db'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SESSION_EXPIRE_AT_BROWSER_CLOSE</td>
|
||
<td class="code"><pre>True</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SESSION_FILE_PATH</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SESSION_SAVE_EVERY_REQUEST</td>
|
||
<td class="code"><pre>True</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SESSION_SERIALIZER</td>
|
||
<td class="code"><pre>'django.contrib.sessions.serializers.JSONSerializer'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SETTINGS_MODULE</td>
|
||
<td class="code"><pre>'config.settings.dev'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SHORT_DATETIME_FORMAT</td>
|
||
<td class="code"><pre>'m/d/Y P'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SHORT_DATE_FORMAT</td>
|
||
<td class="code"><pre>'m/d/Y'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SIGNING_BACKEND</td>
|
||
<td class="code"><pre>'django.core.signing.TimestampSigner'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SILENCED_SYSTEM_CHECKS</td>
|
||
<td class="code"><pre>[]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SIMPLE_JWT</td>
|
||
<td class="code"><pre>{'ACCESS_TOKEN_LIFETIME': '********************',
|
||
'BLACKLIST_AFTER_ROTATION': True,
|
||
'REFRESH_TOKEN_LIFETIME': '********************',
|
||
'ROTATE_REFRESH_TOKENS': '********************',
|
||
'UPDATE_LAST_LOGIN': True}</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SLA_DEFAULTS</td>
|
||
<td class="code"><pre>{'action': {'critical': 24, 'high': 48, 'low': 120, 'medium': 72},
|
||
'complaint': {'critical': 12, 'high': 24, 'low': 72, 'medium': 48}}</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SPECTACULAR_SETTINGS</td>
|
||
<td class="code"><pre>{'DESCRIPTION': 'Patient Experience 360 Management System API',
|
||
'SERVE_INCLUDE_SCHEMA': False,
|
||
'TITLE': 'PX360 API',
|
||
'VERSION': '1.0.0'}</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>STATICFILES_DIRS</td>
|
||
<td class="code"><pre>[PosixPath('/home/ismail/projects/HH/static')]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>STATICFILES_FINDERS</td>
|
||
<td class="code"><pre>['django.contrib.staticfiles.finders.FileSystemFinder',
|
||
'django.contrib.staticfiles.finders.AppDirectoriesFinder']</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>STATIC_ROOT</td>
|
||
<td class="code"><pre>PosixPath('/home/ismail/projects/HH/staticfiles')</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>STATIC_URL</td>
|
||
<td class="code"><pre>'/static/'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>STORAGES</td>
|
||
<td class="code"><pre>{'default': {'BACKEND': 'django.core.files.storage.FileSystemStorage'},
|
||
'staticfiles': {'BACKEND': 'whitenoise.storage.CompressedManifestStaticFilesStorage'}}</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SURVEY_NEGATIVE_THRESHOLD</td>
|
||
<td class="code"><pre>3</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>SURVEY_TOKEN_EXPIRY_DAYS</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>TASKS</td>
|
||
<td class="code"><pre>{'default': {'BACKEND': 'django.tasks.backends.immediate.ImmediateBackend'}}</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>TEMPLATES</td>
|
||
<td class="code"><pre>[{'APP_DIRS': True,
|
||
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
||
'DIRS': [PosixPath('/home/ismail/projects/HH/templates')],
|
||
'OPTIONS': {'context_processors': ['django.template.context_processors.debug',
|
||
'django.template.context_processors.request',
|
||
'django.contrib.auth.context_processors.auth',
|
||
'django.contrib.messages.context_processors.messages',
|
||
'django.template.context_processors.i18n',
|
||
'apps.core.context_processors.sidebar_counts',
|
||
'apps.core.context_processors.hospital_context']}}]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>TENANCY_ENABLED</td>
|
||
<td class="code"><pre>True</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>TENANT_FIELD</td>
|
||
<td class="code"><pre>'hospital'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>TENANT_ISOLATION_LEVEL</td>
|
||
<td class="code"><pre>'strict'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>TENANT_MODEL</td>
|
||
<td class="code"><pre>'organizations.Hospital'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>TEST_NON_SERIALIZED_APPS</td>
|
||
<td class="code"><pre>[]</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>TEST_RUNNER</td>
|
||
<td class="code"><pre>'django.test.runner.DiscoverRunner'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>THIRD_PARTY_APPS</td>
|
||
<td class="code"><pre>['rest_framework',
|
||
'rest_framework_simplejwt',
|
||
'django_filters',
|
||
'drf_spectacular',
|
||
'django_celery_beat']</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>THOUSAND_SEPARATOR</td>
|
||
<td class="code"><pre>','</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>TIME_FORMAT</td>
|
||
<td class="code"><pre>'P'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>TIME_INPUT_FORMATS</td>
|
||
<td class="code"><pre>['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>TIME_ZONE</td>
|
||
<td class="code"><pre>'Asia/Riyadh'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>TWITTER_BEARER_TOKEN</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>TWITTER_USERNAME</td>
|
||
<td class="code"><pre>None</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>URLIZE_ASSUME_HTTPS</td>
|
||
<td class="code"><pre>False</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>USE_I18N</td>
|
||
<td class="code"><pre>True</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>USE_THOUSAND_SEPARATOR</td>
|
||
<td class="code"><pre>False</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>USE_TZ</td>
|
||
<td class="code"><pre>True</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>USE_X_FORWARDED_HOST</td>
|
||
<td class="code"><pre>False</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>USE_X_FORWARDED_PORT</td>
|
||
<td class="code"><pre>False</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>WSGI_APPLICATION</td>
|
||
<td class="code"><pre>'config.wsgi.application'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>X_FRAME_OPTIONS</td>
|
||
<td class="code"><pre>'DENY'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>YEAR_MONTH_FORMAT</td>
|
||
<td class="code"><pre>'F Y'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>YOUTUBE_API_KEY</td>
|
||
<td class="code"><pre>'********************'</pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>YOUTUBE_CHANNEL_ID</td>
|
||
<td class="code"><pre>'UCKoEfCXsm4_cQMtqJTvZUVQ'</pre></td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
|
||
</div>
|
||
</main>
|
||
|
||
|
||
<footer id="explanation">
|
||
<p>
|
||
You’re seeing this error because you have <code>DEBUG = True</code> in your
|
||
Django settings file. Change that to <code>False</code>, and Django will
|
||
display a standard page generated by the handler for this status code.
|
||
</p>
|
||
</footer>
|
||
|
||
</body>
|
||
</html>
|