[Errno 13] Permission denied: '/srv/webui/static/CACHE/css/hyperkitty.e05f56ef6d5b.css'
Request Method: | GET |
---|---|
Request URL: | https://lists.stg.fedoraproject.org/archives/list/users@lists.fedoraproject.org/2019/5/ |
Django Version: | 3.2.20 |
Exception Type: | PermissionError |
Exception Value: | [Errno 13] Permission denied: '/srv/webui/static/CACHE/css/hyperkitty.e05f56ef6d5b.css' |
Exception Location: | /usr/lib/python3.9/site-packages/django/core/files/storage.py, line 279, in _save |
Python Executable: | /usr/bin/python3 |
Python Version: | 3.9.18 |
Python Path: | ['/usr/lib64/python39.zip', '/usr/lib64/python3.9', '/usr/lib64/python3.9/lib-dynload', '/usr/lib64/python3.9/site-packages', '/usr/lib/python3.9/site-packages', '/srv/webui/config'] |
Server time: | Mon, 18 Mar 2024 23:06:08 -0500 |
In template /usr/lib/python3.9/site-packages/hyperkitty/templates/hyperkitty/base.html
, error at line 17
7 | <head> |
---|---|
8 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> |
9 | <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
10 | <meta name="ROBOTS" content="INDEX, FOLLOW" /> |
11 | <title>{% block head_title %}{{ site_name }}{% endblock %}</title> |
12 | <meta name="author" content="" /> |
13 | <meta name="dc.language" content="en" /> |
14 | <link rel="shortcut icon" href="{% static 'hyperkitty/img/favicon.ico' %}" /> |
15 | <link rel="stylesheet" href="{% static 'hyperkitty/libs/jquery/smoothness/jquery-ui-1.13.1.min.css' %}" type="text/css" media="all" /> |
16 | <link rel="stylesheet" href="{% static 'hyperkitty/libs/fonts/font-awesome/css/font-awesome.min.css' %}" type="text/css" media="all" /> |
17 | {% compress css %} |
18 | <link rel="stylesheet" href="{% static 'hyperkitty/libs/fonts/icomoon/icomoon.css' %}" type="text/css" media="all" /> |
19 | <link rel="stylesheet" href="{% static 'hyperkitty/libs/fonts/droid/droid.css' %}" type="text/css" media="all" /> |
20 | <link rel="stylesheet" href="{% static 'django-mailman3/css/main.css' %}" /> |
21 | <link rel="stylesheet" type="text/x-scss" media="all" href="{% static 'hyperkitty/sass/hyperkitty.scss' %}" /> |
22 | {% endcompress %} |
23 | {% block additional_stylesheets %} {% endblock %} |
24 | {% block head_feed %}{% endblock %} |
25 | {% include 'hyperkitty/headers.html' %} |
26 | </head> |
27 |
/usr/lib/python3.9/site-packages/django/core/handlers/exception.py
, line 47, in inner
response = await sync_to_async(response_for_exception, thread_sensitive=False)(request, exc)
return response
return inner
else:
@wraps(get_response)
def inner(request):
try:
response = get_response(request)…
except Exception as exc:
response = response_for_exception(request, exc)
return response
return inner
Variable | Value |
---|---|
exc | PermissionError(13, 'Permission denied') |
get_response | <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7f3df8b8cf70>> |
request | <WSGIRequest: GET '/archives/list/users@lists.fedoraproject.org/2019/5/'> |
/usr/lib/python3.9/site-packages/django/core/handlers/base.py
, line 181, in _get_response
if response is None:
wrapped_callback = self.make_view_atomic(callback)
# If it is an asynchronous view, run it in a subthread.
if asyncio.iscoroutinefunction(wrapped_callback):
wrapped_callback = async_to_sync(wrapped_callback)
try:
response = wrapped_callback(request, *callback_args, **callback_kwargs)…
except Exception as e:
response = self.process_exception_by_middleware(e, request)
if response is None:
raise
# Complain if the view returned None (a common error).
Variable | Value |
---|---|
callback | <function archives at 0x7f3deb4b0c10> |
callback_args | () |
callback_kwargs | {'mlist_fqdn': 'users@lists.fedoraproject.org', 'month': '5', 'year': '2019'} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x7f3debe5bd00>> |
request | <WSGIRequest: GET '/archives/list/users@lists.fedoraproject.org/2019/5/'> |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7f3df8b8cf70> |
wrapped_callback | <function archives at 0x7f3deb4b0c10> |
/usr/lib/python3.9/site-packages/hyperkitty/lib/view_helpers.py
, line 137, in inner
return render(
request, "hyperkitty/errors/private.html", {
"mlist": mlist,
}, status=403)
# Set this here so that the view doesn't have to fetch and create
# the mlist object again.
request.mlist = mlist
return func(request, *args, **kwargs)…
return inner
def is_mlist_authorized(request, mlist):
if not mlist.is_private:
return True
Variable | Value |
---|---|
args | () |
func | <function archives at 0x7f3deb4b0b80> |
kwargs | {'mlist_fqdn': 'users@lists.fedoraproject.org', 'month': '5', 'year': '2019'} |
mlist | <MailingList users@lists.fedoraproject.org (users.lists.fedoraproject.org)> |
mlist_fqdn | 'users@lists.fedoraproject.org' |
request | <WSGIRequest: GET '/archives/list/users@lists.fedoraproject.org/2019/5/'> |
/usr/lib/python3.9/site-packages/hyperkitty/views/mlist.py
, line 127, in archives
"list_title": list_title.capitalize(),
"no_results_text": no_results_text,
"export": export,
}
if day is None:
extra_context["participants_count"] = \
mlist.get_participants_count_for_month(int(year), int(month))
return _thread_list(request, mlist, threads, extra_context=extra_context)…
def _thread_list(request, mlist, threads,
template_name='hyperkitty/thread_list.html',
extra_context=None):
threads = paginate(threads,
Variable | Value |
---|---|
begin_date | datetime.datetime(2019, 5, 1, 0, 0, tzinfo=<UTC>) |
day | None |
end_date | datetime.datetime(2019, 6, 1, 0, 0, tzinfo=<UTC>) |
export | {'message': 'Download', 'title': 'This month in gzipped mbox format', 'url': '/archives/list/users@lists.fedoraproject.org/export/users@lists.fedoraproject.org-2019-06.mbox.gz?start=2019-05-01&end=2019-06-01'} |
extra_context | {'export': {'message': 'Download', 'title': 'This month in gzipped mbox format', 'url': '/archives/list/users@lists.fedoraproject.org/export/users@lists.fedoraproject.org-2019-06.mbox.gz?start=2019-05-01&end=2019-06-01'}, 'list_title': 'May 2019', 'month': datetime.datetime(2019, 5, 1, 0, 0, tzinfo=<UTC>), 'month_num': 5, 'no_results_text': 'for this month', 'participants_count': 130} |
list_title | 'May 2019' |
mlist | <MailingList users@lists.fedoraproject.org (users.lists.fedoraproject.org)> |
mlist_fqdn | 'users@lists.fedoraproject.org' |
month | '5' |
no_results_text | 'for this month' |
request | <WSGIRequest: GET '/archives/list/users@lists.fedoraproject.org/2019/5/'> |
threads | <QuerySet [<Thread: Apache and umask for document root>, <Thread: SATA optical drives>, <Thread: [FC8] ssh and CAC card???>, <Thread: Changing date with procmail>, <Thread: Anyone running F11 on a Dell mini ? (Or another mini ?)>, <Thread: Re: Backing up system>, <Thread: What do you open .mobi files with??>, <Thread: Updated info about disabling tracker related processes?>, <Thread: Fedora 30: after update aMule do not work anymore>, <Thread: comments in pdf>, <Thread: VPN options>, <Thread: How do I generate grub for legacy?>, <Thread: copy and paste from mouse when window full of icons?>, <Thread: Why Must I Do "dnf clean all" Before Updating Will Proceed?>, <Thread: f29 to f30 and grub config only memtest present>, <Thread: Konqueror :-{>, <Thread: Fedora 30 and problem with monitor resolution detection in gdm/Gnome?>, <Thread: RPM specfile error with F30>, <Thread: F29 to F30 VMware upgrade>, <Thread: Failed to synchronize cache for repo 'fedora-modular' (F29)>, '...(remaining elements truncated)...']> |
year | '2019' |
/usr/lib/python3.9/site-packages/hyperkitty/views/mlist.py
, line 194, in _thread_list
context = {
'mlist': mlist,
'threads': threads,
'months_list': get_months(mlist),
}
if extra_context is not None:
context.update(extra_context)
return render(request, template_name, context)…
@check_mlist_private
def overview(request, mlist_fqdn=None):
if not mlist_fqdn:
return redirect('/')
Variable | Value |
---|---|
context | {'export': {'message': 'Download', 'title': 'This month in gzipped mbox format', 'url': '/archives/list/users@lists.fedoraproject.org/export/users@lists.fedoraproject.org-2019-06.mbox.gz?start=2019-05-01&end=2019-06-01'}, 'list_title': 'May 2019', 'mlist': <MailingList users@lists.fedoraproject.org (users.lists.fedoraproject.org)>, 'month': datetime.datetime(2019, 5, 1, 0, 0, tzinfo=<UTC>), 'month_num': 5, 'months_list': {1980: range(11, 13), 1981: range(1, 13), 1982: range(1, 13), 1983: range(1, 13), 1984: range(1, 13), 1985: range(1, 13), 1986: range(1, 13), 1987: range(1, 13), 1988: range(1, 13), 1989: range(1, 13), 1990: range(1, 13), 1991: range(1, 13), 1992: range(1, 13), 1993: range(1, 13), 1994: range(1, 13), 1995: range(1, 13), 1996: range(1, 13), 1997: range(1, 13), 1998: range(1, 13), 1999: range(1, 13), 2000: range(1, 13), 2001: range(1, 13), 2002: range(1, 13), 2003: range(1, 13), 2004: range(1, 13), 2005: range(1, 13), 2006: range(1, 13), 2007: range(1, 13), 2008: range(1, 13), 2009: range(1, 13), 2010: range(1, 13), 2011: range(1, 13), 2012: range(1, 13), 2013: range(1, 13), 2014: range(1, 13), 2015: range(1, 13), 2016: range(1, 13), 2017: range(1, 13), 2018: range(1, 13), 2019: range(1, 13), 2020: range(1, 13), 2021: range(1, 13), 2022: range(1, 13), 2023: range(1, 13), 2024: range(1, 4)}, 'no_results_text': 'for this month', 'participants_count': 130, 'threads': <Page 1 of 13>} |
extra_context | {'export': {'message': 'Download', 'title': 'This month in gzipped mbox format', 'url': '/archives/list/users@lists.fedoraproject.org/export/users@lists.fedoraproject.org-2019-06.mbox.gz?start=2019-05-01&end=2019-06-01'}, 'list_title': 'May 2019', 'month': datetime.datetime(2019, 5, 1, 0, 0, tzinfo=<UTC>), 'month_num': 5, 'no_results_text': 'for this month', 'participants_count': 130} |
mlist | <MailingList users@lists.fedoraproject.org (users.lists.fedoraproject.org)> |
request | <WSGIRequest: GET '/archives/list/users@lists.fedoraproject.org/2019/5/'> |
template_name | 'hyperkitty/thread_list.html' |
threads | <Page 1 of 13> |
/usr/lib/python3.9/site-packages/django/shortcuts.py
, line 19, in render
def render(request, template_name, context=None, content_type=None, status=None, using=None):
"""
Return a HttpResponse whose content is filled with the result of calling
django.template.loader.render_to_string() with the passed arguments.
"""
content = loader.render_to_string(template_name, context, request, using=using)…
return HttpResponse(content, content_type, status)
def redirect(to, *args, permanent=False, **kwargs):
"""
Return an HttpResponseRedirect to the appropriate URL for the arguments
Variable | Value |
---|---|
content_type | None |
context | {'export': {'message': 'Download', 'title': 'This month in gzipped mbox format', 'url': '/archives/list/users@lists.fedoraproject.org/export/users@lists.fedoraproject.org-2019-06.mbox.gz?start=2019-05-01&end=2019-06-01'}, 'list_title': 'May 2019', 'mlist': <MailingList users@lists.fedoraproject.org (users.lists.fedoraproject.org)>, 'month': datetime.datetime(2019, 5, 1, 0, 0, tzinfo=<UTC>), 'month_num': 5, 'months_list': {1980: range(11, 13), 1981: range(1, 13), 1982: range(1, 13), 1983: range(1, 13), 1984: range(1, 13), 1985: range(1, 13), 1986: range(1, 13), 1987: range(1, 13), 1988: range(1, 13), 1989: range(1, 13), 1990: range(1, 13), 1991: range(1, 13), 1992: range(1, 13), 1993: range(1, 13), 1994: range(1, 13), 1995: range(1, 13), 1996: range(1, 13), 1997: range(1, 13), 1998: range(1, 13), 1999: range(1, 13), 2000: range(1, 13), 2001: range(1, 13), 2002: range(1, 13), 2003: range(1, 13), 2004: range(1, 13), 2005: range(1, 13), 2006: range(1, 13), 2007: range(1, 13), 2008: range(1, 13), 2009: range(1, 13), 2010: range(1, 13), 2011: range(1, 13), 2012: range(1, 13), 2013: range(1, 13), 2014: range(1, 13), 2015: range(1, 13), 2016: range(1, 13), 2017: range(1, 13), 2018: range(1, 13), 2019: range(1, 13), 2020: range(1, 13), 2021: range(1, 13), 2022: range(1, 13), 2023: range(1, 13), 2024: range(1, 4)}, 'no_results_text': 'for this month', 'participants_count': 130, 'threads': <Page 1 of 13>} |
request | <WSGIRequest: GET '/archives/list/users@lists.fedoraproject.org/2019/5/'> |
status | None |
template_name | 'hyperkitty/thread_list.html' |
using | None |
/usr/lib/python3.9/site-packages/django/template/loader.py
, line 62, in render_to_string
template_name may be a string or a list of strings.
"""
if isinstance(template_name, (list, tuple)):
template = select_template(template_name, using=using)
else:
template = get_template(template_name, using=using)
return template.render(context, request)…
def _engine_list(using=None):
return engines.all() if using is None else [engines[using]]
Variable | Value |
---|---|
context | {'export': {'message': 'Download', 'title': 'This month in gzipped mbox format', 'url': '/archives/list/users@lists.fedoraproject.org/export/users@lists.fedoraproject.org-2019-06.mbox.gz?start=2019-05-01&end=2019-06-01'}, 'list_title': 'May 2019', 'mlist': <MailingList users@lists.fedoraproject.org (users.lists.fedoraproject.org)>, 'month': datetime.datetime(2019, 5, 1, 0, 0, tzinfo=<UTC>), 'month_num': 5, 'months_list': {1980: range(11, 13), 1981: range(1, 13), 1982: range(1, 13), 1983: range(1, 13), 1984: range(1, 13), 1985: range(1, 13), 1986: range(1, 13), 1987: range(1, 13), 1988: range(1, 13), 1989: range(1, 13), 1990: range(1, 13), 1991: range(1, 13), 1992: range(1, 13), 1993: range(1, 13), 1994: range(1, 13), 1995: range(1, 13), 1996: range(1, 13), 1997: range(1, 13), 1998: range(1, 13), 1999: range(1, 13), 2000: range(1, 13), 2001: range(1, 13), 2002: range(1, 13), 2003: range(1, 13), 2004: range(1, 13), 2005: range(1, 13), 2006: range(1, 13), 2007: range(1, 13), 2008: range(1, 13), 2009: range(1, 13), 2010: range(1, 13), 2011: range(1, 13), 2012: range(1, 13), 2013: range(1, 13), 2014: range(1, 13), 2015: range(1, 13), 2016: range(1, 13), 2017: range(1, 13), 2018: range(1, 13), 2019: range(1, 13), 2020: range(1, 13), 2021: range(1, 13), 2022: range(1, 13), 2023: range(1, 13), 2024: range(1, 4)}, 'no_results_text': 'for this month', 'participants_count': 130, 'threads': <Page 1 of 13>} |
request | <WSGIRequest: GET '/archives/list/users@lists.fedoraproject.org/2019/5/'> |
template | <django.template.backends.django.Template object at 0x7f3dea8d35e0> |
template_name | 'hyperkitty/thread_list.html' |
using | None |
/usr/lib/python3.9/site-packages/django/template/backends/django.py
, line 61, in render
@property
def origin(self):
return self.template.origin
def render(self, context=None, request=None):
context = make_context(context, request, autoescape=self.backend.engine.autoescape)
try:
return self.template.render(context)…
except TemplateDoesNotExist as exc:
reraise(exc, self.backend)
def copy_exception(exc, backend=None):
"""
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'mlist': <MailingList users@lists.fedoraproject.org (users.lists.fedoraproject.org)>, 'threads': <Page 1 of 13>, 'months_list': {1980: range(11, 13), 1981: range(1, 13), 1982: range(1, 13), 1983: range(1, 13), 1984: range(1, 13), 1985: range(1, 13), 1986: range(1, 13), 1987: range(1, 13), 1988: range(1, 13), 1989: range(1, 13), 1990: range(1, 13), 1991: range(1, 13), 1992: range(1, 13), 1993: range(1, 13), 1994: range(1, 13), 1995: range(1, 13), 1996: range(1, 13), 1997: range(1, 13), 1998: range(1, 13), 1999: range(1, 13), 2000: range(1, 13), 2001: range(1, 13), 2002: range(1, 13), 2003: range(1, 13), 2004: range(1, 13), 2005: range(1, 13), 2006: range(1, 13), 2007: range(1, 13), 2008: range(1, 13), 2009: range(1, 13), 2010: range(1, 13), 2011: range(1, 13), 2012: range(1, 13), 2013: range(1, 13), 2014: range(1, 13), 2015: range(1, 13), 2016: range(1, 13), 2017: range(1, 13), 2018: range(1, 13), 2019: range(1, 13), 2020: range(1, 13), 2021: range(1, 13), 2022: range(1, 13), 2023: range(1, 13), 2024: range(1, 4)}, 'month': datetime.datetime(2019, 5, 1, 0, 0, tzinfo=<UTC>), 'month_num': 5, 'list_title': 'May 2019', 'no_results_text': 'for this month', 'export': {'url': '/archives/list/users@lists.fedoraproject.org/export/users@lists.fedoraproject.org-2019-06.mbox.gz?start=2019-05-01&end=2019-06-01', 'message': 'Download', 'title': 'This month in gzipped mbox format'}, 'participants_count': 130, 'compressed': {'name': None}}] |
request | <WSGIRequest: GET '/archives/list/users@lists.fedoraproject.org/2019/5/'> |
self | <django.template.backends.django.Template object at 0x7f3dea8d35e0> |
/usr/lib/python3.9/site-packages/django/template/base.py
, line 170, in render
def render(self, context):
"Display stage -- can be called many times"
with context.render_context.push_state(self):
if context.template is None:
with context.bind_template(self):
context.template_name = self.name
return self._render(context)…
else:
return self._render(context)
def compile_nodelist(self):
"""
Parse and compile the template source into a nodelist. If debug
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'mlist': <MailingList users@lists.fedoraproject.org (users.lists.fedoraproject.org)>, 'threads': <Page 1 of 13>, 'months_list': {1980: range(11, 13), 1981: range(1, 13), 1982: range(1, 13), 1983: range(1, 13), 1984: range(1, 13), 1985: range(1, 13), 1986: range(1, 13), 1987: range(1, 13), 1988: range(1, 13), 1989: range(1, 13), 1990: range(1, 13), 1991: range(1, 13), 1992: range(1, 13), 1993: range(1, 13), 1994: range(1, 13), 1995: range(1, 13), 1996: range(1, 13), 1997: range(1, 13), 1998: range(1, 13), 1999: range(1, 13), 2000: range(1, 13), 2001: range(1, 13), 2002: range(1, 13), 2003: range(1, 13), 2004: range(1, 13), 2005: range(1, 13), 2006: range(1, 13), 2007: range(1, 13), 2008: range(1, 13), 2009: range(1, 13), 2010: range(1, 13), 2011: range(1, 13), 2012: range(1, 13), 2013: range(1, 13), 2014: range(1, 13), 2015: range(1, 13), 2016: range(1, 13), 2017: range(1, 13), 2018: range(1, 13), 2019: range(1, 13), 2020: range(1, 13), 2021: range(1, 13), 2022: range(1, 13), 2023: range(1, 13), 2024: range(1, 4)}, 'month': datetime.datetime(2019, 5, 1, 0, 0, tzinfo=<UTC>), 'month_num': 5, 'list_title': 'May 2019', 'no_results_text': 'for this month', 'export': {'url': '/archives/list/users@lists.fedoraproject.org/export/users@lists.fedoraproject.org-2019-06.mbox.gz?start=2019-05-01&end=2019-06-01', 'message': 'Download', 'title': 'This month in gzipped mbox format'}, 'participants_count': 130, 'compressed': {'name': None}}] |
self | <django.template.base.Template object at 0x7f3dea989640> |
/usr/lib/python3.9/site-packages/django/template/base.py
, line 162, in _render
self.nodelist = self.compile_nodelist()
def __iter__(self):
for node in self.nodelist:
yield from node
def _render(self, context):
return self.nodelist.render(context)…
def render(self, context):
"Display stage -- can be called many times"
with context.render_context.push_state(self):
if context.template is None:
with context.bind_template(self):
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'mlist': <MailingList users@lists.fedoraproject.org (users.lists.fedoraproject.org)>, 'threads': <Page 1 of 13>, 'months_list': {1980: range(11, 13), 1981: range(1, 13), 1982: range(1, 13), 1983: range(1, 13), 1984: range(1, 13), 1985: range(1, 13), 1986: range(1, 13), 1987: range(1, 13), 1988: range(1, 13), 1989: range(1, 13), 1990: range(1, 13), 1991: range(1, 13), 1992: range(1, 13), 1993: range(1, 13), 1994: range(1, 13), 1995: range(1, 13), 1996: range(1, 13), 1997: range(1, 13), 1998: range(1, 13), 1999: range(1, 13), 2000: range(1, 13), 2001: range(1, 13), 2002: range(1, 13), 2003: range(1, 13), 2004: range(1, 13), 2005: range(1, 13), 2006: range(1, 13), 2007: range(1, 13), 2008: range(1, 13), 2009: range(1, 13), 2010: range(1, 13), 2011: range(1, 13), 2012: range(1, 13), 2013: range(1, 13), 2014: range(1, 13), 2015: range(1, 13), 2016: range(1, 13), 2017: range(1, 13), 2018: range(1, 13), 2019: range(1, 13), 2020: range(1, 13), 2021: range(1, 13), 2022: range(1, 13), 2023: range(1, 13), 2024: range(1, 4)}, 'month': datetime.datetime(2019, 5, 1, 0, 0, tzinfo=<UTC>), 'month_num': 5, 'list_title': 'May 2019', 'no_results_text': 'for this month', 'export': {'url': '/archives/list/users@lists.fedoraproject.org/export/users@lists.fedoraproject.org-2019-06.mbox.gz?start=2019-05-01&end=2019-06-01', 'message': 'Download', 'title': 'This month in gzipped mbox format'}, 'participants_count': 130, 'compressed': {'name': None}}] |
self | <django.template.base.Template object at 0x7f3dea989640> |
/usr/lib/python3.9/site-packages/django/template/base.py
, line 938, in render
# extend_nodelist().
contains_nontext = False
def render(self, context):
bits = []
for node in self:
if isinstance(node, Node):
bit = node.render_annotated(context)…
else:
bit = node
bits.append(str(bit))
return mark_safe(''.join(bits))
def get_nodes_by_type(self, nodetype):
Variable | Value |
---|---|
bits | [] |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'mlist': <MailingList users@lists.fedoraproject.org (users.lists.fedoraproject.org)>, 'threads': <Page 1 of 13>, 'months_list': {1980: range(11, 13), 1981: range(1, 13), 1982: range(1, 13), 1983: range(1, 13), 1984: range(1, 13), 1985: range(1, 13), 1986: range(1, 13), 1987: range(1, 13), 1988: range(1, 13), 1989: range(1, 13), 1990: range(1, 13), 1991: range(1, 13), 1992: range(1, 13), 1993: range(1, 13), 1994: range(1, 13), 1995: range(1, 13), 1996: range(1, 13), 1997: range(1, 13), 1998: range(1, 13), 1999: range(1, 13), 2000: range(1, 13), 2001: range(1, 13), 2002: range(1, 13), 2003: range(1, 13), 2004: range(1, 13), 2005: range(1, 13), 2006: range(1, 13), 2007: range(1, 13), 2008: range(1, 13), 2009: range(1, 13), 2010: range(1, 13), 2011: range(1, 13), 2012: range(1, 13), 2013: range(1, 13), 2014: range(1, 13), 2015: range(1, 13), 2016: range(1, 13), 2017: range(1, 13), 2018: range(1, 13), 2019: range(1, 13), 2020: range(1, 13), 2021: range(1, 13), 2022: range(1, 13), 2023: range(1, 13), 2024: range(1, 4)}, 'month': datetime.datetime(2019, 5, 1, 0, 0, tzinfo=<UTC>), 'month_num': 5, 'list_title': 'May 2019', 'no_results_text': 'for this month', 'export': {'url': '/archives/list/users@lists.fedoraproject.org/export/users@lists.fedoraproject.org-2019-06.mbox.gz?start=2019-05-01&end=2019-06-01', 'message': 'Download', 'title': 'This month in gzipped mbox format'}, 'participants_count': 130, 'compressed': {'name': None}}] |
node | <ExtendsNode: extends "hyperkitty/base.html"> |
self | [<ExtendsNode: extends "hyperkitty/base.html">] |
/usr/lib/python3.9/site-packages/django/template/base.py
, line 905, in render_annotated
"""
Render the node. If debug is True and an exception occurs during
rendering, the exception is annotated with contextual line information
where it occurred in the template. For internal usage this method is
preferred over using the render method directly.
"""
try:
return self.render(context)…
except Exception as e:
if context.template.engine.debug and not hasattr(e, 'template_debug'):
e.template_debug = context.render_context.template.get_exception_info(e, self.token)
raise
def __iter__(self):
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'mlist': <MailingList users@lists.fedoraproject.org (users.lists.fedoraproject.org)>, 'threads': <Page 1 of 13>, 'months_list': {1980: range(11, 13), 1981: range(1, 13), 1982: range(1, 13), 1983: range(1, 13), 1984: range(1, 13), 1985: range(1, 13), 1986: range(1, 13), 1987: range(1, 13), 1988: range(1, 13), 1989: range(1, 13), 1990: range(1, 13), 1991: range(1, 13), 1992: range(1, 13), 1993: range(1, 13), 1994: range(1, 13), 1995: range(1, 13), 1996: range(1, 13), 1997: range(1, 13), 1998: range(1, 13), 1999: range(1, 13), 2000: range(1, 13), 2001: range(1, 13), 2002: range(1, 13), 2003: range(1, 13), 2004: range(1, 13), 2005: range(1, 13), 2006: range(1, 13), 2007: range(1, 13), 2008: range(1, 13), 2009: range(1, 13), 2010: range(1, 13), 2011: range(1, 13), 2012: range(1, 13), 2013: range(1, 13), 2014: range(1, 13), 2015: range(1, 13), 2016: range(1, 13), 2017: range(1, 13), 2018: range(1, 13), 2019: range(1, 13), 2020: range(1, 13), 2021: range(1, 13), 2022: range(1, 13), 2023: range(1, 13), 2024: range(1, 4)}, 'month': datetime.datetime(2019, 5, 1, 0, 0, tzinfo=<UTC>), 'month_num': 5, 'list_title': 'May 2019', 'no_results_text': 'for this month', 'export': {'url': '/archives/list/users@lists.fedoraproject.org/export/users@lists.fedoraproject.org-2019-06.mbox.gz?start=2019-05-01&end=2019-06-01', 'message': 'Download', 'title': 'This month in gzipped mbox format'}, 'participants_count': 130, 'compressed': {'name': None}}] |
self | <ExtendsNode: extends "hyperkitty/base.html"> |
/usr/lib/python3.9/site-packages/django/template/loader_tags.py
, line 150, in render
compiled_parent.nodelist.get_nodes_by_type(BlockNode)}
block_context.add_blocks(blocks)
break
# Call Template._render explicitly so the parser context stays
# the same.
with context.render_context.push_state(compiled_parent, isolated_context=False):
return compiled_parent._render(context)…
class IncludeNode(Node):
context_key = '__include_context'
def __init__(self, template, *args, extra_context=None, isolated_context=False, **kwargs):
Variable | Value |
---|---|
block_context | <django.template.loader_tags.BlockContext object at 0x7f3dea8877c0> |
blocks | {'additional_stylesheets': <Block Node: additional_stylesheets. Contents: [<TextNode: ' '>]>, 'additionaljs': <Block Node: additionaljs. Contents: [<TextNode: ' '>]>, 'content': <Block Node: content. Contents: [<TextNode: ' '>]>, 'head_feed': <Block Node: head_feed. Contents: []>, 'head_title': <Block Node: head_title. Contents: [<Variable Node: site_name>]>} |
compiled_parent | <django.template.base.Template object at 0x7f3dea93b4f0> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'mlist': <MailingList users@lists.fedoraproject.org (users.lists.fedoraproject.org)>, 'threads': <Page 1 of 13>, 'months_list': {1980: range(11, 13), 1981: range(1, 13), 1982: range(1, 13), 1983: range(1, 13), 1984: range(1, 13), 1985: range(1, 13), 1986: range(1, 13), 1987: range(1, 13), 1988: range(1, 13), 1989: range(1, 13), 1990: range(1, 13), 1991: range(1, 13), 1992: range(1, 13), 1993: range(1, 13), 1994: range(1, 13), 1995: range(1, 13), 1996: range(1, 13), 1997: range(1, 13), 1998: range(1, 13), 1999: range(1, 13), 2000: range(1, 13), 2001: range(1, 13), 2002: range(1, 13), 2003: range(1, 13), 2004: range(1, 13), 2005: range(1, 13), 2006: range(1, 13), 2007: range(1, 13), 2008: range(1, 13), 2009: range(1, 13), 2010: range(1, 13), 2011: range(1, 13), 2012: range(1, 13), 2013: range(1, 13), 2014: range(1, 13), 2015: range(1, 13), 2016: range(1, 13), 2017: range(1, 13), 2018: range(1, 13), 2019: range(1, 13), 2020: range(1, 13), 2021: range(1, 13), 2022: range(1, 13), 2023: range(1, 13), 2024: range(1, 4)}, 'month': datetime.datetime(2019, 5, 1, 0, 0, tzinfo=<UTC>), 'month_num': 5, 'list_title': 'May 2019', 'no_results_text': 'for this month', 'export': {'url': '/archives/list/users@lists.fedoraproject.org/export/users@lists.fedoraproject.org-2019-06.mbox.gz?start=2019-05-01&end=2019-06-01', 'message': 'Download', 'title': 'This month in gzipped mbox format'}, 'participants_count': 130, 'compressed': {'name': None}}] |
node | <django.template.defaulttags.LoadNode object at 0x7f3dea951730> |
self | <ExtendsNode: extends "hyperkitty/base.html"> |
/usr/lib/python3.9/site-packages/django/template/base.py
, line 162, in _render
self.nodelist = self.compile_nodelist()
def __iter__(self):
for node in self.nodelist:
yield from node
def _render(self, context):
return self.nodelist.render(context)…
def render(self, context):
"Display stage -- can be called many times"
with context.render_context.push_state(self):
if context.template is None:
with context.bind_template(self):
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'mlist': <MailingList users@lists.fedoraproject.org (users.lists.fedoraproject.org)>, 'threads': <Page 1 of 13>, 'months_list': {1980: range(11, 13), 1981: range(1, 13), 1982: range(1, 13), 1983: range(1, 13), 1984: range(1, 13), 1985: range(1, 13), 1986: range(1, 13), 1987: range(1, 13), 1988: range(1, 13), 1989: range(1, 13), 1990: range(1, 13), 1991: range(1, 13), 1992: range(1, 13), 1993: range(1, 13), 1994: range(1, 13), 1995: range(1, 13), 1996: range(1, 13), 1997: range(1, 13), 1998: range(1, 13), 1999: range(1, 13), 2000: range(1, 13), 2001: range(1, 13), 2002: range(1, 13), 2003: range(1, 13), 2004: range(1, 13), 2005: range(1, 13), 2006: range(1, 13), 2007: range(1, 13), 2008: range(1, 13), 2009: range(1, 13), 2010: range(1, 13), 2011: range(1, 13), 2012: range(1, 13), 2013: range(1, 13), 2014: range(1, 13), 2015: range(1, 13), 2016: range(1, 13), 2017: range(1, 13), 2018: range(1, 13), 2019: range(1, 13), 2020: range(1, 13), 2021: range(1, 13), 2022: range(1, 13), 2023: range(1, 13), 2024: range(1, 4)}, 'month': datetime.datetime(2019, 5, 1, 0, 0, tzinfo=<UTC>), 'month_num': 5, 'list_title': 'May 2019', 'no_results_text': 'for this month', 'export': {'url': '/archives/list/users@lists.fedoraproject.org/export/users@lists.fedoraproject.org-2019-06.mbox.gz?start=2019-05-01&end=2019-06-01', 'message': 'Download', 'title': 'This month in gzipped mbox format'}, 'participants_count': 130, 'compressed': {'name': None}}] |
self | <django.template.base.Template object at 0x7f3dea93b4f0> |
/usr/lib/python3.9/site-packages/django/template/base.py
, line 938, in render
# extend_nodelist().
contains_nontext = False
def render(self, context):
bits = []
for node in self:
if isinstance(node, Node):
bit = node.render_annotated(context)…
else:
bit = node
bits.append(str(bit))
return mark_safe(''.join(bits))
def get_nodes_by_type(self, nodetype):
Variable | Value |
---|---|
bit | '" type="text/css" media="all" />\n ' |
bits | ['', '\n', '', '\n', '', '\n', '', '\n' '<!DOCTYPE HTML>\n' '<html>\n' ' <head>\n' ' <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" ' '/>\n' ' <meta name="viewport" content="width=device-width, ' 'initial-scale=1.0" />\n' ' <meta name="ROBOTS" content="INDEX, FOLLOW" />\n' ' <title>', '\nMay 2019 - users - Fedora mailing-lists\n', '</title>\n' ' <meta name="author" content="" />\n' ' <meta name="dc.language" content="en" />\n' ' <link rel="shortcut icon" href="', '/static/hyperkitty/img/favicon.ico', '" />\n <link rel="stylesheet" href="', '/static/hyperkitty/libs/jquery/smoothness/jquery-ui-1.13.1.min.css', '" type="text/css" media="all" />\n <link rel="stylesheet" href="', '/static/hyperkitty/libs/fonts/font-awesome/css/font-awesome.min.css', '" type="text/css" media="all" />\n '] |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'mlist': <MailingList users@lists.fedoraproject.org (users.lists.fedoraproject.org)>, 'threads': <Page 1 of 13>, 'months_list': {1980: range(11, 13), 1981: range(1, 13), 1982: range(1, 13), 1983: range(1, 13), 1984: range(1, 13), 1985: range(1, 13), 1986: range(1, 13), 1987: range(1, 13), 1988: range(1, 13), 1989: range(1, 13), 1990: range(1, 13), 1991: range(1, 13), 1992: range(1, 13), 1993: range(1, 13), 1994: range(1, 13), 1995: range(1, 13), 1996: range(1, 13), 1997: range(1, 13), 1998: range(1, 13), 1999: range(1, 13), 2000: range(1, 13), 2001: range(1, 13), 2002: range(1, 13), 2003: range(1, 13), 2004: range(1, 13), 2005: range(1, 13), 2006: range(1, 13), 2007: range(1, 13), 2008: range(1, 13), 2009: range(1, 13), 2010: range(1, 13), 2011: range(1, 13), 2012: range(1, 13), 2013: range(1, 13), 2014: range(1, 13), 2015: range(1, 13), 2016: range(1, 13), 2017: range(1, 13), 2018: range(1, 13), 2019: range(1, 13), 2020: range(1, 13), 2021: range(1, 13), 2022: range(1, 13), 2023: range(1, 13), 2024: range(1, 4)}, 'month': datetime.datetime(2019, 5, 1, 0, 0, tzinfo=<UTC>), 'month_num': 5, 'list_title': 'May 2019', 'no_results_text': 'for this month', 'export': {'url': '/archives/list/users@lists.fedoraproject.org/export/users@lists.fedoraproject.org-2019-06.mbox.gz?start=2019-05-01&end=2019-06-01', 'message': 'Download', 'title': 'This month in gzipped mbox format'}, 'participants_count': 130, 'compressed': {'name': None}}] |
node | <compressor.templatetags.compress.CompressorNode object at 0x7f3dea954580> |
self | [<django.template.defaulttags.LoadNode object at 0x7f3dea951730>, <TextNode: '\n'>, <django.template.defaulttags.LoadNode object at 0x7f3dea951820>, <TextNode: '\n'>, <django.template.defaulttags.LoadNode object at 0x7f3dea9518e0>, <TextNode: '\n'>, <django.template.defaulttags.LoadNode object at 0x7f3dea9519a0>, <TextNode: '\n<!DOCTYPE HTML>\n<html>\n '>, <Block Node: head_title. Contents: [<Variable Node: site_name>]>, <TextNode: '</title>\n <meta na'>, <django.templatetags.static.StaticNode object at 0x7f3dea951cd0>, <TextNode: '" />\n <link rel="s'>, <django.templatetags.static.StaticNode object at 0x7f3dea951df0>, <TextNode: '" type="text/css" media="'>, <django.templatetags.static.StaticNode object at 0x7f3dea951f10>, <TextNode: '" type="text/css" media="'>, <compressor.templatetags.compress.CompressorNode object at 0x7f3dea954580>, <TextNode: '\n '>, <Block Node: additional_stylesheets. Contents: [<TextNode: ' '>]>, <TextNode: '\n '>, <Block Node: head_feed. Contents: []>, <TextNode: '\n '>, <django.template.loader_tags.IncludeNode object at 0x7f3dea954850>, <TextNode: '\n </head>\n\n <body>\n'>, <django.template.loader_tags.IncludeNode object at 0x7f3dea954970>, <TextNode: '\n\n <nav class="navbar '>, <django.template.loader_tags.IncludeNode object at 0x7f3dea954a90>, <TextNode: '\n </div> <!-- '>, <IfNode>, <TextNode: '\n </a>'>, <IfNode>, <TextNode: '\n\n </div>\n'>, <django.template.defaulttags.URLNode object at 0x7f3dea95ab80>, <TextNode: '" class="navbar-form navb'>, <IfNode>, <TextNode: '\n '>, <IfNode>, <TextNode: '"\n '>, <IfNode>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n </ul>\n\n '>, <IfNode>, <TextNode: '\n\n\n </div> <!-'>, <IfNode>, <TextNode: '\n\n <div class="modal '>, <django.templatetags.i18n.TranslateNode object at 0x7f3dea8e83d0>, <TextNode: '</h4>\n </div>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7f3dea8e8520>, <TextNode: '</h3>\n <ul>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7f3dea8e8670>, <TextNode: ' </li>\n <li'>, <django.templatetags.i18n.TranslateNode object at 0x7f3dea8e87c0>, <TextNode: ' </li>\n <li'>, <django.templatetags.i18n.TranslateNode object at 0x7f3dea8e8910>, <TextNode: '\n <li><code'>, <django.templatetags.i18n.TranslateNode object at 0x7f3dea8e8a60>, <TextNode: '\n </ul>\n '>, <Block Node: content. Contents: [<TextNode: ' '>]>, <TextNode: '\n </div> <!-- /contain'>, <django.templatetags.i18n.TranslateNode object at 0x7f3dea8e8cd0>, <TextNode: ' <a href="http://hyperkit'>, <django.templatetags.i18n.TranslateNode object at 0x7f3dea8e8e20>, <TextNode: ' '>, <Variable Node: HYPERKITTY_VERSION>, <TextNode: '.\n </p>\n </di'>, <django.templatetags.static.StaticNode object at 0x7f3dea8eb130>, <TextNode: '"></script>\n <script s'>, <django.templatetags.static.StaticNode object at 0x7f3dea8eb280>, <TextNode: '"></script>\n '>, <compressor.templatetags.compress.CompressorNode object at 0x7f3dea8ed310>, <TextNode: '\n '>, <Block Node: additionaljs. Contents: [<TextNode: ' '>]>, <TextNode: '\n\n '>, <django.template.loader_tags.IncludeNode object at 0x7f3dea8ed580>, <TextNode: '\n\n </body>\n</html>\n'>] |
/usr/lib/python3.9/site-packages/django/template/base.py
, line 905, in render_annotated
"""
Render the node. If debug is True and an exception occurs during
rendering, the exception is annotated with contextual line information
where it occurred in the template. For internal usage this method is
preferred over using the render method directly.
"""
try:
return self.render(context)…
except Exception as e:
if context.template.engine.debug and not hasattr(e, 'template_debug'):
e.template_debug = context.render_context.template.get_exception_info(e, self.token)
raise
def __iter__(self):
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'mlist': <MailingList users@lists.fedoraproject.org (users.lists.fedoraproject.org)>, 'threads': <Page 1 of 13>, 'months_list': {1980: range(11, 13), 1981: range(1, 13), 1982: range(1, 13), 1983: range(1, 13), 1984: range(1, 13), 1985: range(1, 13), 1986: range(1, 13), 1987: range(1, 13), 1988: range(1, 13), 1989: range(1, 13), 1990: range(1, 13), 1991: range(1, 13), 1992: range(1, 13), 1993: range(1, 13), 1994: range(1, 13), 1995: range(1, 13), 1996: range(1, 13), 1997: range(1, 13), 1998: range(1, 13), 1999: range(1, 13), 2000: range(1, 13), 2001: range(1, 13), 2002: range(1, 13), 2003: range(1, 13), 2004: range(1, 13), 2005: range(1, 13), 2006: range(1, 13), 2007: range(1, 13), 2008: range(1, 13), 2009: range(1, 13), 2010: range(1, 13), 2011: range(1, 13), 2012: range(1, 13), 2013: range(1, 13), 2014: range(1, 13), 2015: range(1, 13), 2016: range(1, 13), 2017: range(1, 13), 2018: range(1, 13), 2019: range(1, 13), 2020: range(1, 13), 2021: range(1, 13), 2022: range(1, 13), 2023: range(1, 13), 2024: range(1, 4)}, 'month': datetime.datetime(2019, 5, 1, 0, 0, tzinfo=<UTC>), 'month_num': 5, 'list_title': 'May 2019', 'no_results_text': 'for this month', 'export': {'url': '/archives/list/users@lists.fedoraproject.org/export/users@lists.fedoraproject.org-2019-06.mbox.gz?start=2019-05-01&end=2019-06-01', 'message': 'Download', 'title': 'This month in gzipped mbox format'}, 'participants_count': 130, 'compressed': {'name': None}}] |
self | <compressor.templatetags.compress.CompressorNode object at 0x7f3dea954580> |
/usr/lib/python3.9/site-packages/compressor/templatetags/compress.py
, line 160, in render
# pass logger to compressor object
try:
log, verbosity = context.template._log, context.template._log_verbosity
except AttributeError:
log, verbosity = None, 0
return self.render_compressed(…
context, self.kind, self.mode, forced=forced, log=log, verbosity=verbosity
)
@register.tag
def compress(parser, token):
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'mlist': <MailingList users@lists.fedoraproject.org (users.lists.fedoraproject.org)>, 'threads': <Page 1 of 13>, 'months_list': {1980: range(11, 13), 1981: range(1, 13), 1982: range(1, 13), 1983: range(1, 13), 1984: range(1, 13), 1985: range(1, 13), 1986: range(1, 13), 1987: range(1, 13), 1988: range(1, 13), 1989: range(1, 13), 1990: range(1, 13), 1991: range(1, 13), 1992: range(1, 13), 1993: range(1, 13), 1994: range(1, 13), 1995: range(1, 13), 1996: range(1, 13), 1997: range(1, 13), 1998: range(1, 13), 1999: range(1, 13), 2000: range(1, 13), 2001: range(1, 13), 2002: range(1, 13), 2003: range(1, 13), 2004: range(1, 13), 2005: range(1, 13), 2006: range(1, 13), 2007: range(1, 13), 2008: range(1, 13), 2009: range(1, 13), 2010: range(1, 13), 2011: range(1, 13), 2012: range(1, 13), 2013: range(1, 13), 2014: range(1, 13), 2015: range(1, 13), 2016: range(1, 13), 2017: range(1, 13), 2018: range(1, 13), 2019: range(1, 13), 2020: range(1, 13), 2021: range(1, 13), 2022: range(1, 13), 2023: range(1, 13), 2024: range(1, 4)}, 'month': datetime.datetime(2019, 5, 1, 0, 0, tzinfo=<UTC>), 'month_num': 5, 'list_title': 'May 2019', 'no_results_text': 'for this month', 'export': {'url': '/archives/list/users@lists.fedoraproject.org/export/users@lists.fedoraproject.org-2019-06.mbox.gz?start=2019-05-01&end=2019-06-01', 'message': 'Download', 'title': 'This month in gzipped mbox format'}, 'participants_count': 130, 'compressed': {'name': None}}] |
forced | False |
log | None |
self | <compressor.templatetags.compress.CompressorNode object at 0x7f3dea954580> |
verbosity | 0 |
/usr/lib/python3.9/site-packages/compressor/templatetags/compress.py
, line 131, in render_compressed
if cache_content is not None:
return cache_content
file_basename = name or getattr(self, "basename", None)
if file_basename is None:
file_basename = "output"
rendered_output = compressor.output(mode, forced=forced, basename=file_basename)…
assert isinstance(rendered_output, str)
if cache_key:
cache_set(cache_key, rendered_output)
return rendered_output
Variable | Value |
---|---|
cache_key | None |
compressor | <compressor.css.CssCompressor object at 0x7f3dea887d60> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'mlist': <MailingList users@lists.fedoraproject.org (users.lists.fedoraproject.org)>, 'threads': <Page 1 of 13>, 'months_list': {1980: range(11, 13), 1981: range(1, 13), 1982: range(1, 13), 1983: range(1, 13), 1984: range(1, 13), 1985: range(1, 13), 1986: range(1, 13), 1987: range(1, 13), 1988: range(1, 13), 1989: range(1, 13), 1990: range(1, 13), 1991: range(1, 13), 1992: range(1, 13), 1993: range(1, 13), 1994: range(1, 13), 1995: range(1, 13), 1996: range(1, 13), 1997: range(1, 13), 1998: range(1, 13), 1999: range(1, 13), 2000: range(1, 13), 2001: range(1, 13), 2002: range(1, 13), 2003: range(1, 13), 2004: range(1, 13), 2005: range(1, 13), 2006: range(1, 13), 2007: range(1, 13), 2008: range(1, 13), 2009: range(1, 13), 2010: range(1, 13), 2011: range(1, 13), 2012: range(1, 13), 2013: range(1, 13), 2014: range(1, 13), 2015: range(1, 13), 2016: range(1, 13), 2017: range(1, 13), 2018: range(1, 13), 2019: range(1, 13), 2020: range(1, 13), 2021: range(1, 13), 2022: range(1, 13), 2023: range(1, 13), 2024: range(1, 4)}, 'month': datetime.datetime(2019, 5, 1, 0, 0, tzinfo=<UTC>), 'month_num': 5, 'list_title': 'May 2019', 'no_results_text': 'for this month', 'export': {'url': '/archives/list/users@lists.fedoraproject.org/export/users@lists.fedoraproject.org-2019-06.mbox.gz?start=2019-05-01&end=2019-06-01', 'message': 'Download', 'title': 'This month in gzipped mbox format'}, 'participants_count': 130, 'compressed': {'name': None}}] |
file_basename | 'output' |
forced | False |
kind | 'css' |
log | None |
mode | 'file' |
name | None |
self | <compressor.templatetags.compress.CompressorNode object at 0x7f3dea954580> |
verbosity | 0 |
/usr/lib/python3.9/site-packages/compressor/css.py
, line 55, in output
):
# Populate self.split_content
self.split_contents()
if hasattr(self, "media_nodes"):
ret = []
for media, subnode in self.media_nodes:
subnode.extra_context.update({"media": media})
ret.append(subnode.output(*args, **kwargs))…
return "".join(ret)
return super().output(*args, **kwargs)
Variable | Value |
---|---|
__class__ | <class 'compressor.css.CssCompressor'> |
args | ('file',) |
kwargs | {'basename': 'output', 'forced': False} |
media | 'all' |
ret | ['<link rel="stylesheet" ' 'href="/static/hyperkitty/libs/fonts/icomoon/icomoon.css" type="text/css" ' 'media="all">', '<link rel="stylesheet" href="/static/hyperkitty/libs/fonts/droid/droid.css" ' 'type="text/css" media="all">', '<link rel="stylesheet" href="/static/django-mailman3/css/main.css">'] |
self | <compressor.css.CssCompressor object at 0x7f3dea887d60> |
subnode | <compressor.css.CssCompressor object at 0x7f3dea887490> |
/usr/lib/python3.9/site-packages/compressor/css.py
, line 57, in output
self.split_contents()
if hasattr(self, "media_nodes"):
ret = []
for media, subnode in self.media_nodes:
subnode.extra_context.update({"media": media})
ret.append(subnode.output(*args, **kwargs))
return "".join(ret)
return super().output(*args, **kwargs)…
Variable | Value |
---|---|
__class__ | <class 'compressor.css.CssCompressor'> |
args | ('file',) |
kwargs | {'basename': 'output', 'forced': False} |
self | <compressor.css.CssCompressor object at 0x7f3dea887490> |
/usr/lib/python3.9/site-packages/compressor/base.py
, line 367, in output
def output(self, mode="file", forced=False, basename=None):
"""
The general output method, override in subclass if you need to do
any custom modification. Calls other mode specific methods or simply
returns the content directly.
"""
output = "\n".join(self.filter_input(forced))…
if not output:
return ""
if settings.COMPRESS_ENABLED or forced:
filtered_output = self.filter_output(output)
Variable | Value |
---|---|
basename | 'output' |
forced | False |
mode | 'file' |
self | <compressor.css.CssCompressor object at 0x7f3dea887490> |
/usr/lib/python3.9/site-packages/compressor/base.py
, line 294, in filter_input
def filter_input(self, forced=False):
"""
Passes each hunk (file or code) to the 'input' methods
of the compressor filters.
"""
content = []
for hunk in self.hunks(forced):…
content.append(hunk)
return content
def precompile(
self, content, kind=None, elem=None, filename=None, charset=None, **kwargs
):
Variable | Value |
---|---|
content | [] |
forced | False |
self | <compressor.css.CssCompressor object at 0x7f3dea887490> |
/usr/lib/python3.9/site-packages/compressor/base.py
, line 277, in hunks
if enabled:
yield self.filter(value, self.cached_filters, **options)
elif precompiled:
for filter_cls in self.cached_filters:
if filter_cls.run_with_compression_disabled:
value = self.filter(value, [filter_cls], **options)
yield self.handle_output(kind, value, forced=True, basename=basename)…
else:
yield self.parser.elem_str(elem)
def filter_output(self, content):
"""
Passes the concatenated content to the 'output' methods
Variable | Value |
---|---|
attribs | {'href': '/static/hyperkitty/sass/hyperkitty.scss', 'media': 'all', 'rel': 'stylesheet', 'type': 'text/x-scss'} |
basename | 'hyperkitty/sass/hyperkitty.scss' |
charset | 'utf-8' |
elem | {'attrs': [('rel', 'stylesheet'), ('type', 'text/x-scss'), ('media', 'all'), ('href', '/static/hyperkitty/sass/hyperkitty.scss')], 'attrs_dict': {'href': '/static/hyperkitty/sass/hyperkitty.scss', 'media': 'all', 'rel': 'stylesheet', 'type': 'text/x-scss'}, 'tag': 'link', 'text': None} |
enabled | False |
filter_cls | <class 'compressor.filters.cssmin.rCSSMinFilter'> |
forced | False |
kind | 'file' |
options | {'basename': 'hyperkitty/sass/hyperkitty.scss', 'charset': 'utf-8', 'elem': {'attrs': [('rel', 'stylesheet'), ('type', 'text/x-scss'), ('media', 'all'), ('href', '/static/hyperkitty/sass/hyperkitty.scss')], 'attrs_dict': {'href': '/static/hyperkitty/sass/hyperkitty.scss', 'media': 'all', 'rel': 'stylesheet', 'type': 'text/x-scss'}, 'tag': 'link', 'text': None}, 'filename': '/usr/lib/python3.9/site-packages/hyperkitty/static/hyperkitty/sass/hyperkitty.scss', 'kind': 'file', 'method': 'input'} |
precompiled | True |
self | <compressor.css.CssCompressor object at 0x7f3dea887490> |
value | ('/*!\n' ' * Bootstrap v4.3.1 (https://getbootstrap.com/)\n' ' * Copyright 2011-2019 The Bootstrap Authors\n' ' * Copyright 2011-2019 Twitter, Inc.\n' ' * Licensed under MIT ' '(https://github.com/twbs/bootstrap/blob/master/LICENSE)\n' ' */:root{--blue: #007bff;--indigo: #6610f2;--purple: #6f42c1;--pink: ' '#e83e8c;--red: #dc3545;--orange: #fd7e14;--yellow: #ffc107;--green: ' '#28a745;--teal: #20c997;--cyan: #17a2b8;--white: #fff;--gray: ' '#6c757d;--gray-dark: #343a40;--primary: #007bff;--secondary: ' '#6c757d;--success: #28a745;--info: #17a2b8;--warning: #ffc107;--danger: ' '#dc3545;--light: #f8f9fa;--dark: #343a40;--breakpoint-xs: 0;--breakpoint-sm: ' '320px;--breakpoint-md: 576px;--breakpoint-lg: 992px;--breakpoint-xl: ' '1200px;--font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe ' 'UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color ' 'Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color ' 'Emoji";--font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, ' '"Liberation Mono", "Courier New", ' 'monospace}*,*::before,*::after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe ' 'UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color ' 'Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color ' 'Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0 ' '!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-original-title]{text-decoration:underline;text-decoration:underline ' 'dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ' 'ol,ul ul,ol ul,ul ' 'ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 ' '0 ' '1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):hover,a:not([href]):not([tabindex]):focus{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation ' 'Mono","Courier ' 'New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 ' '0 ' '1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px ' 'dotted;outline:5px auto ' '-webkit-focus-ring-color}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button:not(:disabled),[type="button"]:not(:disabled),[type="reset"]:not(:disabled),[type="submit"]:not(:disabled){cursor:pointer}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{padding:0;border-style:none}input[type="radio"],input[type="checkbox"]{box-sizing:border-box;padding:0}input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{-webkit-appearance:listbox}textarea{overflow:auto;re… <trimmed 171794 bytes string> |
/usr/lib/python3.9/site-packages/compressor/base.py
, line 382, in handle_output
return output
def handle_output(self, mode, content, forced, basename=None):
# Then check for the appropriate output method and call it
output_func = getattr(self, "output_%s" % mode, None)
if callable(output_func):
return output_func(mode, content, forced, basename)…
# Total failure, raise a general exception
raise CompressorError("Couldn't find output method for mode '%s'" % mode)
def output_file(self, mode, content, forced=False, basename=None):
"""
The output method that saves the content to a file and renders
Variable | Value |
---|---|
basename | 'hyperkitty/sass/hyperkitty.scss' |
content | ('/*!\n' ' * Bootstrap v4.3.1 (https://getbootstrap.com/)\n' ' * Copyright 2011-2019 The Bootstrap Authors\n' ' * Copyright 2011-2019 Twitter, Inc.\n' ' * Licensed under MIT ' '(https://github.com/twbs/bootstrap/blob/master/LICENSE)\n' ' */:root{--blue: #007bff;--indigo: #6610f2;--purple: #6f42c1;--pink: ' '#e83e8c;--red: #dc3545;--orange: #fd7e14;--yellow: #ffc107;--green: ' '#28a745;--teal: #20c997;--cyan: #17a2b8;--white: #fff;--gray: ' '#6c757d;--gray-dark: #343a40;--primary: #007bff;--secondary: ' '#6c757d;--success: #28a745;--info: #17a2b8;--warning: #ffc107;--danger: ' '#dc3545;--light: #f8f9fa;--dark: #343a40;--breakpoint-xs: 0;--breakpoint-sm: ' '320px;--breakpoint-md: 576px;--breakpoint-lg: 992px;--breakpoint-xl: ' '1200px;--font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe ' 'UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color ' 'Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color ' 'Emoji";--font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, ' '"Liberation Mono", "Courier New", ' 'monospace}*,*::before,*::after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe ' 'UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color ' 'Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color ' 'Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0 ' '!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-original-title]{text-decoration:underline;text-decoration:underline ' 'dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ' 'ol,ul ul,ol ul,ul ' 'ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 ' '0 ' '1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):hover,a:not([href]):not([tabindex]):focus{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation ' 'Mono","Courier ' 'New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 ' '0 ' '1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px ' 'dotted;outline:5px auto ' '-webkit-focus-ring-color}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button:not(:disabled),[type="button"]:not(:disabled),[type="reset"]:not(:disabled),[type="submit"]:not(:disabled){cursor:pointer}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{padding:0;border-style:none}input[type="radio"],input[type="checkbox"]{box-sizing:border-box;padding:0}input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{-webkit-appearance:listbox}textarea{overflow:auto;re… <trimmed 171794 bytes string> |
forced | True |
mode | 'file' |
output_func | <bound method Compressor.output_file of <compressor.css.CssCompressor object at 0x7f3dea887490>> |
self | <compressor.css.CssCompressor object at 0x7f3dea887490> |
/usr/lib/python3.9/site-packages/compressor/base.py
, line 393, in output_file
def output_file(self, mode, content, forced=False, basename=None):
"""
The output method that saves the content to a file and renders
the appropriate template with the file's URL.
"""
new_filepath = self.get_filepath(content, basename=basename)
if not self.storage.exists(new_filepath) or forced:
self.storage.save(new_filepath, ContentFile(content.encode(self.charset)))…
url = mark_safe(self.storage.url(new_filepath))
return self.render_output(mode, {"url": url})
def output_inline(self, mode, content, forced=False, basename=None):
"""
The output method that directly returns the content for inline
Variable | Value |
---|---|
basename | 'hyperkitty/sass/hyperkitty.scss' |
content | ('/*!\n' ' * Bootstrap v4.3.1 (https://getbootstrap.com/)\n' ' * Copyright 2011-2019 The Bootstrap Authors\n' ' * Copyright 2011-2019 Twitter, Inc.\n' ' * Licensed under MIT ' '(https://github.com/twbs/bootstrap/blob/master/LICENSE)\n' ' */:root{--blue: #007bff;--indigo: #6610f2;--purple: #6f42c1;--pink: ' '#e83e8c;--red: #dc3545;--orange: #fd7e14;--yellow: #ffc107;--green: ' '#28a745;--teal: #20c997;--cyan: #17a2b8;--white: #fff;--gray: ' '#6c757d;--gray-dark: #343a40;--primary: #007bff;--secondary: ' '#6c757d;--success: #28a745;--info: #17a2b8;--warning: #ffc107;--danger: ' '#dc3545;--light: #f8f9fa;--dark: #343a40;--breakpoint-xs: 0;--breakpoint-sm: ' '320px;--breakpoint-md: 576px;--breakpoint-lg: 992px;--breakpoint-xl: ' '1200px;--font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe ' 'UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color ' 'Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color ' 'Emoji";--font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, ' '"Liberation Mono", "Courier New", ' 'monospace}*,*::before,*::after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe ' 'UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color ' 'Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color ' 'Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0 ' '!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-original-title]{text-decoration:underline;text-decoration:underline ' 'dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ' 'ol,ul ul,ol ul,ul ' 'ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 ' '0 ' '1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):hover,a:not([href]):not([tabindex]):focus{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation ' 'Mono","Courier ' 'New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 ' '0 ' '1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px ' 'dotted;outline:5px auto ' '-webkit-focus-ring-color}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button:not(:disabled),[type="button"]:not(:disabled),[type="reset"]:not(:disabled),[type="submit"]:not(:disabled){cursor:pointer}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{padding:0;border-style:none}input[type="radio"],input[type="checkbox"]{box-sizing:border-box;padding:0}input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{-webkit-appearance:listbox}textarea{overflow:auto;re… <trimmed 171794 bytes string> |
forced | True |
mode | 'file' |
new_filepath | 'CACHE/css/hyperkitty.e05f56ef6d5b.css' |
self | <compressor.css.CssCompressor object at 0x7f3dea887490> |
/usr/lib/python3.9/site-packages/compressor/storage.py
, line 39, in save
def created_time(self, name):
return datetime.fromtimestamp(os.path.getctime(self.path(name)))
def modified_time(self, name):
return datetime.fromtimestamp(os.path.getmtime(self.path(name)))
def save(self, filename, content):
temp_filename = super().save(filename, content)…
# If a file already exists in the target location, FileSystemStorage
# will generate an unique filename and save content there instead.
# When that happens, we move the file to the intended location using
# os.replace() (which is an atomic operation):
if temp_filename != filename:
os.replace(self.path(temp_filename), self.path(filename))
Variable | Value |
---|---|
__class__ | <class 'compressor.storage.CompressorFileStorage'> |
content | <ContentFile: Raw content> |
filename | 'CACHE/css/hyperkitty.e05f56ef6d5b.css' |
self | <compressor.storage.CompressorFileStorage object at 0x7f3dea93b460> |
/usr/lib/python3.9/site-packages/django/core/files/storage.py
, line 54, in save
if name is None:
name = content.name
if not hasattr(content, 'chunks'):
content = File(content, name)
name = self.get_available_name(name, max_length=max_length)
name = self._save(name, content)…
# Ensure that the name returned from the storage system is still valid.
validate_file_name(name, allow_relative_path=True)
return name
# These methods are part of the public API, with default implementations.
Variable | Value |
---|---|
content | <ContentFile: Raw content> |
max_length | None |
name | 'CACHE/css/hyperkitty.e05f56ef6d5b.css' |
self | <compressor.storage.CompressorFileStorage object at 0x7f3dea93b460> |
/usr/lib/python3.9/site-packages/django/core/files/storage.py
, line 279, in _save
# This file has a file path that we can move.
if hasattr(content, 'temporary_file_path'):
file_move_safe(content.temporary_file_path(), full_path)
# This is a normal uploadedfile that we can stream.
else:
# The current umask value is masked out by os.open!
fd = os.open(full_path, self.OS_OPEN_FLAGS, 0o666)…
_file = None
try:
locks.lock(fd, locks.LOCK_EX)
for chunk in content.chunks():
if _file is None:
mode = 'wb' if isinstance(chunk, bytes) else 'wt'
Variable | Value |
---|---|
content | <ContentFile: Raw content> |
directory | '/srv/webui/static/CACHE/css' |
full_path | '/srv/webui/static/CACHE/css/hyperkitty.e05f56ef6d5b.css' |
name | 'CACHE/css/hyperkitty.e05f56ef6d5b.css' |
self | <compressor.storage.CompressorFileStorage object at 0x7f3dea93b460> |
AnonymousUser
No GET data
No POST data
No FILES data
No cookie data
Variable | Value |
---|---|
CONTEXT_DOCUMENT_ROOT | '/var/www/html' |
CONTEXT_PREFIX | '' |
DOCUMENT_ROOT | '/var/www/html' |
GATEWAY_INTERFACE | 'CGI/1.1' |
HTTP_ACCEPT | '*/*' |
HTTP_ACCEPT_ENCODING | 'gzip' |
HTTP_HOST | 'lists.stg.fedoraproject.org' |
HTTP_USER_AGENT | 'claudebot' |
HTTP_VIA | '1.1 proxy02.stg.iad2.fedoraproject.org (Varnish/7.3)' |
HTTP_X_FEDORA_REQUESTID | 'ZfkPLz3oCG4qPf6_DelJ2wAEiBI' |
HTTP_X_FORWARDED_FOR | '44.213.99.37, ::1' |
HTTP_X_FORWARDED_HOST | 'lists.stg.fedoraproject.org' |
HTTP_X_FORWARDED_PROTO | 'https' |
HTTP_X_FORWARDED_SCHEME | 'https' |
HTTP_X_FORWARDED_SERVER | 'lists.fedoraproject.org' |
HTTP_X_SCHEME | 'https' |
HTTP_X_VARNISH | '5941659' |
PATH_INFO | '/archives/list/users@lists.fedoraproject.org/2019/5/' |
PATH_TRANSLATED | '/srv/webui/config/webui.wsgi/archives/list/users@lists.fedoraproject.org/2019/5/' |
QUERY_STRING | '' |
REMOTE_ADDR | '10.3.166.75' |
REMOTE_PORT | '48086' |
REQUEST_METHOD | 'GET' |
REQUEST_SCHEME | 'http' |
REQUEST_URI | '/archives/list/users@lists.fedoraproject.org/2019/5/' |
SCRIPT_FILENAME | '/srv/webui/config/webui.wsgi' |
SCRIPT_NAME | '' |
SERVER_ADDR | '10.3.166.40' |
SERVER_ADMIN | 'root@localhost' |
SERVER_NAME | 'lists.stg.fedoraproject.org' |
SERVER_PORT | '80' |
SERVER_PROTOCOL | 'HTTP/1.1' |
SERVER_SIGNATURE | '********************' |
SERVER_SOFTWARE | 'Apache' |
UNIQUE_ID | 'ZfkPL4RgFJ27L0qAMdXuiQAAAFA' |
apache.version | (2, 4, 53) |
mod_wsgi.application_group | '' |
mod_wsgi.callable_object | 'application' |
mod_wsgi.daemon_connects | '1' |
mod_wsgi.daemon_restarts | '0' |
mod_wsgi.daemon_start | '1710821167176112' |
mod_wsgi.enable_sendfile | '0' |
mod_wsgi.handler_script | '' |
mod_wsgi.ignore_activity | '0' |
mod_wsgi.listener_host | '' |
mod_wsgi.listener_port | '80' |
mod_wsgi.path_info | '/archives/list/users@lists.fedoraproject.org/2019/5/' |
mod_wsgi.process_group | 'webui' |
mod_wsgi.queue_start | '1710821167175987' |
mod_wsgi.request_handler | 'wsgi-script' |
mod_wsgi.request_id | 'ZfkPL4RgFJ27L0qAMdXuiQAAAFA' |
mod_wsgi.request_start | '1710821167175818' |
mod_wsgi.script_name | '' |
mod_wsgi.script_reloading | '1' |
mod_wsgi.script_start | '1710821167176184' |
mod_wsgi.thread_id | 2 |
mod_wsgi.thread_requests | 265 |
mod_wsgi.total_requests | 665 |
mod_wsgi.version | (4, 7, 1) |
wsgi.errors | <_io.TextIOWrapper name='<wsgi.errors>' encoding='utf-8'> |
wsgi.file_wrapper | <class 'mod_wsgi.FileWrapper'> |
wsgi.input | <mod_wsgi.Input object at 0x7f3dea713730> |
wsgi.input_terminated | True |
wsgi.multiprocess | True |
wsgi.multithread | True |
wsgi.run_once | False |
wsgi.url_scheme | 'http' |
wsgi.version | (1, 0) |
settings
Setting | Value |
---|---|
ABSOLUTE_URL_OVERRIDES | {} |
ACCOUNT_ADAPTER | 'django_fedora_nosignup.NoLocalSignUpAdapter' |
ACCOUNT_AUTHENTICATION_METHOD | 'username_email' |
ACCOUNT_DEFAULT_HTTP_PROTOCOL | 'https' |
ACCOUNT_EMAIL_REQUIRED | True |
ACCOUNT_EMAIL_VERIFICATION | 'mandatory' |
ACCOUNT_UNIQUE_EMAIL | True |
ADMINS | (('HyperKitty Admin', 'abompard@fedoraproject.org'),) |
ALLOWED_HOSTS | ['lists.stg.fedoraproject.org', 'lists.stg.fedorahosted.org', 'lists.stg.pagure.io', '.fedoraproject.org', 'localhost', '127.0.0.1', 'mailman01'] |
APPEND_SLASH | True |
AUTHENTICATION_BACKENDS | ('django.contrib.auth.backends.ModelBackend', 'allauth.account.auth_backends.AuthenticationBackend') |
AUTH_PASSWORD_VALIDATORS | '********************' |
AUTH_USER_MODEL | 'auth.User' |
BASE_DIR | '/srv/webui/config' |
CACHES | {'default': {'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache', 'LOCATION': '127.0.0.1:11211'}} |
CACHE_MIDDLEWARE_ALIAS | 'default' |
CACHE_MIDDLEWARE_KEY_PREFIX | '********************' |
CACHE_MIDDLEWARE_SECONDS | 600 |
COMPRESSORS | {'css': 'compressor.css.CssCompressor', 'js': 'compressor.js.JsCompressor'} |
COMPRESS_CACHEABLE_PRECOMPILERS | () |
COMPRESS_CACHE_BACKEND | 'default' |
COMPRESS_CACHE_KEY_FUNCTION | '********************' |
COMPRESS_CLEAN_CSS_ARGUMENTS | '' |
COMPRESS_CLEAN_CSS_BINARY | 'cleancss' |
COMPRESS_CLOSURE_COMPILER_ARGUMENTS | '' |
COMPRESS_CLOSURE_COMPILER_BINARY | 'java -jar compiler.jar' |
COMPRESS_CSS_HASHING_METHOD | 'mtime' |
COMPRESS_DATA_URI_MAX_SIZE | 1024 |
COMPRESS_DEBUG_TOGGLE | None |
COMPRESS_ENABLED | False |
COMPRESS_FILTERS | {'css': ['compressor.filters.css_default.CssAbsoluteFilter', 'compressor.filters.cssmin.rCSSMinFilter'], 'js': ['compressor.filters.jsmin.rJSMinFilter']} |
COMPRESS_JINJA2_GET_ENVIRONMENT | <function CompressorConf.JINJA2_GET_ENVIRONMENT at 0x7f3df802fdc0> |
COMPRESS_MINT_DELAY | 30 |
COMPRESS_MTIME_DELAY | 10 |
COMPRESS_OFFLINE | True |
COMPRESS_OFFLINE_CONTEXT | {'STATIC_URL': '/static/'} |
COMPRESS_OFFLINE_MANIFEST | 'manifest.json' |
COMPRESS_OFFLINE_MANIFEST_STORAGE | 'compressor.storage.OfflineManifestFileStorage' |
COMPRESS_OFFLINE_TIMEOUT | 31536000 |
COMPRESS_OUTPUT_DIR | 'CACHE' |
COMPRESS_PARSER | 'compressor.parser.AutoSelectParser' |
COMPRESS_PRECOMPILERS | (('text/less', 'lessc {infile} {outfile}'), ('text/x-scss', 'sassc -t compressed {infile} {outfile}'), ('text/x-sass', 'sassc -t compressed {infile} {outfile}')) |
COMPRESS_REBUILD_TIMEOUT | 2592000 |
COMPRESS_ROOT | '/srv/webui/static' |
COMPRESS_STORAGE | 'compressor.storage.CompressorFileStorage' |
COMPRESS_TEMPLATE_FILTER_CONTEXT | {'STATIC_URL': '/static/'} |
COMPRESS_URL | '/static/' |
COMPRESS_URL_PLACEHOLDER | '/__compressor_url_placeholder__/' |
COMPRESS_VERBOSE | False |
COMPRESS_YUGLIFY_BINARY | 'yuglify' |
COMPRESS_YUGLIFY_CSS_ARGUMENTS | '--terminal' |
COMPRESS_YUGLIFY_JS_ARGUMENTS | '--terminal' |
COMPRESS_YUI_BINARY | 'java -jar yuicompressor.jar' |
COMPRESS_YUI_CSS_ARGUMENTS | '' |
COMPRESS_YUI_JS_ARGUMENTS | '' |
CSRF_COOKIE_AGE | 31449600 |
CSRF_COOKIE_DOMAIN | None |
CSRF_COOKIE_HTTPONLY | True |
CSRF_COOKIE_NAME | 'csrftoken' |
CSRF_COOKIE_PATH | '/' |
CSRF_COOKIE_SAMESITE | 'Lax' |
CSRF_COOKIE_SECURE | True |
CSRF_FAILURE_VIEW | 'django.views.csrf.csrf_failure' |
CSRF_HEADER_NAME | 'HTTP_X_CSRFTOKEN' |
CSRF_TRUSTED_ORIGINS | [] |
CSRF_USE_SESSIONS | False |
DATABASES | {'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': 'db01.stg.iad2.fedoraproject.org', 'NAME': 'hyperkitty', 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': 'hyperkittyapp'}} |
DATABASE_ROUTERS | [] |
DATA_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
DATA_UPLOAD_MAX_NUMBER_FIELDS | 1000 |
DATA_UPLOAD_MAX_NUMBER_FILES | 100 |
DATETIME_FORMAT | 'N j, Y, P' |
DATETIME_INPUT_FORMATS | ['%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'] |
DATE_FORMAT | 'N j, Y' |
DATE_INPUT_FORMATS | ['%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'] |
DEBUG | True |
DEBUG_PROPAGATE_EXCEPTIONS | False |
DECIMAL_SEPARATOR | '.' |
DEFAULT_AUTO_FIELD | 'django.db.models.AutoField' |
DEFAULT_CHARSET | 'utf-8' |
DEFAULT_EXCEPTION_REPORTER | 'django.views.debug.ExceptionReporter' |
DEFAULT_EXCEPTION_REPORTER_FILTER | 'django.views.debug.SafeExceptionReporterFilter' |
DEFAULT_FILE_STORAGE | 'django.core.files.storage.FileSystemStorage' |
DEFAULT_FROM_EMAIL | 'admin@fedoraproject.org' |
DEFAULT_HASHING_ALGORITHM | 'sha256' |
DEFAULT_INDEX_TABLESPACE | '' |
DEFAULT_TABLESPACE | '' |
DISALLOWED_USER_AGENTS | [] |
EMAIL_BACKEND | 'django.core.mail.backends.smtp.EmailBackend' |
EMAIL_HOST | 'localhost' |
EMAIL_HOST_PASSWORD | '********************' |
EMAIL_HOST_USER | '' |
EMAIL_PORT | 25 |
EMAIL_SSL_CERTFILE | None |
EMAIL_SSL_KEYFILE | '********************' |
EMAIL_SUBJECT_PREFIX | '[Django] ' |
EMAIL_TIMEOUT | None |
EMAIL_USE_LOCALTIME | False |
EMAIL_USE_SSL | False |
EMAIL_USE_TLS | False |
FILE_UPLOAD_DIRECTORY_PERMISSIONS | None |
FILE_UPLOAD_HANDLERS | ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler'] |
FILE_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
FILE_UPLOAD_PERMISSIONS | 420 |
FILE_UPLOAD_TEMP_DIR | None |
FILTER_VHOST | False |
FIRST_DAY_OF_WEEK | 0 |
FIXTURE_DIRS | [] |
FORCE_SCRIPT_NAME | None |
FORMAT_MODULE_PATH | None |
FORM_RENDERER | 'django.forms.renderers.DjangoTemplates' |
GRAVATAR_DEFAULT_IMAGE | 'retro' |
GRAVATAR_DEFAULT_SECURE | True |
GRAVATAR_SECURE_URL | 'https://seccdn.libravatar.org/' |
GRAVATAR_URL | 'http://cdn.libravatar.org/' |
HAYSTACK_CONNECTIONS | {'default': {'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine', 'PATH': '/srv/webui/fulltext_index'}} |
IGNORABLE_404_URLS | [] |
INSTALLED_APPS | ('django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'hyperkitty', 'rest_framework', 'django_gravatar', 'compressor', 'django_extensions', 'postorius', 'django_mailman3', 'allauth', 'allauth.account', 'allauth.socialaccount', 'django_q', 'django_mailman3.lib.auth.fedora', 'allauth.socialaccount.providers.facebook', 'allauth.socialaccount.providers.github', 'allauth.socialaccount.providers.gitlab', 'allauth.socialaccount.providers.google', 'allauth.socialaccount.providers.stackexchange', 'allauth.socialaccount.providers.twitter', 'allauth.socialaccount.providers.openid') |
INTERNAL_IPS | [] |
LANGUAGES | [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ar-dz', 'Algerian Arabic'), ('ast', 'Asturian'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('be', 'Belarusian'), ('bn', 'Bengali'), ('br', 'Breton'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dsb', 'Lower Sorbian'), ('el', 'Greek'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'), ('es-co', 'Colombian Spanish'), ('es-mx', 'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('es-ve', 'Venezuelan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy', 'Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hsb', 'Upper Sorbian'), ('hu', 'Hungarian'), ('hy', 'Armenian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('ig', 'Igbo'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('ky', 'Kyrgyz'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('my', 'Burmese'), ('nb', 'Norwegian Bokmål'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('nn', 'Norwegian Nynorsk'), ('os', 'Ossetic'), ('pa', 'Punjabi'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('pt-br', 'Brazilian Portuguese'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('sr-latn', 'Serbian Latin'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('tg', 'Tajik'), ('th', 'Thai'), ('tk', 'Turkmen'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')] |
LANGUAGES_BIDI | ['he', 'ar', 'ar-dz', 'fa', 'ur'] |
LANGUAGE_CODE | 'en-us' |
LANGUAGE_COOKIE_AGE | None |
LANGUAGE_COOKIE_DOMAIN | None |
LANGUAGE_COOKIE_HTTPONLY | False |
LANGUAGE_COOKIE_NAME | 'django_language' |
LANGUAGE_COOKIE_PATH | '/' |
LANGUAGE_COOKIE_SAMESITE | None |
LANGUAGE_COOKIE_SECURE | False |
LOCALE_PATHS | [] |
LOGGING | {'disable_existing_loggers': False, 'filters': {'exclude_useless_errors': {'()': 'django.utils.log.CallbackFilter', 'callback': <function exclude_useless_errors at 0x7f3df9556ca0>}, 'require_debug_false': {'()': 'django.utils.log.RequireDebugFalse'}}, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'format': '%(levelname)s %(asctime)s %(process)d ' '%(name)s %(message)s'}}, 'handlers': {'file': {'class': 'logging.handlers.WatchedFileHandler', 'filename': '/var/log/hyperkitty/hyperkitty.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'mail_admins': {'class': 'django.utils.log.AdminEmailHandler', 'filters': ['require_debug_false', 'exclude_useless_errors'], 'level': 'ERROR'}, 'null': {'class': 'logging.NullHandler'}}, 'loggers': {'django.request': {'handlers': ['file'], 'level': 'DEBUG'}, 'django.security.DisallowedHost': {'handlers': ['null'], 'propagate': False}, 'requests.packages.urllib3': {'level': 'WARNING'}}, 'root': {'handlers': ['file'], 'level': 'INFO'}, 'version': 1} |
LOGGING_CONFIG | 'logging.config.dictConfig' |
LOGIN_REDIRECT_URL | 'hk_root' |
LOGIN_URL | 'account_login' |
LOGOUT_REDIRECT_URL | None |
LOGOUT_URL | 'account_logout' |
MAILMAN_ARCHIVER_FROM | ('127.0.0.1', '::1') |
MAILMAN_ARCHIVER_KEY | '********************' |
MAILMAN_REST_API_PASS | '********************' |
MAILMAN_REST_API_URL | '********************' |
MAILMAN_REST_API_USER | '********************' |
MANAGERS | [] |
MEDIA_ROOT | '' |
MEDIA_URL | '/' |
MESSAGE_STORAGE | 'django.contrib.messages.storage.fallback.FallbackStorage' |
MESSAGE_TAGS | {40: 'danger'} |
MIDDLEWARE | ('django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', 'django_mailman3.middleware.TimezoneMiddleware', 'postorius.middleware.PostoriusMiddleware') |
MIGRATION_MODULES | {} |
MONTH_DAY_FORMAT | 'F j' |
NUMBER_GROUPING | 0 |
PASSWORD_HASHERS | '********************' |
PASSWORD_RESET_TIMEOUT | '********************' |
PASSWORD_RESET_TIMEOUT_DAYS | '********************' |
PREPEND_WWW | False |
Q_CLUSTER | {'orm': 'default', 'save_limit': 100000, 'timeout': 300} |
REST_FRAMEWORK | {'DEFAULT_FILTER_BACKENDS': ('rest_framework.filters.OrderingFilter',), 'PAGE_SIZE': 10} |
ROOT_URLCONF | 'urls' |
SECRET_KEY | '********************' |
SECURE_BROWSER_XSS_FILTER | True |
SECURE_CONTENT_TYPE_NOSNIFF | True |
SECURE_HSTS_INCLUDE_SUBDOMAINS | False |
SECURE_HSTS_PRELOAD | False |
SECURE_HSTS_SECONDS | 0 |
SECURE_PROXY_SSL_HEADER | ('HTTP_X_FORWARDED_SCHEME', 'https') |
SECURE_REDIRECT_EXEMPT | [] |
SECURE_REFERRER_POLICY | 'same-origin' |
SECURE_SSL_HOST | None |
SECURE_SSL_REDIRECT | False |
SERVER_EMAIL | 'root@fedoraproject.org' |
SESSION_CACHE_ALIAS | 'default' |
SESSION_COOKIE_AGE | 1209600 |
SESSION_COOKIE_DOMAIN | None |
SESSION_COOKIE_HTTPONLY | True |
SESSION_COOKIE_NAME | 'sessionid' |
SESSION_COOKIE_PATH | '/' |
SESSION_COOKIE_SAMESITE | 'Lax' |
SESSION_COOKIE_SECURE | True |
SESSION_ENGINE | 'django.contrib.sessions.backends.cached_db' |
SESSION_EXPIRE_AT_BROWSER_CLOSE | False |
SESSION_FILE_PATH | None |
SESSION_SAVE_EVERY_REQUEST | False |
SESSION_SERIALIZER | 'django.contrib.sessions.serializers.JSONSerializer' |
SETTINGS_MODULE | 'settings' |
SHORT_DATETIME_FORMAT | 'm/d/Y P' |
SHORT_DATE_FORMAT | 'm/d/Y' |
SIGNING_BACKEND | 'django.core.signing.TimestampSigner' |
SILENCED_SYSTEM_CHECKS | [] |
SITE_ID | 1 |
SOCIALACCOUNT_ADAPTER | 'django_fedora_nosignup.SignUpEnabledSocialAdapter' |
SOCIALACCOUNT_PROVIDERS | {'facebook': {'FIELDS': ['email', 'name', 'first_name', 'last_name', 'locale', 'timezone'], 'METHOD': 'oauth2', 'SCOPE': ['email'], 'VERSION': 'v2.4'}, 'google': {'AUTH_PARAMS': {'access_type': 'online'}, 'SCOPE': ['profile', 'email']}, 'openid': {'SERVERS': [{'id': 'yahoo', 'name': 'Yahoo', 'openid_url': 'http://me.yahoo.com'}]}, 'stackexchange': {'SITE': 'stackoverflow'}} |
STATICFILES_DIRS | ('/srv/webui/static-fedora/',) |
STATICFILES_FINDERS | ('django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', 'compressor.finders.CompressorFinder') |
STATICFILES_STORAGE | 'django.contrib.staticfiles.storage.StaticFilesStorage' |
STATIC_ROOT | '/srv/webui/static/' |
STATIC_URL | '/static/' |
TEMPLATES | [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/srv/webui/templates'], 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.template.context_processors.csrf', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', 'django_mailman3.context_processors.common', 'hyperkitty.context_processors.common', 'postorius.context_processors.postorius'], 'loaders': [('django.template.loaders.cached.Loader', ['django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader'])]}}] |
TEST_NON_SERIALIZED_APPS | [] |
TEST_RUNNER | 'django.test.runner.DiscoverRunner' |
THOUSAND_SEPARATOR | ',' |
TIME_FORMAT | 'P' |
TIME_INPUT_FORMATS | ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M'] |
TIME_ZONE | 'America/Chicago' |
USE_I18N | True |
USE_L10N | True |
USE_THOUSAND_SEPARATOR | False |
USE_TZ | True |
USE_X_FORWARDED_HOST | True |
USE_X_FORWARDED_PORT | False |
WSGI_APPLICATION | 'wsgi.application' |
X_FRAME_OPTIONS | 'DENY' |
YEAR_MONTH_FORMAT | 'F Y' |
You’re seeing this error because you have DEBUG = True
in your
Django settings file. Change that to False
, and Django will
display a standard page generated by the handler for this status code.