Compare commits
	
		
			3 commits
		
	
	
		
			affb49a971
			...
			22945f72bf
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 22945f72bf | |||
| d0fe915612 | |||
| cb62bd63e2 | 
					 20 changed files with 1023 additions and 587 deletions
				
			
		|  | @ -1,6 +1,9 @@ | ||||||
| Changelog | Changelog | ||||||
| ========= | ========= | ||||||
| 
 | 
 | ||||||
|  | * :release:`0.14.0 <2023-07-22>` | ||||||
|  | * :feature:`-` add disk space statistics | ||||||
|  | 
 | ||||||
| * :release:`0.13.0 <2023-05-08>` | * :release:`0.13.0 <2023-05-08>` | ||||||
| * :feature:`-` add REST API to retrieve and set user information as admin | * :feature:`-` add REST API to retrieve and set user information as admin | ||||||
| * :feature:`-` add support model for offline account reset codes in new help | * :feature:`-` add support model for offline account reset codes in new help | ||||||
|  |  | ||||||
							
								
								
									
										143
									
								
								docs/conf.py
									
										
									
									
									
								
							
							
						
						
									
										143
									
								
								docs/conf.py
									
										
									
									
									
								
							|  | @ -20,46 +20,49 @@ import django | ||||||
| # If extensions (or modules to document with autodoc) are in another directory, | # If extensions (or modules to document with autodoc) are in another directory, | ||||||
| # add these directories to sys.path here. If the directory is relative to the | # add these directories to sys.path here. If the directory is relative to the | ||||||
| # documentation root, use os.path.abspath to make it absolute, like shown here. | # documentation root, use os.path.abspath to make it absolute, like shown here. | ||||||
| sys.path.insert(0, os.path.abspath(os.path.join('..', 'gnuviechadmin'))) | sys.path.insert(0, os.path.abspath(os.path.join("..", "gnuviechadmin"))) | ||||||
| 
 | 
 | ||||||
| os.environ['DJANGO_SETTINGS_MODULE'] = 'gnuviechadmin.settings' | os.environ["DJANGO_SETTINGS_MODULE"] = "gnuviechadmin.settings" | ||||||
| os.environ['GVA_SITE_ADMINMAIL'] = 'admin@gva.example.org' | os.environ["GVA_SITE_ADMINMAIL"] = "admin@gva.example.org" | ||||||
| 
 | 
 | ||||||
| django.setup() | django.setup() | ||||||
| 
 | 
 | ||||||
| # -- General configuration ----------------------------------------------------- | # -- General configuration ----------------------------------------------------- | ||||||
| 
 | 
 | ||||||
| # If your documentation needs a minimal Sphinx version, state it here. | # If your documentation needs a minimal Sphinx version, state it here. | ||||||
| #needs_sphinx = '1.0' | # needs_sphinx = '1.0' | ||||||
| 
 | 
 | ||||||
| # Add any Sphinx extension module names here, as strings. They can be extensions | # Add any Sphinx extension module names here, as strings. They can be extensions | ||||||
| # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. | # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. | ||||||
| extensions = [ | extensions = [ | ||||||
|     'releases', 'sphinx.ext.autodoc', 'celery.contrib.sphinx', |     "releases", | ||||||
|     'sphinxcontrib.blockdiag'] |     "sphinx.ext.autodoc", | ||||||
|  |     "celery.contrib.sphinx", | ||||||
|  |     "sphinxcontrib.blockdiag", | ||||||
|  | ] | ||||||
| 
 | 
 | ||||||
| # configuration for releases extension | # configuration for releases extension | ||||||
| releases_issue_uri = 'https://git.dittberner.info/gnuviech/gva/issues/%s' | releases_issue_uri = "https://git.dittberner.info/gnuviech/gva/issues/%s" | ||||||
| releases_release_uri = 'https://git.dittberner.info/gnuviech/gva/src/tag/%s' | releases_release_uri = "https://git.dittberner.info/gnuviech/gva/src/tag/%s" | ||||||
| 
 | 
 | ||||||
| # configuration for blockdiag extension | # configuration for blockdiag extension | ||||||
| blockdiag_fontpath = '/usr/share/fonts/truetype/dejavu/' | blockdiag_fontpath = "/usr/share/fonts/truetype/dejavu/" | ||||||
| 
 | 
 | ||||||
| # Add any paths that contain templates here, relative to this directory. | # Add any paths that contain templates here, relative to this directory. | ||||||
| templates_path = ['_templates'] | templates_path = ["_templates"] | ||||||
| 
 | 
 | ||||||
| # The suffix of source filenames. | # The suffix of source filenames. | ||||||
| source_suffix = '.rst' | source_suffix = ".rst" | ||||||
| 
 | 
 | ||||||
| # The encoding of source files. | # The encoding of source files. | ||||||
| #source_encoding = 'utf-8-sig' | # source_encoding = 'utf-8-sig' | ||||||
| 
 | 
 | ||||||
| # The master toctree document. | # The master toctree document. | ||||||
| master_doc = 'index' | master_doc = "index" | ||||||
| 
 | 
 | ||||||
| # General information about the project. | # General information about the project. | ||||||
| project = u'gnuviechadmin' | project = "gnuviechadmin" | ||||||
| copyright = u'2014-2020, Jan Dittberner' | copyright = "2014-2023, Jan Dittberner" | ||||||
| 
 | 
 | ||||||
| # The version info for the project you're documenting, acts as replacement for | # The version info for the project you're documenting, acts as replacement for | ||||||
| # |version| and |release|, also used in various other places throughout the | # |version| and |release|, also used in various other places throughout the | ||||||
|  | @ -69,121 +72,121 @@ copyright = u'2014-2020, Jan Dittberner' | ||||||
| from gnuviechadmin import __version__ as release | from gnuviechadmin import __version__ as release | ||||||
| 
 | 
 | ||||||
| # The short X.Y version. | # The short X.Y version. | ||||||
| version = ".".join(release.split('.')[:2]) | version = ".".join(release.split(".")[:2]) | ||||||
| 
 | 
 | ||||||
| # The language for content autogenerated by Sphinx. Refer to documentation | # The language for content autogenerated by Sphinx. Refer to documentation | ||||||
| # for a list of supported languages. | # for a list of supported languages. | ||||||
| #language = None | # language = None | ||||||
| 
 | 
 | ||||||
| # There are two options for replacing |today|: either, you set today to some | # There are two options for replacing |today|: either, you set today to some | ||||||
| # non-false value, then it is used: | # non-false value, then it is used: | ||||||
| #today = '' | # today = '' | ||||||
| # Else, today_fmt is used as the format for a strftime call. | # Else, today_fmt is used as the format for a strftime call. | ||||||
| #today_fmt = '%B %d, %Y' | # today_fmt = '%B %d, %Y' | ||||||
| 
 | 
 | ||||||
| # List of patterns, relative to source directory, that match files and | # List of patterns, relative to source directory, that match files and | ||||||
| # directories to ignore when looking for source files. | # directories to ignore when looking for source files. | ||||||
| exclude_patterns = ['_build'] | exclude_patterns = ["_build"] | ||||||
| 
 | 
 | ||||||
| # The reST default role (used for this markup: `text`) to use for all documents. | # The reST default role (used for this markup: `text`) to use for all documents. | ||||||
| #default_role = None | # default_role = None | ||||||
| 
 | 
 | ||||||
| # If true, '()' will be appended to :func: etc. cross-reference text. | # If true, '()' will be appended to :func: etc. cross-reference text. | ||||||
| #add_function_parentheses = True | # add_function_parentheses = True | ||||||
| 
 | 
 | ||||||
| # If true, the current module name will be prepended to all description | # If true, the current module name will be prepended to all description | ||||||
| # unit titles (such as .. function::). | # unit titles (such as .. function::). | ||||||
| #add_module_names = True | # add_module_names = True | ||||||
| 
 | 
 | ||||||
| # If true, sectionauthor and moduleauthor directives will be shown in the | # If true, sectionauthor and moduleauthor directives will be shown in the | ||||||
| # output. They are ignored by default. | # output. They are ignored by default. | ||||||
| #show_authors = False | # show_authors = False | ||||||
| 
 | 
 | ||||||
| # The name of the Pygments (syntax highlighting) style to use. | # The name of the Pygments (syntax highlighting) style to use. | ||||||
| pygments_style = 'sphinx' | pygments_style = "sphinx" | ||||||
| 
 | 
 | ||||||
| # A list of ignored prefixes for module index sorting. | # A list of ignored prefixes for module index sorting. | ||||||
| #modindex_common_prefix = [] | # modindex_common_prefix = [] | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # -- Options for HTML output --------------------------------------------------- | # -- Options for HTML output --------------------------------------------------- | ||||||
| 
 | 
 | ||||||
| # The theme to use for HTML and HTML Help pages.  See the documentation for | # The theme to use for HTML and HTML Help pages.  See the documentation for | ||||||
| # a list of builtin themes. | # a list of builtin themes. | ||||||
| html_theme = 'alabaster' | html_theme = "alabaster" | ||||||
| 
 | 
 | ||||||
| # Theme options are theme-specific and customize the look and feel of a theme | # Theme options are theme-specific and customize the look and feel of a theme | ||||||
| # further.  For a list of options available for each theme, see the | # further.  For a list of options available for each theme, see the | ||||||
| # documentation. | # documentation. | ||||||
| #html_theme_options = {} | # html_theme_options = {} | ||||||
| 
 | 
 | ||||||
| # Add any paths that contain custom themes here, relative to this directory. | # Add any paths that contain custom themes here, relative to this directory. | ||||||
| #html_theme_path = [] | # html_theme_path = [] | ||||||
| 
 | 
 | ||||||
| # The name for this set of Sphinx documents.  If None, it defaults to | # The name for this set of Sphinx documents.  If None, it defaults to | ||||||
| # "<project> v<release> documentation". | # "<project> v<release> documentation". | ||||||
| #html_title = None | # html_title = None | ||||||
| 
 | 
 | ||||||
| # A shorter title for the navigation bar.  Default is the same as html_title. | # A shorter title for the navigation bar.  Default is the same as html_title. | ||||||
| #html_short_title = None | # html_short_title = None | ||||||
| 
 | 
 | ||||||
| # The name of an image file (relative to this directory) to place at the top | # The name of an image file (relative to this directory) to place at the top | ||||||
| # of the sidebar. | # of the sidebar. | ||||||
| #html_logo = None | # html_logo = None | ||||||
| 
 | 
 | ||||||
| # The name of an image file (within the static path) to use as favicon of the | # The name of an image file (within the static path) to use as favicon of the | ||||||
| # docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32 | # docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32 | ||||||
| # pixels large. | # pixels large. | ||||||
| #html_favicon = None | # html_favicon = None | ||||||
| 
 | 
 | ||||||
| # Add any paths that contain custom static files (such as style sheets) here, | # Add any paths that contain custom static files (such as style sheets) here, | ||||||
| # relative to this directory. They are copied after the builtin static files, | # relative to this directory. They are copied after the builtin static files, | ||||||
| # so a file named "default.css" will overwrite the builtin "default.css". | # so a file named "default.css" will overwrite the builtin "default.css". | ||||||
| html_static_path = ['_static'] | html_static_path = ["_static"] | ||||||
| 
 | 
 | ||||||
| # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, | # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, | ||||||
| # using the given strftime format. | # using the given strftime format. | ||||||
| #html_last_updated_fmt = '%b %d, %Y' | # html_last_updated_fmt = '%b %d, %Y' | ||||||
| 
 | 
 | ||||||
| # If true, SmartyPants will be used to convert quotes and dashes to | # If true, SmartyPants will be used to convert quotes and dashes to | ||||||
| # typographically correct entities. | # typographically correct entities. | ||||||
| #html_use_smartypants = True | # html_use_smartypants = True | ||||||
| 
 | 
 | ||||||
| # Custom sidebar templates, maps document names to template names. | # Custom sidebar templates, maps document names to template names. | ||||||
| #html_sidebars = {} | # html_sidebars = {} | ||||||
| 
 | 
 | ||||||
| # Additional templates that should be rendered to pages, maps page names to | # Additional templates that should be rendered to pages, maps page names to | ||||||
| # template names. | # template names. | ||||||
| #html_additional_pages = {} | # html_additional_pages = {} | ||||||
| 
 | 
 | ||||||
| # If false, no module index is generated. | # If false, no module index is generated. | ||||||
| #html_domain_indices = True | # html_domain_indices = True | ||||||
| 
 | 
 | ||||||
| # If false, no index is generated. | # If false, no index is generated. | ||||||
| #html_use_index = True | # html_use_index = True | ||||||
| 
 | 
 | ||||||
| # If true, the index is split into individual pages for each letter. | # If true, the index is split into individual pages for each letter. | ||||||
| #html_split_index = False | # html_split_index = False | ||||||
| 
 | 
 | ||||||
| # If true, links to the reST sources are added to the pages. | # If true, links to the reST sources are added to the pages. | ||||||
| #html_show_sourcelink = True | # html_show_sourcelink = True | ||||||
| 
 | 
 | ||||||
| # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. | # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. | ||||||
| #html_show_sphinx = True | # html_show_sphinx = True | ||||||
| 
 | 
 | ||||||
| # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. | # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. | ||||||
| #html_show_copyright = True | # html_show_copyright = True | ||||||
| 
 | 
 | ||||||
| # If true, an OpenSearch description file will be output, and all pages will | # If true, an OpenSearch description file will be output, and all pages will | ||||||
| # contain a <link> tag referring to it.  The value of this option must be the | # contain a <link> tag referring to it.  The value of this option must be the | ||||||
| # base URL from which the finished HTML is served. | # base URL from which the finished HTML is served. | ||||||
| #html_use_opensearch = '' | # html_use_opensearch = '' | ||||||
| 
 | 
 | ||||||
| # This is the file name suffix for HTML files (e.g. ".xhtml"). | # This is the file name suffix for HTML files (e.g. ".xhtml"). | ||||||
| #html_file_suffix = None | # html_file_suffix = None | ||||||
| 
 | 
 | ||||||
| # Output file base name for HTML help builder. | # Output file base name for HTML help builder. | ||||||
| htmlhelp_basename = 'gnuviechadmindoc' | htmlhelp_basename = "gnuviechadmindoc" | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # -- Options for LaTeX output -------------------------------------------------- | # -- Options for LaTeX output -------------------------------------------------- | ||||||
|  | @ -191,10 +194,8 @@ htmlhelp_basename = 'gnuviechadmindoc' | ||||||
| latex_elements = { | latex_elements = { | ||||||
|     # The paper size ('letterpaper' or 'a4paper'). |     # The paper size ('letterpaper' or 'a4paper'). | ||||||
|     #'papersize': 'letterpaper', |     #'papersize': 'letterpaper', | ||||||
| 
 |  | ||||||
|     # The font size ('10pt', '11pt' or '12pt'). |     # The font size ('10pt', '11pt' or '12pt'). | ||||||
|     #'pointsize': '10pt', |     #'pointsize': '10pt', | ||||||
| 
 |  | ||||||
|     # Additional stuff for the LaTeX preamble. |     # Additional stuff for the LaTeX preamble. | ||||||
|     #'preamble': '', |     #'preamble': '', | ||||||
| } | } | ||||||
|  | @ -202,29 +203,34 @@ latex_elements = { | ||||||
| # Grouping the document tree into LaTeX files. List of tuples | # Grouping the document tree into LaTeX files. List of tuples | ||||||
| # (source start file, target name, title, author, documentclass [howto/manual]). | # (source start file, target name, title, author, documentclass [howto/manual]). | ||||||
| latex_documents = [ | latex_documents = [ | ||||||
|     ('index', 'gnuviechadmin.tex', u'gnuviechadmin Documentation', |     ( | ||||||
|      u'Jan Dittberner', 'manual'), |         "index", | ||||||
|  |         "gnuviechadmin.tex", | ||||||
|  |         "gnuviechadmin Documentation", | ||||||
|  |         "Jan Dittberner", | ||||||
|  |         "manual", | ||||||
|  |     ), | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| # The name of an image file (relative to this directory) to place at the top of | # The name of an image file (relative to this directory) to place at the top of | ||||||
| # the title page. | # the title page. | ||||||
| #latex_logo = None | # latex_logo = None | ||||||
| 
 | 
 | ||||||
| # For "manual" documents, if this is true, then toplevel headings are parts, | # For "manual" documents, if this is true, then toplevel headings are parts, | ||||||
| # not chapters. | # not chapters. | ||||||
| #latex_use_parts = False | # latex_use_parts = False | ||||||
| 
 | 
 | ||||||
| # If true, show page references after internal links. | # If true, show page references after internal links. | ||||||
| #latex_show_pagerefs = False | # latex_show_pagerefs = False | ||||||
| 
 | 
 | ||||||
| # If true, show URL addresses after external links. | # If true, show URL addresses after external links. | ||||||
| #latex_show_urls = False | # latex_show_urls = False | ||||||
| 
 | 
 | ||||||
| # Documents to append as an appendix to all manuals. | # Documents to append as an appendix to all manuals. | ||||||
| #latex_appendices = [] | # latex_appendices = [] | ||||||
| 
 | 
 | ||||||
| # If false, no module index is generated. | # If false, no module index is generated. | ||||||
| #latex_domain_indices = True | # latex_domain_indices = True | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # -- Options for manual page output -------------------------------------------- | # -- Options for manual page output -------------------------------------------- | ||||||
|  | @ -232,12 +238,11 @@ latex_documents = [ | ||||||
| # One entry per manual page. List of tuples | # One entry per manual page. List of tuples | ||||||
| # (source start file, name, description, authors, manual section). | # (source start file, name, description, authors, manual section). | ||||||
| man_pages = [ | man_pages = [ | ||||||
|     ('index', 'gnuviechadmin', u'gnuviechadmin Documentation', |     ("index", "gnuviechadmin", "gnuviechadmin Documentation", ["Jan Dittberner"], 1) | ||||||
|      [u'Jan Dittberner'], 1) |  | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| # If true, show URL addresses after external links. | # If true, show URL addresses after external links. | ||||||
| #man_show_urls = False | # man_show_urls = False | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # -- Options for Texinfo output ------------------------------------------------ | # -- Options for Texinfo output ------------------------------------------------ | ||||||
|  | @ -246,16 +251,22 @@ man_pages = [ | ||||||
| # (source start file, target name, title, author, | # (source start file, target name, title, author, | ||||||
| #  dir menu entry, description, category) | #  dir menu entry, description, category) | ||||||
| texinfo_documents = [ | texinfo_documents = [ | ||||||
|     ('index', 'gnuviechadmin', u'gnuviechadmin Documentation', |     ( | ||||||
|      u'Jan Dittberner', 'gnuviechadmin', 'Customer center for gnuviech servers.', |         "index", | ||||||
|      'Miscellaneous'), |         "gnuviechadmin", | ||||||
|  |         "gnuviechadmin Documentation", | ||||||
|  |         "Jan Dittberner", | ||||||
|  |         "gnuviechadmin", | ||||||
|  |         "Customer center for gnuviech servers.", | ||||||
|  |         "Miscellaneous", | ||||||
|  |     ), | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| # Documents to append as an appendix to all manuals. | # Documents to append as an appendix to all manuals. | ||||||
| #texinfo_appendices = [] | # texinfo_appendices = [] | ||||||
| 
 | 
 | ||||||
| # If false, no module index is generated. | # If false, no module index is generated. | ||||||
| #texinfo_domain_indices = True | # texinfo_domain_indices = True | ||||||
| 
 | 
 | ||||||
| # How to display URL addresses: 'footnote', 'no', or 'inline'. | # How to display URL addresses: 'footnote', 'no', or 'inline'. | ||||||
| #texinfo_show_urls = 'footnote' | # texinfo_show_urls = 'footnote' | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ msgid "" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Project-Id-Version: contact_form\n" | "Project-Id-Version: contact_form\n" | ||||||
| "Report-Msgid-Bugs-To: \n" | "Report-Msgid-Bugs-To: \n" | ||||||
| "POT-Creation-Date: 2023-04-22 13:01+0200\n" | "POT-Creation-Date: 2023-07-22 19:45+0200\n" | ||||||
| "PO-Revision-Date: 2023-04-22 13:01+0200\n" | "PO-Revision-Date: 2023-04-22 13:01+0200\n" | ||||||
| "Last-Translator: Jan Dittberner <jan@dittberner.info>\n" | "Last-Translator: Jan Dittberner <jan@dittberner.info>\n" | ||||||
| "Language-Team: Jan Dittberner <jan@dittberner.info>\n" | "Language-Team: Jan Dittberner <jan@dittberner.info>\n" | ||||||
|  | @ -19,19 +19,19 @@ msgstr "" | ||||||
| "X-Generator: Poedit 3.2.2\n" | "X-Generator: Poedit 3.2.2\n" | ||||||
| "X-Poedit-SourceCharset: UTF-8\n" | "X-Poedit-SourceCharset: UTF-8\n" | ||||||
| 
 | 
 | ||||||
| #: contact_form/forms.py:25 | #: contact_form/forms.py:26 | ||||||
| msgid "Your name" | msgid "Your name" | ||||||
| msgstr "Ihr Name" | msgstr "Ihr Name" | ||||||
| 
 | 
 | ||||||
| #: contact_form/forms.py:26 | #: contact_form/forms.py:27 | ||||||
| msgid "Your email address" | msgid "Your email address" | ||||||
| msgstr "Ihre E-Mail-Adresse" | msgstr "Ihre E-Mail-Adresse" | ||||||
| 
 | 
 | ||||||
| #: contact_form/forms.py:27 | #: contact_form/forms.py:28 | ||||||
| msgid "Your message" | msgid "Your message" | ||||||
| msgstr "Ihre Nachricht" | msgstr "Ihre Nachricht" | ||||||
| 
 | 
 | ||||||
| #: contact_form/forms.py:39 | #: contact_form/forms.py:40 | ||||||
| msgid "Send message" | msgid "Send message" | ||||||
| msgstr "Nachricht senden" | msgstr "Nachricht senden" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -7,8 +7,8 @@ msgid "" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Project-Id-Version: gnuviechadmin dashboard\n" | "Project-Id-Version: gnuviechadmin dashboard\n" | ||||||
| "Report-Msgid-Bugs-To: \n" | "Report-Msgid-Bugs-To: \n" | ||||||
| "POT-Creation-Date: 2023-04-16 22:07+0200\n" | "POT-Creation-Date: 2023-07-22 19:45+0200\n" | ||||||
| "PO-Revision-Date: 2023-04-16 18:31+0200\n" | "PO-Revision-Date: 2023-07-22 19:46+0200\n" | ||||||
| "Last-Translator: Jan Dittberner <jan@dittberner.info>\n" | "Last-Translator: Jan Dittberner <jan@dittberner.info>\n" | ||||||
| "Language-Team: Jan Dittberner <jan@dittberner.info>\n" | "Language-Team: Jan Dittberner <jan@dittberner.info>\n" | ||||||
| "Language: de\n" | "Language: de\n" | ||||||
|  | @ -19,25 +19,6 @@ msgstr "" | ||||||
| "X-Generator: Poedit 3.2.2\n" | "X-Generator: Poedit 3.2.2\n" | ||||||
| "X-Poedit-SourceCharset: UTF-8\n" | "X-Poedit-SourceCharset: UTF-8\n" | ||||||
| 
 | 
 | ||||||
| #: dashboard/templates/dashboard/index.html:3 |  | ||||||
| msgid "Welcome" |  | ||||||
| msgstr "Willkommen" |  | ||||||
| 
 |  | ||||||
| #: dashboard/templates/dashboard/index.html:4 |  | ||||||
| msgid "Welcome to our customer self service" |  | ||||||
| msgstr "Willkommen in unserem Selbstservice-System" |  | ||||||
| 
 |  | ||||||
| #: dashboard/templates/dashboard/index.html:7 |  | ||||||
| #, python-format |  | ||||||
| msgid "" |  | ||||||
| "Hello %(full_name)s,<br/> You can visit your <a " |  | ||||||
| "href=\"%(dashboard_url)s\">Dashboard</a> to view and modify your hosting " |  | ||||||
| "options." |  | ||||||
| msgstr "" |  | ||||||
| "Hallo %(full_name)s,<br /> Sie können Ihre <a " |  | ||||||
| "href=\"%(dashboard_url)s\">Startseite</a> besuchen, um Ihre " |  | ||||||
| "Hostingeinstellungen anzusehen und zu bearbeiten." |  | ||||||
| 
 |  | ||||||
| #: dashboard/templates/dashboard/user_dashboard.html:3 | #: dashboard/templates/dashboard/user_dashboard.html:3 | ||||||
| #: dashboard/templates/dashboard/user_dashboard.html:6 | #: dashboard/templates/dashboard/user_dashboard.html:6 | ||||||
| #, python-format | #, python-format | ||||||
|  | @ -53,46 +34,26 @@ msgid "Name" | ||||||
| msgstr "Name" | msgstr "Name" | ||||||
| 
 | 
 | ||||||
| #: dashboard/templates/dashboard/user_dashboard.html:18 | #: dashboard/templates/dashboard/user_dashboard.html:18 | ||||||
| msgid "Disk space" | msgid "Setup date" | ||||||
| msgstr "Speicherplatz" | msgstr "Einrichtungsdatum" | ||||||
| 
 | 
 | ||||||
| #: dashboard/templates/dashboard/user_dashboard.html:19 | #: dashboard/templates/dashboard/user_dashboard.html:19 | ||||||
| msgid "Mailboxes" |  | ||||||
| msgstr "Postfächer" |  | ||||||
| 
 |  | ||||||
| #: dashboard/templates/dashboard/user_dashboard.html:20 |  | ||||||
| msgid "Databases" |  | ||||||
| msgstr "Datenbanken" |  | ||||||
| 
 |  | ||||||
| #: dashboard/templates/dashboard/user_dashboard.html:21 |  | ||||||
| msgid "Actions" | msgid "Actions" | ||||||
| msgstr "Aktionen" | msgstr "Aktionen" | ||||||
| 
 | 
 | ||||||
| #: dashboard/templates/dashboard/user_dashboard.html:28 | #: dashboard/templates/dashboard/user_dashboard.html:26 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Show details for %(packagename)s" | msgid "Show details for %(packagename)s" | ||||||
| msgstr "Details für %(packagename)s anzeigen" | msgstr "Details für %(packagename)s anzeigen" | ||||||
| 
 | 
 | ||||||
| #: dashboard/templates/dashboard/user_dashboard.html:34 | #: dashboard/templates/dashboard/user_dashboard.html:38 | ||||||
| #, python-format |  | ||||||
| msgid "" |  | ||||||
| "The reserved disk space for your hosting package is %(diskspace)s bytes." |  | ||||||
| msgstr "" |  | ||||||
| "Der für Ihr Hostingpaket reservierte Speicherplatz sind %(diskspace)s Bytes." |  | ||||||
| 
 |  | ||||||
| #: dashboard/templates/dashboard/user_dashboard.html:40 |  | ||||||
| #, python-format |  | ||||||
| msgid "used %(num)s of %(total)s" |  | ||||||
| msgstr "%(num)s von %(total)s genutzt" |  | ||||||
| 
 |  | ||||||
| #: dashboard/templates/dashboard/user_dashboard.html:55 |  | ||||||
| msgid "You have no hosting packages yet." | msgid "You have no hosting packages yet." | ||||||
| msgstr "Sie haben noch keine Hostingpakete." | msgstr "Sie haben noch keine Hostingpakete." | ||||||
| 
 | 
 | ||||||
| #: dashboard/templates/dashboard/user_dashboard.html:56 | #: dashboard/templates/dashboard/user_dashboard.html:39 | ||||||
| msgid "This user has no hosting packages assigned yet." | msgid "This user has no hosting packages assigned yet." | ||||||
| msgstr "Diesem Benutzer sind noch keine Hostingpakete zugewiesen." | msgstr "Diesem Benutzer sind noch keine Hostingpakete zugewiesen." | ||||||
| 
 | 
 | ||||||
| #: dashboard/templates/dashboard/user_dashboard.html:60 | #: dashboard/templates/dashboard/user_dashboard.html:43 | ||||||
| msgid "Add hosting package" | msgid "Add hosting package" | ||||||
| msgstr "Hostingpaket anlegen" | msgstr "Hostingpaket anlegen" | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| # import celery_app to initialize it | # import celery_app to initialize it | ||||||
| from gnuviechadmin.celery import app as celery_app  # NOQA | from gnuviechadmin.celery import app as celery_app  # NOQA | ||||||
| 
 | 
 | ||||||
| __version__ = "0.13.0" | __version__ = "0.14.0" | ||||||
|  |  | ||||||
|  | @ -12,6 +12,7 @@ from .models import ( | ||||||
|     CustomerHostingPackage, |     CustomerHostingPackage, | ||||||
|     CustomerHostingPackageDomain, |     CustomerHostingPackageDomain, | ||||||
|     CustomerMailboxOption, |     CustomerMailboxOption, | ||||||
|  |     CustomerPackageDiskUsage, | ||||||
|     CustomerUserDatabaseOption, |     CustomerUserDatabaseOption, | ||||||
|     DiskSpaceOption, |     DiskSpaceOption, | ||||||
|     HostingPackageTemplate, |     HostingPackageTemplate, | ||||||
|  | @ -95,6 +96,18 @@ class CustomerHostingPackageDomainInline(admin.TabularInline): | ||||||
|     extra = 0 |     extra = 0 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | class CustomerPackageDiskUsageInline(admin.TabularInline): | ||||||
|  |     model = CustomerPackageDiskUsage | ||||||
|  |     ordering = ["-used_kb", "source", "item"] | ||||||
|  |     fields = ["source", "item", "used_kb"] | ||||||
|  |     readonly_fields = ["source", "item", "used_kb"] | ||||||
|  |     extra = 0 | ||||||
|  |     can_delete = False | ||||||
|  | 
 | ||||||
|  |     def has_add_permission(self, request, obj): | ||||||
|  |         return False | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| class CustomerHostingPackageAdmin(admin.ModelAdmin): | class CustomerHostingPackageAdmin(admin.ModelAdmin): | ||||||
|     """ |     """ | ||||||
|     This class implements the admin interface for |     This class implements the admin interface for | ||||||
|  | @ -110,6 +123,7 @@ class CustomerHostingPackageAdmin(admin.ModelAdmin): | ||||||
|         CustomerMailboxOptionInline, |         CustomerMailboxOptionInline, | ||||||
|         CustomerUserDatabaseOptionInline, |         CustomerUserDatabaseOptionInline, | ||||||
|         CustomerHostingPackageDomainInline, |         CustomerHostingPackageDomainInline, | ||||||
|  |         CustomerPackageDiskUsageInline, | ||||||
|     ] |     ] | ||||||
|     list_display = ["name", "customer", "osuser"] |     list_display = ["name", "customer", "osuser"] | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -7,8 +7,8 @@ msgid "" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Project-Id-Version: gnuviechadmin hostingpackages\n" | "Project-Id-Version: gnuviechadmin hostingpackages\n" | ||||||
| "Report-Msgid-Bugs-To: \n" | "Report-Msgid-Bugs-To: \n" | ||||||
| "POT-Creation-Date: 2023-04-22 13:14+0200\n" | "POT-Creation-Date: 2023-07-22 20:06+0200\n" | ||||||
| "PO-Revision-Date: 2023-04-22 13:15+0200\n" | "PO-Revision-Date: 2023-07-22 20:06+0200\n" | ||||||
| "Last-Translator: Jan Dittberner <jan@dittberner.info>\n" | "Last-Translator: Jan Dittberner <jan@dittberner.info>\n" | ||||||
| "Language-Team: Jan Dittberner <jan@dittberner.info>\n" | "Language-Team: Jan Dittberner <jan@dittberner.info>\n" | ||||||
| "Language: de\n" | "Language: de\n" | ||||||
|  | @ -39,177 +39,206 @@ msgstr "Postfachoption hinzufügen" | ||||||
| msgid "Add database option" | msgid "Add database option" | ||||||
| msgstr "Datenbankoption hinzufügen" | msgstr "Datenbankoption hinzufügen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:21 | #: hostingpackages/models.py:22 | ||||||
| msgid "MiB" | msgid "MiB" | ||||||
| msgstr "MiB" | msgstr "MiB" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:21 | #: hostingpackages/models.py:22 | ||||||
| msgid "GiB" | msgid "GiB" | ||||||
| msgstr "GiB" | msgstr "GiB" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:21 | #: hostingpackages/models.py:22 | ||||||
| msgid "TiB" | msgid "TiB" | ||||||
| msgstr "TiB" | msgstr "TiB" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:27 | #: hostingpackages/models.py:28 | ||||||
| msgid "description" | msgid "description" | ||||||
| msgstr "Beschreibung" | msgstr "Beschreibung" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:28 | #: hostingpackages/models.py:29 | ||||||
| msgid "mailbox count" | msgid "mailbox count" | ||||||
| msgstr "Anzahl Postfächer" | msgstr "Anzahl Postfächer" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:30 hostingpackages/models.py:59 | #: hostingpackages/models.py:31 hostingpackages/models.py:60 | ||||||
| msgid "disk space" | msgid "disk space" | ||||||
| msgstr "Speicherplatz" | msgstr "Speicherplatz" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:30 | #: hostingpackages/models.py:31 | ||||||
| msgid "disk space for the hosting package" | msgid "disk space for the hosting package" | ||||||
| msgstr "Speicherplatz für das Hostingpaket" | msgstr "Speicherplatz für das Hostingpaket" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:33 hostingpackages/models.py:61 | #: hostingpackages/models.py:34 hostingpackages/models.py:62 | ||||||
| msgid "unit of disk space" | msgid "unit of disk space" | ||||||
| msgstr "Maßeinheit für den Speicherplatz" | msgstr "Maßeinheit für den Speicherplatz" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:44 hostingpackages/models.py:192 | #: hostingpackages/models.py:45 hostingpackages/models.py:193 | ||||||
| msgid "name" | msgid "name" | ||||||
| msgstr "Name" | msgstr "Name" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:47 | #: hostingpackages/models.py:48 | ||||||
| msgid "Hosting package" | msgid "Hosting package" | ||||||
| msgstr "Hostingpaket" | msgstr "Hostingpaket" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:48 | #: hostingpackages/models.py:49 | ||||||
| msgid "Hosting packages" | msgid "Hosting packages" | ||||||
| msgstr "Hostingpakete" | msgstr "Hostingpakete" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:67 | #: hostingpackages/models.py:68 | ||||||
| msgid "Disk space option" | msgid "Disk space option" | ||||||
| msgstr "Speicherplatzoption" | msgstr "Speicherplatzoption" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:68 | #: hostingpackages/models.py:69 | ||||||
| msgid "Disk space options" | msgid "Disk space options" | ||||||
| msgstr "Speicherplatzoptionen" | msgstr "Speicherplatzoptionen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:71 | #: hostingpackages/models.py:72 | ||||||
| #, python-brace-format | #, python-brace-format | ||||||
| msgid "Additional disk space {space} {unit}" | msgid "Additional disk space {space} {unit}" | ||||||
| msgstr "Zusätzlicher Speicherplatz {space} {unit}" | msgstr "Zusätzlicher Speicherplatz {space} {unit}" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:88 | #: hostingpackages/models.py:89 | ||||||
| msgid "number of databases" | msgid "number of databases" | ||||||
| msgstr "Anzahl von Datenbanken" | msgstr "Anzahl von Datenbanken" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:89 | #: hostingpackages/models.py:90 | ||||||
| msgid "database type" | msgid "database type" | ||||||
| msgstr "Datenbanktyp" | msgstr "Datenbanktyp" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:94 | #: hostingpackages/models.py:95 | ||||||
| msgid "Database option" | msgid "Database option" | ||||||
| msgstr "Datenbankoption" | msgstr "Datenbankoption" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:95 | #: hostingpackages/models.py:96 | ||||||
| msgid "Database options" | msgid "Database options" | ||||||
| msgstr "Datenbankoptionen" | msgstr "Datenbankoptionen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:99 | #: hostingpackages/models.py:100 | ||||||
| #, python-brace-format | #, python-brace-format | ||||||
| msgid "{type} database" | msgid "{type} database" | ||||||
| msgid_plural "{count} {type} databases" | msgid_plural "{count} {type} databases" | ||||||
| msgstr[0] "{type}-Datenbank" | msgstr[0] "{type}-Datenbank" | ||||||
| msgstr[1] "{count} {type}-Datenbanken" | msgstr[1] "{count} {type}-Datenbanken" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:120 | #: hostingpackages/models.py:121 | ||||||
| msgid "number of mailboxes" | msgid "number of mailboxes" | ||||||
| msgstr "Anzahl von Postfächern" | msgstr "Anzahl von Postfächern" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:125 | #: hostingpackages/models.py:126 | ||||||
| msgid "Mailbox option" | msgid "Mailbox option" | ||||||
| msgstr "Postfachoption" | msgstr "Postfachoption" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:126 | #: hostingpackages/models.py:127 | ||||||
| msgid "Mailbox options" | msgid "Mailbox options" | ||||||
| msgstr "Postfachoptionen" | msgstr "Postfachoptionen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:130 | #: hostingpackages/models.py:131 | ||||||
| #, python-brace-format | #, python-brace-format | ||||||
| msgid "{count} additional mailbox" | msgid "{count} additional mailbox" | ||||||
| msgid_plural "{count} additional mailboxes" | msgid_plural "{count} additional mailboxes" | ||||||
| msgstr[0] "{count} zusätzliches Postfach" | msgstr[0] "{count} zusätzliches Postfach" | ||||||
| msgstr[1] "{count} zusätzliche Postfächer" | msgstr[1] "{count} zusätzliche Postfächer" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:182 | #: hostingpackages/models.py:183 | ||||||
| msgid "customer" | msgid "customer" | ||||||
| msgstr "Kunde" | msgstr "Kunde" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:186 | #: hostingpackages/models.py:187 | ||||||
| msgid "hosting package template" | msgid "hosting package template" | ||||||
| msgstr "Hostingpaketvorlage" | msgstr "Hostingpaketvorlage" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:188 | #: hostingpackages/models.py:189 | ||||||
| msgid "The hosting package template that this hosting package is based on" | msgid "The hosting package template that this hosting package is based on" | ||||||
| msgstr "Die Hostingpaketvorlage, auf der dieses Hostingpaket aufgebaut ist" | msgstr "Die Hostingpaketvorlage, auf der dieses Hostingpaket aufgebaut ist" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:195 | #: hostingpackages/models.py:196 | ||||||
| msgid "Operating system user" | msgid "Operating system user" | ||||||
| msgstr "Betriebssystemnutzer" | msgstr "Betriebssystemnutzer" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:205 | #: hostingpackages/models.py:206 | ||||||
| msgid "customer hosting package" | msgid "customer hosting package" | ||||||
| msgstr "Kundenhostingpaket" | msgstr "Kundenhostingpaket" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:206 | #: hostingpackages/models.py:207 | ||||||
| msgid "customer hosting packages" | msgid "customer hosting packages" | ||||||
| msgstr "Kundenhostingpakete" | msgstr "Kundenhostingpakete" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:209 | #: hostingpackages/models.py:210 | ||||||
| #, python-brace-format | #, python-brace-format | ||||||
| msgid "{name} for {customer}" | msgid "{name} for {customer}" | ||||||
| msgstr "{name} für {customer}" | msgstr "{name} für {customer}" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:388 hostingpackages/models.py:415 | #: hostingpackages/models.py:419 hostingpackages/models.py:446 | ||||||
|  | #: hostingpackages/models.py:511 | ||||||
| msgid "hosting package" | msgid "hosting package" | ||||||
| msgstr "Hostingpaket" | msgstr "Hostingpaket" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:393 | #: hostingpackages/models.py:424 | ||||||
| msgid "hosting domain" | msgid "hosting domain" | ||||||
| msgstr "Hostingdomain" | msgstr "Hostingdomain" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:420 | #: hostingpackages/models.py:451 | ||||||
| msgid "customer hosting option" | msgid "customer hosting option" | ||||||
| msgstr "kundenspezifische Hostingoption" | msgstr "kundenspezifische Hostingoption" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:421 | #: hostingpackages/models.py:452 | ||||||
| msgid "customer hosting options" | msgid "customer hosting options" | ||||||
| msgstr "kundenspezifische Hostingoptionen" | msgstr "kundenspezifische Hostingoptionen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:433 | #: hostingpackages/models.py:464 | ||||||
| msgid "disk space option template" | msgid "disk space option template" | ||||||
| msgstr "Speicherplatzoptionsvorlage" | msgstr "Speicherplatzoptionsvorlage" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:435 | #: hostingpackages/models.py:466 | ||||||
| msgid "The disk space option template that this disk space option is based on" | msgid "The disk space option template that this disk space option is based on" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Die Speicherplatzoptionsvorlage auf der diese Speicherplatzoption aufgebaut " | "Die Speicherplatzoptionsvorlage auf der diese Speicherplatzoption aufgebaut " | ||||||
| "ist" | "ist" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:450 | #: hostingpackages/models.py:481 | ||||||
| msgid "user database option template" | msgid "user database option template" | ||||||
| msgstr "Nutzerdatenbankoptionsvorlage" | msgstr "Nutzerdatenbankoptionsvorlage" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:452 | #: hostingpackages/models.py:483 | ||||||
| msgid "The user database option template that this database option is based on" | msgid "The user database option template that this database option is based on" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Die Nutzerdatenbankoptionsvorlage auf der diese Datenbankoption aufgebaut ist" | "Die Nutzerdatenbankoptionsvorlage auf der diese Datenbankoption aufgebaut ist" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:467 | #: hostingpackages/models.py:498 | ||||||
| msgid "mailbox option template" | msgid "mailbox option template" | ||||||
| msgstr "Postfachoptionsvorlage" | msgstr "Postfachoptionsvorlage" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/models.py:468 | #: hostingpackages/models.py:499 | ||||||
| msgid "The mailbox option template that this mailbox option is based on" | msgid "The mailbox option template that this mailbox option is based on" | ||||||
| msgstr "Die Postfachoptionsvorlage auf der diese Postfachoption aufgebaut ist" | msgstr "Die Postfachoptionsvorlage auf der diese Postfachoption aufgebaut ist" | ||||||
| 
 | 
 | ||||||
|  | #: hostingpackages/models.py:512 | ||||||
|  | msgid "The hosting package" | ||||||
|  | msgstr "Das Hostingpaket" | ||||||
|  | 
 | ||||||
|  | #: hostingpackages/models.py:516 | ||||||
|  | msgid "data source" | ||||||
|  | msgstr "Datenquelle" | ||||||
|  | 
 | ||||||
|  | #: hostingpackages/models.py:517 | ||||||
|  | msgid "disk" | ||||||
|  | msgstr "Festplatte" | ||||||
|  | 
 | ||||||
|  | #: hostingpackages/models.py:517 | ||||||
|  | msgid "mysql" | ||||||
|  | msgstr "MySQL" | ||||||
|  | 
 | ||||||
|  | #: hostingpackages/models.py:517 | ||||||
|  | msgid "pgsql" | ||||||
|  | msgstr "PostgreSQL" | ||||||
|  | 
 | ||||||
|  | #: hostingpackages/models.py:519 | ||||||
|  | msgid "data item" | ||||||
|  | msgstr "Dateneinheit" | ||||||
|  | 
 | ||||||
|  | #: hostingpackages/models.py:521 | ||||||
|  | msgid "space used in KiB" | ||||||
|  | msgstr "genutzter Platz in KiB" | ||||||
|  | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/add_hosting_option.html:4 | #: hostingpackages/templates/hostingpackages/add_hosting_option.html:4 | ||||||
| #: hostingpackages/templates/hostingpackages/add_hosting_option.html:7 | #: hostingpackages/templates/hostingpackages/add_hosting_option.html:7 | ||||||
| #, python-format | #, python-format | ||||||
|  | @ -224,7 +253,6 @@ msgstr "Alle Hostingpakete" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_admin_list.html:11 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_admin_list.html:11 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:36 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:36 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_list.html:26 |  | ||||||
| msgid "Name" | msgid "Name" | ||||||
| msgstr "Name" | msgstr "Name" | ||||||
| 
 | 
 | ||||||
|  | @ -237,16 +265,46 @@ msgid "OS User" | ||||||
| msgstr "OS-Nutzer" | msgstr "OS-Nutzer" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_admin_list.html:14 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_admin_list.html:14 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_list.html:27 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:40 | ||||||
|  | #: hostingpackages/views.py:183 | ||||||
|  | msgid "Disk space" | ||||||
|  | msgstr "Speicherplatz" | ||||||
|  | 
 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_admin_list.html:15 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:54 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:48 | ||||||
|  | #: hostingpackages/views.py:190 | ||||||
|  | msgid "Mailboxes" | ||||||
|  | msgstr "Postfächer" | ||||||
|  | 
 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_admin_list.html:16 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:239 | ||||||
|  | #: hostingpackages/views.py:197 | ||||||
|  | msgid "Databases" | ||||||
|  | msgstr "Datenbanken" | ||||||
|  | 
 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_admin_list.html:17 | ||||||
| msgid "Setup date" | msgid "Setup date" | ||||||
| msgstr "Einrichtungsdatum" | msgstr "Einrichtungsdatum" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_admin_list.html:31 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_admin_list.html:28 | ||||||
|  | #, python-format | ||||||
|  | msgid "" | ||||||
|  | "The reserved disk space for your hosting package is %(diskspace)s bytes." | ||||||
|  | msgstr "" | ||||||
|  | "Der für Ihr Hostingpaket reservierte Speicherplatz beträgt %(diskspace)s " | ||||||
|  | "Bytes." | ||||||
|  | 
 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_admin_list.html:34 | ||||||
|  | #, python-format | ||||||
|  | msgid "used %(num)s of %(total)s" | ||||||
|  | msgstr "used %(num)s of %(total)s" | ||||||
|  | 
 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_admin_list.html:48 | ||||||
| msgid "No hosting packages have been setup yet." | msgid "No hosting packages have been setup yet." | ||||||
| msgstr "Es wurden noch keine Hostingpakete eingerichtet." | msgstr "Es wurden noch keine Hostingpakete eingerichtet." | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_admin_list.html:34 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_admin_list.html:51 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_list.html:46 |  | ||||||
| msgid "Add hosting package" | msgid "Add hosting package" | ||||||
| msgstr "Hostingpaket anlegen" | msgstr "Hostingpaket anlegen" | ||||||
| 
 | 
 | ||||||
|  | @ -287,38 +345,45 @@ msgstr "Informationen zum Hostingpaket ändern" | ||||||
| msgid "Description" | msgid "Description" | ||||||
| msgstr "Beschreibung" | msgstr "Beschreibung" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:40 |  | ||||||
| #: hostingpackages/views.py:199 |  | ||||||
| msgid "Disk space" |  | ||||||
| msgstr "Speicherplatz" |  | ||||||
| 
 |  | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:43 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:43 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "The reserved disk space for your hosting package is %(diskspace)s bytes" | msgid "" | ||||||
|  | "You use %(used_space)s of the reserved disk space of %(disk_space)s for your " | ||||||
|  | "hosting package" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Der für Ihr Hostingpaket reservierte Speicherplatz beträgt %(diskspace)s " | "Sie nutzen aktuell %(used_space)s des reservierten Speicherplatzes von " | ||||||
| "Bytes" | "%(disk_space)s für Ihr Hostingpaket" | ||||||
|  | 
 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:45 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:27 | ||||||
|  | #, python-format | ||||||
|  | msgid "%(used_space)s of %(disk_space)s (%(space_level_percent)s%%)" | ||||||
|  | msgstr "%(used_space)s von %(disk_space)s (%(space_level_percent)s%%)" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:47 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:47 | ||||||
|  | msgid "Disk usage details" | ||||||
|  | msgstr "Details zur Speicherplatznutzung" | ||||||
|  | 
 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:47 | ||||||
|  | msgid "Details" | ||||||
|  | msgstr "Details" | ||||||
|  | 
 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:49 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:31 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "" | msgid "" | ||||||
| "The package contributes %(humanbytes)s (%(packagespace)s bytes) the " | "The package contributes %(package_space)s the difference comes from disk " | ||||||
| "difference comes from disk space options" | "space options" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Das Paket trägt %(humanbytes)s (%(packagespace)s Bytes) zur Gesamtgröße bei, " | "Das Paket trägt %(package_space)s zur Gesamtgröße bei, der Unterschied " | ||||||
| "der Unterschied ergibt sich aus Speicherplatzoptionen" | "ergibt sich aus Speicherplatzoptionen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:52 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:56 | ||||||
| #: hostingpackages/views.py:206 |  | ||||||
| msgid "Mailboxes" |  | ||||||
| msgstr "Postfächer" |  | ||||||
| 
 |  | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:54 |  | ||||||
| #, python-format | #, python-format | ||||||
| msgid "%(num)s of %(total)s in use" | msgid "%(num)s of %(total)s in use" | ||||||
| msgstr "%(num)s von %(total)s genutzt" | msgstr "%(num)s von %(total)s genutzt" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:57 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:59 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "" | msgid "" | ||||||
| "The package provides %(mailboxcount)s mailboxes the difference comes from " | "The package provides %(mailboxcount)s mailboxes the difference comes from " | ||||||
|  | @ -327,234 +392,272 @@ msgstr "" | ||||||
| "Das Paket bietet %(mailboxcount)s Postfächer, der Unterschied ergibt sich " | "Das Paket bietet %(mailboxcount)s Postfächer, der Unterschied ergibt sich " | ||||||
| "durch die Postfachoptionen." | "durch die Postfachoptionen." | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:59 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:61 | ||||||
| msgid "SFTP username" | msgid "SFTP username" | ||||||
| msgstr "SFTP-Benutzername" | msgstr "SFTP-Benutzername" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:60 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:62 | ||||||
| msgid "SSH/SFTP username" | msgid "SSH/SFTP username" | ||||||
| msgstr "SSH/SFTP-Benutzername" | msgstr "SSH/SFTP-Benutzername" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:63 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:65 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "There is an SSH public key set for this user." | msgid "There is an SSH public key set for this user." | ||||||
| msgid_plural "There are %(counter)s SSH public keys set for this user." | msgid_plural "There are %(counter)s SSH public keys set for this user." | ||||||
| msgstr[0] "Es wurde ein SSH-Schlüssel für diesen Nutzer hinterlegt." | msgstr[0] "Es wurde ein SSH-Schlüssel für diesen Nutzer hinterlegt." | ||||||
| msgstr[1] "Es wurden %(counter)s SSH-Schlüssel für diesen Nutzer hinterlegt." | msgstr[1] "Es wurden %(counter)s SSH-Schlüssel für diesen Nutzer hinterlegt." | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:65 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:67 | ||||||
| msgid "Upload server" | msgid "Upload server" | ||||||
| msgstr "Uploadserver" | msgstr "Uploadserver" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:73 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:75 | ||||||
| msgid "Hosting Package Options" | msgid "Hosting Package Options" | ||||||
| msgstr "Hostingpaketoptionen" | msgstr "Hostingpaketoptionen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:81 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:83 | ||||||
| msgid "No options booked" | msgid "No options booked" | ||||||
| msgstr "Keine Optionen gebucht" | msgstr "Keine Optionen gebucht" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:87 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:89 | ||||||
| msgid "Add another hosting option" | msgid "Add another hosting option" | ||||||
| msgstr "Eine weitere Hostingoption hinzufügen" | msgstr "Eine weitere Hostingoption hinzufügen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:87 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:89 | ||||||
| msgid "Add option" | msgid "Add option" | ||||||
| msgstr "Option hinzufügen" | msgstr "Option hinzufügen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:94 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:96 | ||||||
| msgid "Hosting Package Actions" | msgid "Hosting Package Actions" | ||||||
| msgstr "Aktionen zum Hostingpaket" | msgstr "Aktionen zum Hostingpaket" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:98 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:100 | ||||||
| msgid "Edit Hosting Package Description" | msgid "Edit Hosting Package Description" | ||||||
| msgstr "Beschreibung des Hostingpakets bearbeiten" | msgstr "Beschreibung des Hostingpakets bearbeiten" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:98 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:100 | ||||||
| msgid "Edit description" | msgid "Edit description" | ||||||
| msgstr "Beschreibung bearbeiten" | msgstr "Beschreibung bearbeiten" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:101 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:103 | ||||||
| msgid "Set SFTP password" | msgid "Set SFTP password" | ||||||
| msgstr "SFTP-Passwort setzen" | msgstr "SFTP-Passwort setzen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:102 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:104 | ||||||
| msgid "Set SSH/SFTP password" | msgid "Set SSH/SFTP password" | ||||||
| msgstr "SSH/SFTP-Passwort setzen" | msgstr "SSH/SFTP-Passwort setzen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:105 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:107 | ||||||
| msgid "Add an SSH public key that can be used as an alternative for password" | msgid "Add an SSH public key that can be used as an alternative for password" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Einen SSH-Schlüssel, der als Alternative zum Passwort genutzt werden kann, " | "Einen SSH-Schlüssel, der als Alternative zum Passwort genutzt werden kann, " | ||||||
| "hinzufügen" | "hinzufügen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:107 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:109 | ||||||
| msgid "Add SSH public key" | msgid "Add SSH public key" | ||||||
| msgstr "SSH-Schlüssel hinzufügen" | msgstr "SSH-Schlüssel hinzufügen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:116 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:118 | ||||||
| msgid "Domains" | msgid "Domains" | ||||||
| msgstr "Domains" | msgstr "Domains" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:121 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:123 | ||||||
| msgid "Domain name" | msgid "Domain name" | ||||||
| msgstr "Domainname" | msgstr "Domainname" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:122 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:124 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:201 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:203 | ||||||
| msgid "Mail addresses" | msgid "Mail addresses" | ||||||
| msgstr "E-Mailadressen" | msgstr "E-Mailadressen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:123 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:125 | ||||||
| msgid "Websites" | msgid "Websites" | ||||||
| msgstr "Webauftritte" | msgstr "Webauftritte" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:124 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:126 | ||||||
| msgid "Domain actions" | msgid "Domain actions" | ||||||
| msgstr "Domainaktionen" | msgstr "Domainaktionen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:125 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:127 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:204 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:206 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:247 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:249 | ||||||
| msgid "Actions" | msgid "Actions" | ||||||
| msgstr "Aktionen" | msgstr "Aktionen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:137 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:139 | ||||||
| msgid "Edit mail address targets" | msgid "Edit mail address targets" | ||||||
| msgstr "E-Mailadressziele bearbeiten" | msgstr "E-Mailadressziele bearbeiten" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:139 |  | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:141 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:141 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:143 | ||||||
| msgid "Delete mail address" | msgid "Delete mail address" | ||||||
| msgstr "E-Mailadresse löschen" | msgstr "E-Mailadresse löschen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:146 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:148 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:161 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:163 | ||||||
| msgid "None" | msgid "None" | ||||||
| msgstr "Keine" | msgstr "Keine" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:154 |  | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:156 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:156 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:158 | ||||||
| msgid "Delete website" | msgid "Delete website" | ||||||
| msgstr "Webauftritt löschen" | msgstr "Webauftritt löschen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:167 |  | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:169 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:169 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:171 | ||||||
| msgid "Add mail address" | msgid "Add mail address" | ||||||
| msgstr "E-Mailadresse hinzufügen" | msgstr "E-Mailadresse hinzufügen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:174 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:176 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:175 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:177 | ||||||
| msgid "Add website" | msgid "Add website" | ||||||
| msgstr "Webauftritt anlegen" | msgstr "Webauftritt anlegen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:183 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:185 | ||||||
| msgid "There are no domains assigned to this hosting package yet." | msgid "There are no domains assigned to this hosting package yet." | ||||||
| msgstr "Diesem Paket sind noch keine Domains zugeordnet." | msgstr "Diesem Paket sind noch keine Domains zugeordnet." | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:187 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:189 | ||||||
| msgid "Add domain" | msgid "Add domain" | ||||||
| msgstr "Domain hinzufügen" | msgstr "Domain hinzufügen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:195 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:197 | ||||||
| msgid "E-Mail-Accounts" | msgid "E-Mail-Accounts" | ||||||
| msgstr "E-Mail-Konten" | msgstr "E-Mail-Konten" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:200 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:202 | ||||||
| msgid "Mailbox" | msgid "Mailbox" | ||||||
| msgstr "Postfach" | msgstr "Postfach" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:202 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:204 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:214 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:216 | ||||||
| msgid "Active" | msgid "Active" | ||||||
| msgstr "Aktiv" | msgstr "Aktiv" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:203 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:205 | ||||||
| msgid "Mailbox actions" | msgid "Mailbox actions" | ||||||
| msgstr "Postfachaktionen" | msgstr "Postfachaktionen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:215 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:217 | ||||||
| msgid "inactive" | msgid "inactive" | ||||||
| msgstr "inaktiv" | msgstr "inaktiv" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:218 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:220 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:219 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:221 | ||||||
| msgid "Set mailbox password" | msgid "Set mailbox password" | ||||||
| msgstr "Postfachpasswort setzen" | msgstr "Postfachpasswort setzen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:225 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:227 | ||||||
| msgid "There are no mailboxes assigned to this hosting package yet." | msgid "There are no mailboxes assigned to this hosting package yet." | ||||||
| msgstr "Diesem Hostingpaket sind noch keine Postfächer zugeordnet." | msgstr "Diesem Hostingpaket sind noch keine Postfächer zugeordnet." | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:230 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:232 | ||||||
| msgid "Add mailbox" | msgid "Add mailbox" | ||||||
| msgstr "Postfach hinzufügen" | msgstr "Postfach hinzufügen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:237 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:244 | ||||||
| #: hostingpackages/views.py:213 |  | ||||||
| msgid "Databases" |  | ||||||
| msgstr "Datenbanken" |  | ||||||
| 
 |  | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:242 |  | ||||||
| msgid "Database name" | msgid "Database name" | ||||||
| msgstr "Datenbankname" | msgstr "Datenbankname" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:243 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:245 | ||||||
| msgid "Database user" | msgid "Database user" | ||||||
| msgstr "Datenbanknutzer" | msgstr "Datenbanknutzer" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:244 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:246 | ||||||
| msgid "Database type" | msgid "Database type" | ||||||
| msgstr "Datenbanktyp" | msgstr "Datenbanktyp" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:245 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:247 | ||||||
| msgid "Type" | msgid "Type" | ||||||
| msgstr "Typ" | msgstr "Typ" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:246 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:248 | ||||||
| msgid "Database actions" | msgid "Database actions" | ||||||
| msgstr "Datenbankaktionen" | msgstr "Datenbankaktionen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:258 |  | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:260 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:260 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:262 | ||||||
| msgid "Set database user password" | msgid "Set database user password" | ||||||
| msgstr "Datenbanknutzerpasswort setzen" | msgstr "Datenbanknutzerpasswort setzen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:262 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:264 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:263 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:265 | ||||||
| msgid "Delete database" | msgid "Delete database" | ||||||
| msgstr "Datenbank löschen" | msgstr "Datenbank löschen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:270 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:272 | ||||||
| msgid "There are no databases assigned to this hosting package yet." | msgid "There are no databases assigned to this hosting package yet." | ||||||
| msgstr "Diesem Hostingpaket sind noch keine Datenbanken zugeordnet." | msgstr "Diesem Hostingpaket sind noch keine Datenbanken zugeordnet." | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:275 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:277 | ||||||
| msgid "Add database" | msgid "Add database" | ||||||
| msgstr "Datenbank hinzufügen" | msgstr "Datenbank hinzufügen" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_list.html:5 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:6 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_list.html:14 |  | ||||||
| msgid "Your hosting packages" |  | ||||||
| msgstr "Ihre Hostingpakete" |  | ||||||
| 
 |  | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_list.html:7 |  | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Hosting Packages of %(customer)s" | msgid "Disk usage of your Hosting Package %(package)s" | ||||||
| msgstr "Hostingpakete des Kunden %(customer)s" | msgstr "Speicherplatznutzung Ihres Hostingpakets %(package)s" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_list.html:16 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:10 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Hosting Packages <small>of %(customer)s</small>" | msgid "Disk usage of Hosting Package %(package)s of %(full_name)s" | ||||||
| msgstr "Hostingpakete <small>des Kunden %(customer)s</small>" | msgstr "Speicherplatznutzung des Hostingpakets %(package)s von %(full_name)s" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_list.html:41 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:16 | ||||||
| msgid "You have no hosting packages setup yet." | #, python-format | ||||||
| msgstr "Es wurden noch keine Hostingpakete für Sie eingerichtet." | msgid "" | ||||||
|  | "Disk usage of Hosting Package <a href=\"%(package_url)s\">%(package)s</a>" | ||||||
|  | msgstr "" | ||||||
|  | "Speicherplatznutzung des Hostingpakets <a " | ||||||
|  | "href=\"%(package_url)s\">%(package)s</a>" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_list.html:42 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:22 | ||||||
| msgid "There are no hosting packages setup for this customer yet." | #, python-format | ||||||
| msgstr "Es wurden noch keine Hostingpakete für diesen Kunden eingerichtet." | msgid "" | ||||||
|  | "You use %(used_space)s of the reserved disk space of %(disk_space)s for your " | ||||||
|  | "hosting package." | ||||||
|  | msgstr "" | ||||||
|  | "Sie nutzen %(used_space)s des reservierten Speicherplatzes von " | ||||||
|  | "%(disk_space)s für Ihr Hostingpaket." | ||||||
|  | 
 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:35 | ||||||
|  | msgid "Breakdown by usage" | ||||||
|  | msgstr "Aufgliederung nach Nutzung" | ||||||
|  | 
 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:37 | ||||||
|  | msgid "Regular file system usage" | ||||||
|  | msgstr "Reguläre Dateisystemnutzung" | ||||||
|  | 
 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:41 | ||||||
|  | msgid "Origin" | ||||||
|  | msgstr "Quelle" | ||||||
|  | 
 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:42 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:61 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:78 | ||||||
|  | msgid "Used space" | ||||||
|  | msgstr "Genutzter Speicherplatz" | ||||||
|  | 
 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:47 | ||||||
|  | msgid "Website data" | ||||||
|  | msgstr "Webseiten-Daten" | ||||||
|  | 
 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:48 | ||||||
|  | msgid "Other" | ||||||
|  | msgstr "Sonstiges" | ||||||
|  | 
 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:56 | ||||||
|  | msgid "MySQL/MariaDB database usage" | ||||||
|  | msgstr "MySQL/MariaDB-Datenbanknutzung" | ||||||
|  | 
 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:60 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:77 | ||||||
|  | msgid "Database" | ||||||
|  | msgstr "Datenbank" | ||||||
|  | 
 | ||||||
|  | #: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:73 | ||||||
|  | msgid "PostgreSQL database usage" | ||||||
|  | msgstr "PostgreSQL-Datenbanknutzung" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_option_choices.html:5 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_option_choices.html:5 | ||||||
| #: hostingpackages/templates/hostingpackages/customerhostingpackage_option_choices.html:8 | #: hostingpackages/templates/hostingpackages/customerhostingpackage_option_choices.html:8 | ||||||
|  | @ -565,12 +668,12 @@ msgstr "" | ||||||
| "Wählen Sie eine neue Option für das Hostingpaket %(package)s des Kunden " | "Wählen Sie eine neue Option für das Hostingpaket %(package)s des Kunden " | ||||||
| "%(full_name)s" | "%(full_name)s" | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/views.py:49 hostingpackages/views.py:83 | #: hostingpackages/views.py:62 hostingpackages/views.py:96 | ||||||
| #, python-brace-format | #, python-brace-format | ||||||
| msgid "Started setup of new hosting package {name}." | msgid "Started setup of new hosting package {name}." | ||||||
| msgstr "Einrichtung des Hostingpakets {name} wurde gestartet." | msgstr "Einrichtung des Hostingpakets {name} wurde gestartet." | ||||||
| 
 | 
 | ||||||
| #: hostingpackages/views.py:287 | #: hostingpackages/views.py:271 | ||||||
| #, python-brace-format | #, python-brace-format | ||||||
| msgid "Successfully added option {option} to hosting package {package}." | msgid "Successfully added option {option} to hosting package {package}." | ||||||
| msgstr "Option {option} erfolgreich zum Hostingpaket {package} hinzugefügt." | msgstr "Option {option} erfolgreich zum Hostingpaket {package} hinzugefügt." | ||||||
|  |  | ||||||
|  | @ -0,0 +1,79 @@ | ||||||
|  | # Generated by Django 4.2.3 on 2023-07-22 17:31 | ||||||
|  | 
 | ||||||
|  | import django.utils.timezone | ||||||
|  | import model_utils.fields | ||||||
|  | from django.db import migrations, models | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  |     replaces = [ | ||||||
|  |         ("hostingpackages", "0007_add_disk_usage_table"), | ||||||
|  |         ("hostingpackages", "0008_add_default_for_used_kb_change_uniqueness"), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ("hostingpackages", "0006_auto_20150125_1510"), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |         migrations.CreateModel( | ||||||
|  |             name="CustomerPackageDiskUsage", | ||||||
|  |             fields=[ | ||||||
|  |                 ( | ||||||
|  |                     "id", | ||||||
|  |                     models.AutoField( | ||||||
|  |                         auto_created=True, | ||||||
|  |                         primary_key=True, | ||||||
|  |                         serialize=False, | ||||||
|  |                         verbose_name="ID", | ||||||
|  |                     ), | ||||||
|  |                 ), | ||||||
|  |                 ( | ||||||
|  |                     "created", | ||||||
|  |                     model_utils.fields.AutoCreatedField( | ||||||
|  |                         default=django.utils.timezone.now, | ||||||
|  |                         editable=False, | ||||||
|  |                         verbose_name="created", | ||||||
|  |                     ), | ||||||
|  |                 ), | ||||||
|  |                 ( | ||||||
|  |                     "modified", | ||||||
|  |                     model_utils.fields.AutoLastModifiedField( | ||||||
|  |                         default=django.utils.timezone.now, | ||||||
|  |                         editable=False, | ||||||
|  |                         verbose_name="modified", | ||||||
|  |                     ), | ||||||
|  |                 ), | ||||||
|  |                 ( | ||||||
|  |                     "source", | ||||||
|  |                     models.CharField( | ||||||
|  |                         choices=[ | ||||||
|  |                             ("disk", "disk"), | ||||||
|  |                             ("mysql", "mysql"), | ||||||
|  |                             ("pgsql", "pgsql"), | ||||||
|  |                         ], | ||||||
|  |                         verbose_name="data source", | ||||||
|  |                     ), | ||||||
|  |                 ), | ||||||
|  |                 ("item", models.CharField(verbose_name="data item")), | ||||||
|  |                 ( | ||||||
|  |                     "used_kb", | ||||||
|  |                     models.PositiveBigIntegerField( | ||||||
|  |                         default=0, verbose_name="space used in KiB" | ||||||
|  |                     ), | ||||||
|  |                 ), | ||||||
|  |                 ( | ||||||
|  |                     "package", | ||||||
|  |                     models.ForeignKey( | ||||||
|  |                         help_text="The hosting package", | ||||||
|  |                         on_delete=django.db.models.deletion.CASCADE, | ||||||
|  |                         to="hostingpackages.customerhostingpackage", | ||||||
|  |                         verbose_name="hosting package", | ||||||
|  |                     ), | ||||||
|  |                 ), | ||||||
|  |             ], | ||||||
|  |             options={ | ||||||
|  |                 "unique_together": {("package", "source", "item")}, | ||||||
|  |             }, | ||||||
|  |         ), | ||||||
|  |     ] | ||||||
|  | @ -269,6 +269,31 @@ class CustomerHostingPackage(HostingPackageBase): | ||||||
|             return DISK_SPACE_FACTORS[unit][min_unit] * diskspace |             return DISK_SPACE_FACTORS[unit][min_unit] * diskspace | ||||||
|         return DISK_SPACE_FACTORS[min_unit][unit] * diskspace |         return DISK_SPACE_FACTORS[min_unit][unit] * diskspace | ||||||
| 
 | 
 | ||||||
|  |     disk_space = property(get_disk_space) | ||||||
|  | 
 | ||||||
|  |     def get_used_disk_space_sum(self, unit=None): | ||||||
|  |         """ | ||||||
|  |         Get the used disk space of this hosting package from submitted disk space statistics. | ||||||
|  | 
 | ||||||
|  |         :param unit: value from :py:data:`DISK_SPACE_UNITS` or :py:const:`None` | ||||||
|  |         :return: disk space in unit or bytes (if parameter unit is :py:const:`None`) | ||||||
|  |         :rtype: int | ||||||
|  | 
 | ||||||
|  |         """ | ||||||
|  |         sum = 0 | ||||||
|  |         for usage in self.customerpackagediskusage_set.all(): | ||||||
|  |             sum += usage.size_in_bytes | ||||||
|  |         if unit is None: | ||||||
|  |             return sum | ||||||
|  |         return DISK_SPACE_FACTORS[0][unit] * sum | ||||||
|  | 
 | ||||||
|  |     used_disk_space_sum = property(get_used_disk_space_sum) | ||||||
|  | 
 | ||||||
|  |     def get_space_level(self): | ||||||
|  |         return self.used_disk_space_sum / self.disk_space * 100.0 | ||||||
|  | 
 | ||||||
|  |     space_level = property(get_space_level) | ||||||
|  | 
 | ||||||
|     def get_package_space(self, unit=None): |     def get_package_space(self, unit=None): | ||||||
|         """ |         """ | ||||||
|         Get the total disk space reserved for this package without looking at |         Get the total disk space reserved for this package without looking at | ||||||
|  | @ -474,3 +499,34 @@ class CustomerMailboxOption(MailboxOptionBase, CustomerHostingPackageOption): | ||||||
|         help_text=_("The mailbox option template that this mailbox option is based on"), |         help_text=_("The mailbox option template that this mailbox option is based on"), | ||||||
|         on_delete=models.CASCADE, |         on_delete=models.CASCADE, | ||||||
|     ) |     ) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class CustomerPackageDiskUsage(TimeStampedModel): | ||||||
|  |     """ | ||||||
|  |     This class represents disk usage statistics for a customer hosting package. | ||||||
|  |     """ | ||||||
|  | 
 | ||||||
|  |     package = models.ForeignKey( | ||||||
|  |         CustomerHostingPackage, | ||||||
|  |         verbose_name=_("hosting package"), | ||||||
|  |         help_text=_("The hosting package"), | ||||||
|  |         on_delete=models.CASCADE, | ||||||
|  |     ) | ||||||
|  |     source = models.CharField( | ||||||
|  |         verbose_name=_("data source"), | ||||||
|  |         choices=(("disk", _("disk")), ("mysql", _("mysql")), ("pgsql", _("pgsql"))), | ||||||
|  |     ) | ||||||
|  |     item = models.CharField(verbose_name=_("data item")) | ||||||
|  |     used_kb = models.PositiveBigIntegerField( | ||||||
|  |         verbose_name=_("space used in KiB"), default=0 | ||||||
|  |     ) | ||||||
|  | 
 | ||||||
|  |     class Meta: | ||||||
|  |         unique_together = ("package", "source", "item") | ||||||
|  | 
 | ||||||
|  |     def __str__(self): | ||||||
|  |         return "%s %s = %d KiB" % (self.source, self.item, self.used_kb) | ||||||
|  | 
 | ||||||
|  |     @property | ||||||
|  |     def size_in_bytes(self): | ||||||
|  |         return self.used_kb * 1024 | ||||||
|  |  | ||||||
							
								
								
									
										7
									
								
								gnuviechadmin/hostingpackages/serializers.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								gnuviechadmin/hostingpackages/serializers.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,7 @@ | ||||||
|  | from rest_framework import serializers | ||||||
|  | 
 | ||||||
|  | from hostingpackages.models import CustomerPackageDiskUsage | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class DiskUsageSerializer(serializers.Serializer): | ||||||
|  |     user = serializers.CharField() | ||||||
|  | @ -38,14 +38,16 @@ | ||||||
|                         <dt>{% translate "Description" %}</dt> |                         <dt>{% translate "Description" %}</dt> | ||||||
|                         <dd>{{ hostingpackage.description|default:"-" }}</dd> |                         <dd>{{ hostingpackage.description|default:"-" }}</dd> | ||||||
|                         <dt>{% translate "Disk space" %}</dt> |                         <dt>{% translate "Disk space" %}</dt> | ||||||
|                         {% with diskspace=hostingpackage.get_disk_space packagespace=hostingpackage.get_package_space %} |                         {% with used_space=hostingpackage.get_used_disk_space_sum|filesizeformat disk_space=hostingpackage.get_disk_space|filesizeformat package_space=hostingpackage.get_package_space|filesizeformat space_level=hostingpackage.space_level %} | ||||||
|                             <dd> |                             <dd> | ||||||
|                                 <span title="{% blocktranslate trimmed %} |                                 <span title="{% blocktranslate trimmed %} | ||||||
|                                 The reserved disk space for your hosting package is {{ diskspace }} bytes |                                 You use {{ used_space }} of the reserved disk space of {{ disk_space }} for your hosting package | ||||||
| {% endblocktranslate %}">{{ diskspace|filesizeformat }}</span> | {% endblocktranslate %}" class="text-{% if space_level > 90.0 %}danger{% elif space_level > 80.0 %}warning{% else %}success{% endif %}">{% blocktranslate with space_level_percent=space_level|floatformat:1 trimmed%} | ||||||
|  |                                     {{ used_space }} of {{ disk_space }} ({{ space_level_percent }}%) | ||||||
|  | {% endblocktranslate %} <a title="{% translate "Disk usage details" %}" href="{% url "disk_usage_details" package=hostingpackage.id %}">{% translate "Details" %}</a></span> | ||||||
|                                 <i class="bi-info-circle" |                                 <i class="bi-info-circle" | ||||||
|                                    title="{% blocktranslate with humanbytes=packagespace|filesizeformat trimmed %} |                                    title="{% blocktranslate trimmed %} | ||||||
|                                       The package contributes {{ humanbytes }} ({{ packagespace }} bytes) the difference comes from disk space options |                                       The package contributes {{ package_space }} the difference comes from disk space options | ||||||
| {% endblocktranslate %}"></i> | {% endblocktranslate %}"></i> | ||||||
|                             </dd> |                             </dd> | ||||||
|                         {% endwith %} |                         {% endwith %} | ||||||
|  |  | ||||||
|  | @ -0,0 +1,91 @@ | ||||||
|  | {% extends "hostingpackages/base.html" %} | ||||||
|  | {% load i18n %} | ||||||
|  | 
 | ||||||
|  | {% block title %}{{ block.super }} - {% spaceless %} | ||||||
|  |     {% if user == customer %} | ||||||
|  |         {% blocktranslate with package=hostingpackage.name trimmed %} | ||||||
|  |             Disk usage of your Hosting Package {{ package }} | ||||||
|  |         {% endblocktranslate %} | ||||||
|  |     {% else %} | ||||||
|  |         {% blocktranslate with package=hostingpackage.name full_name=customer.get_full_name trimmed %} | ||||||
|  |             Disk usage of Hosting Package {{ package }} of {{ full_name }} | ||||||
|  |         {% endblocktranslate %} | ||||||
|  |     {% endif %} | ||||||
|  | {% endspaceless %}{% endblock title %} | ||||||
|  | 
 | ||||||
|  | {% block page_title %}{% blocktranslate with package=hostingpackage.name package_url=hostingpackage.get_absolute_url trimmed %} | ||||||
|  |     Disk usage of Hosting Package <a href="{{ package_url }}">{{ package }}</a> | ||||||
|  | {% endblocktranslate %}{% endblock page_title %} | ||||||
|  | 
 | ||||||
|  | {% block content %} | ||||||
|  |     {% with used_space=hostingpackage.get_used_disk_space_sum|filesizeformat disk_space=hostingpackage.get_disk_space|filesizeformat package_space=hostingpackage.get_package_space|filesizeformat space_level=hostingpackage.space_level %} | ||||||
|  |         <p>{% blocktranslate trimmed %} | ||||||
|  |             You use {{ used_space }} of the reserved disk space of {{ disk_space }} for your hosting package. | ||||||
|  |         {% endblocktranslate %}</p> | ||||||
|  |         <p class="lead"><span | ||||||
|  |                 class="text-{% if space_level > 90.0 %}danger{% elif space_level > 80.0 %}warning{% else %}success{% endif %}"> | ||||||
|  |             {% blocktranslate with space_level_percent=space_level|floatformat:1 trimmed %} | ||||||
|  |                 {{ used_space }} of {{ disk_space }} ({{ space_level_percent }}%) | ||||||
|  |             {% endblocktranslate %}</span> | ||||||
|  |             <i class="bi-info-circle" | ||||||
|  |                title="{% blocktranslate trimmed %} | ||||||
|  | The package contributes {{ package_space }} the difference comes from disk space options | ||||||
|  | {% endblocktranslate %}"></i> | ||||||
|  |         </p> | ||||||
|  |         <h2>{% trans "Breakdown by usage" %}</h2> | ||||||
|  |         {% if disk_usage %} | ||||||
|  |             <h3>{% trans "Regular file system usage" %}</h3> | ||||||
|  |             <table class="table table-condensed"> | ||||||
|  |                 <thead> | ||||||
|  |                 <tr> | ||||||
|  |                     <th>{% translate "Origin" %}</th> | ||||||
|  |                     <th class="text-end">{% translate "Used space" %}</th> | ||||||
|  |                 </tr> | ||||||
|  |                 </thead> | ||||||
|  |                 {% for line in disk_usage %} | ||||||
|  |                     <tr> | ||||||
|  |                         <td>{% if line.item == "web" %}{% translate "Website data" %}{% elif line.item == "mail" %} | ||||||
|  |                             {% translate "Mailboxes" %}{% elif line.item == "other" %}{% translate "Other" %}{% else %} | ||||||
|  |                             {{ line.item }}{% endif %}</td> | ||||||
|  |                         <td class="text-end">{{ line.size_in_bytes|filesizeformat }}</td> | ||||||
|  |                     </tr> | ||||||
|  |                 {% endfor %} | ||||||
|  |             </table> | ||||||
|  |         {% endif %} | ||||||
|  |         {% if mysql_usage %} | ||||||
|  |             <h3>{% trans "MySQL/MariaDB database usage" %}</h3> | ||||||
|  |             <table class="table table-condensed"> | ||||||
|  |                 <thead> | ||||||
|  |                 <tr> | ||||||
|  |                     <th>{% translate "Database" %}</th> | ||||||
|  |                     <th class="text-end">{% translate "Used space" %}</th> | ||||||
|  |                 </tr> | ||||||
|  |                 </thead> | ||||||
|  |                 {% for line in mysql_usage %} | ||||||
|  |                     <tr> | ||||||
|  |                         <td>{{ line.item }}</td> | ||||||
|  |                         <td class="text-end">{{ line.size_in_bytes|filesizeformat }}</td> | ||||||
|  |                     </tr> | ||||||
|  |                 {% endfor %} | ||||||
|  |             </table> | ||||||
|  |         {% endif %} | ||||||
|  |         {% if pgsql_usage %} | ||||||
|  |             <h3>{% trans "PostgreSQL database usage" %}</h3> | ||||||
|  |             <table class="table table-condensed"> | ||||||
|  |                 <thead> | ||||||
|  |                 <tr> | ||||||
|  |                     <th>{% translate "Database" %}</th> | ||||||
|  |                     <th class="text-end">{% translate "Used space" %}</th> | ||||||
|  |                 </tr> | ||||||
|  |                 </thead> | ||||||
|  |                 {% for line in pgsql_usage %} | ||||||
|  |                     <tr> | ||||||
|  |                         <td>{{ line.item }}</td> | ||||||
|  |                         <td class="text-end">{{ line.size_in_bytes|filesizeformat }}</td> | ||||||
|  |                     </tr> | ||||||
|  |                 {% endfor %} | ||||||
|  |             </table> | ||||||
|  |         {% endif %} | ||||||
|  |     {% endwith %} | ||||||
|  | 
 | ||||||
|  | {% endblock content %} | ||||||
|  | @ -4,7 +4,7 @@ This module defines the URL patterns for hosting package related views. | ||||||
| """ | """ | ||||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||||
| 
 | 
 | ||||||
| from django.urls import re_path | from django.urls import path, re_path | ||||||
| 
 | 
 | ||||||
| from .views import ( | from .views import ( | ||||||
|     AddHostingOption, |     AddHostingOption, | ||||||
|  | @ -12,7 +12,9 @@ from .views import ( | ||||||
|     CreateCustomerHostingPackage, |     CreateCustomerHostingPackage, | ||||||
|     CreateHostingPackage, |     CreateHostingPackage, | ||||||
|     CustomerHostingPackageDetails, |     CustomerHostingPackageDetails, | ||||||
|  |     CustomerHostingPackageDiskUsageDetails, | ||||||
|     HostingOptionChoices, |     HostingOptionChoices, | ||||||
|  |     UploadCustomerPackageDiskUsage, | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| urlpatterns = [ | urlpatterns = [ | ||||||
|  | @ -42,4 +44,14 @@ urlpatterns = [ | ||||||
|         AddHostingOption.as_view(), |         AddHostingOption.as_view(), | ||||||
|         name="add_hosting_option", |         name="add_hosting_option", | ||||||
|     ), |     ), | ||||||
|  |     path( | ||||||
|  |         "<int:package>/disk-usage/", | ||||||
|  |         CustomerHostingPackageDiskUsageDetails.as_view(), | ||||||
|  |         name="disk_usage_details", | ||||||
|  |     ), | ||||||
|  |     path( | ||||||
|  |         "upload-disk-usage/", | ||||||
|  |         UploadCustomerPackageDiskUsage.as_view(), | ||||||
|  |         name="upload_disk_usage", | ||||||
|  |     ), | ||||||
| ] | ] | ||||||
|  |  | ||||||
|  | @ -4,6 +4,9 @@ This module defines views related to hosting packages. | ||||||
| """ | """ | ||||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||||
| 
 | 
 | ||||||
|  | import http | ||||||
|  | import logging | ||||||
|  | 
 | ||||||
| from django.conf import settings | from django.conf import settings | ||||||
| from django.contrib import messages | from django.contrib import messages | ||||||
| from django.contrib.auth import get_user_model | from django.contrib.auth import get_user_model | ||||||
|  | @ -13,6 +16,12 @@ from django.shortcuts import get_object_or_404, redirect | ||||||
| from django.utils.translation import gettext as _ | from django.utils.translation import gettext as _ | ||||||
| from django.views.generic import DetailView, ListView | from django.views.generic import DetailView, ListView | ||||||
| from django.views.generic.edit import CreateView, FormView | from django.views.generic.edit import CreateView, FormView | ||||||
|  | 
 | ||||||
|  | import rest_framework.request | ||||||
|  | from rest_framework.permissions import BasePermission | ||||||
|  | from rest_framework.response import Response | ||||||
|  | from rest_framework.views import APIView | ||||||
|  | 
 | ||||||
| from gvacommon.viewmixins import StaffOrSelfLoginRequiredMixin | from gvacommon.viewmixins import StaffOrSelfLoginRequiredMixin | ||||||
| 
 | 
 | ||||||
| from .forms import ( | from .forms import ( | ||||||
|  | @ -24,10 +33,14 @@ from .forms import ( | ||||||
| ) | ) | ||||||
| from .models import ( | from .models import ( | ||||||
|     CustomerHostingPackage, |     CustomerHostingPackage, | ||||||
|  |     CustomerPackageDiskUsage, | ||||||
|     DiskSpaceOption, |     DiskSpaceOption, | ||||||
|     MailboxOption, |     MailboxOption, | ||||||
|     UserDatabaseOption, |     UserDatabaseOption, | ||||||
| ) | ) | ||||||
|  | from .serializers import DiskUsageSerializer | ||||||
|  | 
 | ||||||
|  | logger = logging.getLogger("gnuviechadmin.hostingpackages") | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class CreateHostingPackage(PermissionRequiredMixin, CreateView): | class CreateHostingPackage(PermissionRequiredMixin, CreateView): | ||||||
|  | @ -259,3 +272,85 @@ class AddHostingOption(StaffUserRequiredMixin, FormView): | ||||||
|             ).format(option=option, package=hosting_package.name), |             ).format(option=option, package=hosting_package.name), | ||||||
|         ) |         ) | ||||||
|         return redirect(hosting_package) |         return redirect(hosting_package) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class HasDiskUsageUploadPermission(BasePermission): | ||||||
|  |     def has_permission(self, request, view): | ||||||
|  |         return ( | ||||||
|  |             request.user.has_perm("hostingpackages.add_customerpackagediskusage") | ||||||
|  |             and request.method == "POST" | ||||||
|  |         ) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class UploadCustomerPackageDiskUsage(APIView): | ||||||
|  |     permission_classes = [HasDiskUsageUploadPermission] | ||||||
|  |     allowed_methods = ("POST",) | ||||||
|  |     serializer = DiskUsageSerializer(many=True) | ||||||
|  | 
 | ||||||
|  |     def post(self, request: rest_framework.request.Request, format=None): | ||||||
|  |         if request.content_type != "application/json": | ||||||
|  |             return Response("Unacceptable", status=http.HTTPStatus.BAD_REQUEST) | ||||||
|  |         for row in request.data: | ||||||
|  |             user = row["user"] | ||||||
|  |             for key in row: | ||||||
|  |                 if key == "user": | ||||||
|  |                     continue | ||||||
|  |                 else: | ||||||
|  |                     for item, size in row[key].items(): | ||||||
|  |                         try: | ||||||
|  |                             package = CustomerHostingPackage.objects.get( | ||||||
|  |                                 osuser__username=user | ||||||
|  |                             ) | ||||||
|  |                             ( | ||||||
|  |                                 metric, | ||||||
|  |                                 created, | ||||||
|  |                             ) = CustomerPackageDiskUsage.objects.get_or_create( | ||||||
|  |                                 package=package, | ||||||
|  |                                 source=key, | ||||||
|  |                                 item=item, | ||||||
|  |                             ) | ||||||
|  |                             metric.used_kb = size | ||||||
|  |                             metric.save() | ||||||
|  |                         except CustomerHostingPackage.DoesNotExist: | ||||||
|  |                             logger.warning( | ||||||
|  |                                 "hosting package for user %s does not exist", user | ||||||
|  |                             ) | ||||||
|  | 
 | ||||||
|  |         logger.info("usage date submitted by %s", request.user) | ||||||
|  | 
 | ||||||
|  |         return Response("Accepted", status=http.HTTPStatus.ACCEPTED) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class CustomerHostingPackageDiskUsageDetails(DetailView): | ||||||
|  |     template_name_suffix = "_disk_usage_details" | ||||||
|  |     model = CustomerHostingPackage | ||||||
|  |     pk_url_kwarg = "package" | ||||||
|  |     context_object_name = "hostingpackage" | ||||||
|  | 
 | ||||||
|  |     def get_queryset(self, queryset=None): | ||||||
|  |         return super().get_queryset().prefetch_related("customerpackagediskusage_set") | ||||||
|  | 
 | ||||||
|  |     def get_context_data(self, **kwargs): | ||||||
|  |         context_data = super().get_context_data(**kwargs) | ||||||
|  | 
 | ||||||
|  |         disk_usage, mysql_usage, pgsql_usage = [], [], [] | ||||||
|  | 
 | ||||||
|  |         for usage in self.get_object().customerpackagediskusage_set.order_by( | ||||||
|  |             "-used_kb" | ||||||
|  |         ): | ||||||
|  |             if usage.source == "disk": | ||||||
|  |                 disk_usage.append(usage) | ||||||
|  |             elif usage.source == "mysql": | ||||||
|  |                 mysql_usage.append(usage) | ||||||
|  |             elif usage.source == "pgsql": | ||||||
|  |                 pgsql_usage.append(usage) | ||||||
|  | 
 | ||||||
|  |         context_data.update( | ||||||
|  |             { | ||||||
|  |                 "disk_usage": disk_usage, | ||||||
|  |                 "mysql_usage": mysql_usage, | ||||||
|  |                 "pgsql_usage": pgsql_usage, | ||||||
|  |             } | ||||||
|  |         ) | ||||||
|  | 
 | ||||||
|  |         return context_data | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ msgid "" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Project-Id-Version: gnuviechadmin invoice\n" | "Project-Id-Version: gnuviechadmin invoice\n" | ||||||
| "Report-Msgid-Bugs-To: \n" | "Report-Msgid-Bugs-To: \n" | ||||||
| "POT-Creation-Date: 2023-04-23 14:35+0200\n" | "POT-Creation-Date: 2023-07-22 19:45+0200\n" | ||||||
| "PO-Revision-Date: 2023-04-23 14:35+0200\n" | "PO-Revision-Date: 2023-04-23 14:35+0200\n" | ||||||
| "Last-Translator: \n" | "Last-Translator: \n" | ||||||
| "Language-Team: Jan Dittberner <jan@dittberner.info>\n" | "Language-Team: Jan Dittberner <jan@dittberner.info>\n" | ||||||
|  | @ -19,51 +19,51 @@ msgstr "" | ||||||
| "X-Generator: Poedit 3.2.2\n" | "X-Generator: Poedit 3.2.2\n" | ||||||
| "X-Poedit-SourceCharset: UTF-8\n" | "X-Poedit-SourceCharset: UTF-8\n" | ||||||
| 
 | 
 | ||||||
| #: invoice/apps.py:8 | #: invoices/apps.py:8 | ||||||
| msgid "Invoices" | msgid "Invoices" | ||||||
| msgstr "Rechnungen" | msgstr "Rechnungen" | ||||||
| 
 | 
 | ||||||
| #: invoice/models.py:26 | #: invoices/models.py:26 | ||||||
| msgid "customer" | msgid "customer" | ||||||
| msgstr "Kunde" | msgstr "Kunde" | ||||||
| 
 | 
 | ||||||
| #: invoice/models.py:33 | #: invoices/models.py:33 | ||||||
| msgid "invoice number" | msgid "invoice number" | ||||||
| msgstr "Rechnungsnummer" | msgstr "Rechnungsnummer" | ||||||
| 
 | 
 | ||||||
| #: invoice/models.py:35 | #: invoices/models.py:35 | ||||||
| msgid "invoice date" | msgid "invoice date" | ||||||
| msgstr "Rechnungsdatum" | msgstr "Rechnungsdatum" | ||||||
| 
 | 
 | ||||||
| #: invoice/models.py:37 | #: invoices/models.py:37 | ||||||
| msgid "amount" | msgid "amount" | ||||||
| msgstr "Betrag" | msgstr "Betrag" | ||||||
| 
 | 
 | ||||||
| #: invoice/models.py:40 | #: invoices/models.py:40 | ||||||
| msgid "currency" | msgid "currency" | ||||||
| msgstr "Währung" | msgstr "Währung" | ||||||
| 
 | 
 | ||||||
| #: invoice/models.py:42 | #: invoices/models.py:42 | ||||||
| msgid "due date" | msgid "due date" | ||||||
| msgstr "Fälligkeit" | msgstr "Fälligkeit" | ||||||
| 
 | 
 | ||||||
| #: invoice/models.py:44 | #: invoices/models.py:44 | ||||||
| msgid "payment date" | msgid "payment date" | ||||||
| msgstr "Zahlungsdatum" | msgstr "Zahlungsdatum" | ||||||
| 
 | 
 | ||||||
| #: invoice/models.py:47 | #: invoices/models.py:47 | ||||||
| msgid "payment variant" | msgid "payment variant" | ||||||
| msgstr "Zahlungsart" | msgstr "Zahlungsart" | ||||||
| 
 | 
 | ||||||
| #: invoice/models.py:51 | #: invoices/models.py:51 | ||||||
| msgid "invoice" | msgid "invoice" | ||||||
| msgstr "Rechnung" | msgstr "Rechnung" | ||||||
| 
 | 
 | ||||||
| #: invoice/models.py:52 | #: invoices/models.py:52 | ||||||
| msgid "invoices" | msgid "invoices" | ||||||
| msgstr "Rechnungen" | msgstr "Rechnungen" | ||||||
| 
 | 
 | ||||||
| #: invoice/models.py:56 | #: invoices/models.py:56 | ||||||
| #, python-brace-format | #, python-brace-format | ||||||
| msgid "Invoice {0}" | msgid "Invoice {0}" | ||||||
| msgstr "Rechnung {0}" | msgstr "Rechnung {0}" | ||||||
|  |  | ||||||
|  | @ -7,8 +7,8 @@ msgid "" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Project-Id-Version: gnuviechadmin\n" | "Project-Id-Version: gnuviechadmin\n" | ||||||
| "Report-Msgid-Bugs-To: \n" | "Report-Msgid-Bugs-To: \n" | ||||||
| "POT-Creation-Date: 2023-04-22 13:01+0200\n" | "POT-Creation-Date: 2023-07-22 19:45+0200\n" | ||||||
| "PO-Revision-Date: 2023-04-22 12:58+0200\n" | "PO-Revision-Date: 2023-07-22 19:56+0200\n" | ||||||
| "Last-Translator: Jan Dittberner <jan@dittberner.info>\n" | "Last-Translator: Jan Dittberner <jan@dittberner.info>\n" | ||||||
| "Language-Team: Jan Dittberner <jan@dittberner.info>\n" | "Language-Team: Jan Dittberner <jan@dittberner.info>\n" | ||||||
| "Language: de\n" | "Language: de\n" | ||||||
|  | @ -44,7 +44,7 @@ msgstr "Die folgenden E-Mailadressen sind Ihrem Konto zugeordnet:" | ||||||
| msgid "Email address" | msgid "Email address" | ||||||
| msgstr "E-Mailadresse" | msgstr "E-Mailadresse" | ||||||
| 
 | 
 | ||||||
| #: templates/account/email.html:15 templates/account/email.html:25 | #: templates/account/email.html:15 templates/account/email.html:26 | ||||||
| msgid "Verified" | msgid "Verified" | ||||||
| msgstr "Geprüft" | msgstr "Geprüft" | ||||||
| 
 | 
 | ||||||
|  | @ -52,31 +52,40 @@ msgstr "Geprüft" | ||||||
| msgid "Primary" | msgid "Primary" | ||||||
| msgstr "Primär" | msgstr "Primär" | ||||||
| 
 | 
 | ||||||
| #: templates/account/email.html:27 | #: templates/account/email.html:17 | ||||||
|  | msgid "Selection" | ||||||
|  | msgstr "Auswahl" | ||||||
|  | 
 | ||||||
|  | #: templates/account/email.html:28 | ||||||
| msgid "Unverified" | msgid "Unverified" | ||||||
| msgstr "Unbestätigt" | msgstr "Unbestätigt" | ||||||
| 
 | 
 | ||||||
| #: templates/account/email.html:32 | #: templates/account/email.html:33 | ||||||
| msgid "This is the current primary Email address" | msgid "This is the current primary Email address" | ||||||
| msgstr "Dies ist die aktuelle primäre E-Mailadresse" | msgstr "Dies ist die aktuelle primäre E-Mailadresse" | ||||||
| 
 | 
 | ||||||
| #: templates/account/email.html:43 | #: templates/account/email.html:43 | ||||||
|  | #, python-format | ||||||
|  | msgid "Select %(address)s" | ||||||
|  | msgstr "%(address)s auswählen" | ||||||
|  | 
 | ||||||
|  | #: templates/account/email.html:54 | ||||||
| msgid "Make Primary" | msgid "Make Primary" | ||||||
| msgstr "Als primär definieren" | msgstr "Als primär definieren" | ||||||
| 
 | 
 | ||||||
| #: templates/account/email.html:44 | #: templates/account/email.html:57 | ||||||
| msgid "Re-send Verification" | msgid "Re-send Verification" | ||||||
| msgstr "Prüf-E-Mail noch einmal verschicken" | msgstr "Prüf-E-Mail noch einmal verschicken" | ||||||
| 
 | 
 | ||||||
| #: templates/account/email.html:45 templates/socialaccount/connections.html:42 | #: templates/account/email.html:58 templates/socialaccount/connections.html:42 | ||||||
| msgid "Remove" | msgid "Remove" | ||||||
| msgstr "Entfernen" | msgstr "Entfernen" | ||||||
| 
 | 
 | ||||||
| #: templates/account/email.html:49 | #: templates/account/email.html:63 | ||||||
| msgid "Warning:" | msgid "Warning:" | ||||||
| msgstr "Warnung:" | msgstr "Warnung:" | ||||||
| 
 | 
 | ||||||
| #: templates/account/email.html:49 | #: templates/account/email.html:63 | ||||||
| msgid "" | msgid "" | ||||||
| "You currently do not have any e-mail address set up. You should really add " | "You currently do not have any e-mail address set up. You should really add " | ||||||
| "an e-mail address so you can receive notifications, reset your password, etc." | "an e-mail address so you can receive notifications, reset your password, etc." | ||||||
|  | @ -85,15 +94,15 @@ msgstr "" | ||||||
| "Mailadresse, um Benachrichtigungen zu erhalten, Ihr Passwort zurückzusetzen, " | "Mailadresse, um Benachrichtigungen zu erhalten, Ihr Passwort zurückzusetzen, " | ||||||
| "etc." | "etc." | ||||||
| 
 | 
 | ||||||
| #: templates/account/email.html:52 | #: templates/account/email.html:67 | ||||||
| msgid "Add E-mail Address" | msgid "Add E-mail Address" | ||||||
| msgstr "E-Mailadresse hinzufügen" | msgstr "E-Mailadresse hinzufügen" | ||||||
| 
 | 
 | ||||||
| #: templates/account/email.html:57 | #: templates/account/email.html:72 | ||||||
| msgid "Add E-mail" | msgid "Add E-mail" | ||||||
| msgstr "E-Mail hinzufügen" | msgstr "E-Mail hinzufügen" | ||||||
| 
 | 
 | ||||||
| #: templates/account/email.html:64 | #: templates/account/email.html:79 | ||||||
| msgid "Do you really want to remove the selected e-mail address?" | msgid "Do you really want to remove the selected e-mail address?" | ||||||
| msgstr "Wollen Sie die augewählte E-Mailadresse wirklich entfernen?" | msgstr "Wollen Sie die augewählte E-Mailadresse wirklich entfernen?" | ||||||
| 
 | 
 | ||||||
|  | @ -181,7 +190,7 @@ msgstr "" | ||||||
| "Mailadresse des Benutzers %(user_display)s ist." | "Mailadresse des Benutzers %(user_display)s ist." | ||||||
| 
 | 
 | ||||||
| #: templates/account/login.html:4 templates/account/login.html:5 | #: templates/account/login.html:4 templates/account/login.html:5 | ||||||
| #: templates/account/login.html:18 templates/base.html:124 | #: templates/account/login.html:18 templates/base.html:112 | ||||||
| #: templates/registration/login.html:4 templates/socialaccount/login.html:4 | #: templates/registration/login.html:4 templates/socialaccount/login.html:4 | ||||||
| msgid "Sign In" | msgid "Sign In" | ||||||
| msgstr "Anmelden" | msgstr "Anmelden" | ||||||
|  | @ -399,67 +408,59 @@ msgstr "" | ||||||
| "<strong>Hinweis:</strong> Sie können Ihre <a href=\"%(email_url)s\">E-" | "<strong>Hinweis:</strong> Sie können Ihre <a href=\"%(email_url)s\">E-" | ||||||
| "Mailadresse noch ändern</a>." | "Mailadresse noch ändern</a>." | ||||||
| 
 | 
 | ||||||
| #: templates/base.html:32 | #: templates/base.html:26 | ||||||
| msgid "Dashboard" | msgid "Dashboard" | ||||||
| msgstr "Dashboard" | msgstr "Dashboard" | ||||||
| 
 | 
 | ||||||
| #: templates/base.html:34 | #: templates/base.html:28 | ||||||
| msgid "Toggle navigation" | msgid "Toggle navigation" | ||||||
| msgstr "Navigation umschalten" | msgstr "Navigation umschalten" | ||||||
| 
 | 
 | ||||||
| #: templates/base.html:42 templates/base.html:53 | #: templates/base.html:36 | ||||||
| msgid "Hosting" | msgid "Hosting" | ||||||
| msgstr "Hosting" | msgstr "Hosting" | ||||||
| 
 | 
 | ||||||
| #: templates/base.html:45 | #: templates/base.html:42 | ||||||
| msgid "Your hosting packages" |  | ||||||
| msgstr "Ihre Hostingpakete" |  | ||||||
| 
 |  | ||||||
| #: templates/base.html:47 |  | ||||||
| msgid "All hosting packages" |  | ||||||
| msgstr "Alle Hostingpakete" |  | ||||||
| 
 |  | ||||||
| #: templates/base.html:57 |  | ||||||
| msgid "Links" | msgid "Links" | ||||||
| msgstr "Links" | msgstr "Links" | ||||||
| 
 | 
 | ||||||
| #: templates/base.html:60 | #: templates/base.html:45 | ||||||
| msgid "Web based mail system" | msgid "Web based mail system" | ||||||
| msgstr "Webbasiertes E-Mailsystem" | msgstr "Webbasiertes E-Mailsystem" | ||||||
| 
 | 
 | ||||||
| #: templates/base.html:61 | #: templates/base.html:46 | ||||||
| msgid "Webmail" | msgid "Webmail" | ||||||
| msgstr "Webmail" | msgstr "Webmail" | ||||||
| 
 | 
 | ||||||
| #: templates/base.html:63 | #: templates/base.html:48 | ||||||
| msgid "phpMyAdmin - MySQL database administration tool" | msgid "phpMyAdmin - MySQL database administration tool" | ||||||
| msgstr "phpMyAdmin - MySQL-Datenbankverwaltungswerkzeug" | msgstr "phpMyAdmin - MySQL-Datenbankverwaltungswerkzeug" | ||||||
| 
 | 
 | ||||||
| #: templates/base.html:64 | #: templates/base.html:49 | ||||||
| msgid "phpMyAdmin" | msgid "phpMyAdmin" | ||||||
| msgstr "phpMyAdmin" | msgstr "phpMyAdmin" | ||||||
| 
 | 
 | ||||||
| #: templates/base.html:66 | #: templates/base.html:51 | ||||||
| msgid "phpPgAdmin - PostgreSQL database administration tool" | msgid "phpPgAdmin - PostgreSQL database administration tool" | ||||||
| msgstr "phpPgAdmin - PostgreSQL-Datenbankverwaltungswerkzeug" | msgstr "phpPgAdmin - PostgreSQL-Datenbankverwaltungswerkzeug" | ||||||
| 
 | 
 | ||||||
| #: templates/base.html:67 | #: templates/base.html:52 | ||||||
| msgid "phpPgAdmin" | msgid "phpPgAdmin" | ||||||
| msgstr "phpPgAdmin" | msgstr "phpPgAdmin" | ||||||
| 
 | 
 | ||||||
| #: templates/base.html:71 | #: templates/base.html:57 | ||||||
| msgid "Imprint" | msgid "Imprint" | ||||||
| msgstr "Impressum" | msgstr "Impressum" | ||||||
| 
 | 
 | ||||||
| #: templates/base.html:74 | #: templates/base.html:61 | ||||||
| msgid "Privacy policy" | msgid "Privacy policy" | ||||||
| msgstr "Datenschutz" | msgstr "Datenschutz" | ||||||
| 
 | 
 | ||||||
| #: templates/base.html:78 | #: templates/base.html:65 | ||||||
| msgid "Contact" | msgid "Contact" | ||||||
| msgstr "Kontakt" | msgstr "Kontakt" | ||||||
| 
 | 
 | ||||||
| #: templates/base.html:86 | #: templates/base.html:73 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "" | msgid "" | ||||||
| "Signed in as <a href=\"%(profile_url)s\" class=\"navbar-link\" title=\"My " | "Signed in as <a href=\"%(profile_url)s\" class=\"navbar-link\" title=\"My " | ||||||
|  | @ -474,7 +475,7 @@ msgstr "" | ||||||
| "class=\"navbar-link\"><i class=\"bi-sign-stop\" title=\"Übernahme " | "class=\"navbar-link\"><i class=\"bi-sign-stop\" title=\"Übernahme " | ||||||
| "beenden\"></i></a>" | "beenden\"></i></a>" | ||||||
| 
 | 
 | ||||||
| #: templates/base.html:93 | #: templates/base.html:81 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "" | msgid "" | ||||||
| "Signed in as <a href=\"%(profile_url)s\" class=\"navbar-link\" title=\"My " | "Signed in as <a href=\"%(profile_url)s\" class=\"navbar-link\" title=\"My " | ||||||
|  | @ -483,31 +484,31 @@ msgstr "" | ||||||
| "Angemeldet als <a href=\"%(profile_url)s\" class=\"navbar-link\" " | "Angemeldet als <a href=\"%(profile_url)s\" class=\"navbar-link\" " | ||||||
| "title=\"Mein Profil\">%(user_display)s</a>" | "title=\"Mein Profil\">%(user_display)s</a>" | ||||||
| 
 | 
 | ||||||
| #: templates/base.html:103 | #: templates/base.html:91 | ||||||
| msgid "My Account" | msgid "My Account" | ||||||
| msgstr "Mein Konto" | msgstr "Mein Konto" | ||||||
| 
 | 
 | ||||||
| #: templates/base.html:107 | #: templates/base.html:95 | ||||||
| msgid "Impersonate user" | msgid "Impersonate user" | ||||||
| msgstr "Als Nutzer agieren" | msgstr "Als Nutzer agieren" | ||||||
| 
 | 
 | ||||||
| #: templates/base.html:111 | #: templates/base.html:99 | ||||||
| msgid "Admin site" | msgid "Admin site" | ||||||
| msgstr "Adminsite" | msgstr "Adminsite" | ||||||
| 
 | 
 | ||||||
| #: templates/base.html:113 | #: templates/base.html:101 | ||||||
| msgid "Change Email" | msgid "Change Email" | ||||||
| msgstr "E-Mail ändern" | msgstr "E-Mail ändern" | ||||||
| 
 | 
 | ||||||
| #: templates/base.html:116 | #: templates/base.html:104 | ||||||
| msgid "Social Accounts" | msgid "Social Accounts" | ||||||
| msgstr "Konten in sozialen Netzwerken" | msgstr "Konten in sozialen Netzwerken" | ||||||
| 
 | 
 | ||||||
| #: templates/base.html:118 | #: templates/base.html:106 | ||||||
| msgid "Logout" | msgid "Logout" | ||||||
| msgstr "Abmelden" | msgstr "Abmelden" | ||||||
| 
 | 
 | ||||||
| #: templates/base.html:139 | #: templates/base.html:127 | ||||||
| msgid "Close" | msgid "Close" | ||||||
| msgstr "Schließen" | msgstr "Schließen" | ||||||
| 
 | 
 | ||||||
|  | @ -527,6 +528,12 @@ msgstr "Django Impersonate - Nutzerliste" | ||||||
| msgid "User List - Page %(page_number)s" | msgid "User List - Page %(page_number)s" | ||||||
| msgstr "Nutzerliste - Seite %(page_number)s" | msgstr "Nutzerliste - Seite %(page_number)s" | ||||||
| 
 | 
 | ||||||
|  | #: templates/impersonate/list_users.html:14 | ||||||
|  | #: templates/impersonate/search_users.html:24 | ||||||
|  | #, python-format | ||||||
|  | msgid "Impersonate %(user)s" | ||||||
|  | msgstr "Als Nutzer %(user)s agieren" | ||||||
|  | 
 | ||||||
| #: templates/impersonate/list_users.html:21 | #: templates/impersonate/list_users.html:21 | ||||||
| msgid "Search users" | msgid "Search users" | ||||||
| msgstr "Nutzer suchen" | msgstr "Nutzer suchen" | ||||||
|  |  | ||||||
|  | @ -7,8 +7,8 @@ msgid "" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Project-Id-Version: gnuviechadmin taskresults\n" | "Project-Id-Version: gnuviechadmin taskresults\n" | ||||||
| "Report-Msgid-Bugs-To: \n" | "Report-Msgid-Bugs-To: \n" | ||||||
| "POT-Creation-Date: 2023-04-16 22:07+0200\n" | "POT-Creation-Date: 2023-07-22 19:45+0200\n" | ||||||
| "PO-Revision-Date: 2023-04-16 18:21+0200\n" | "PO-Revision-Date: 2023-07-22 19:57+0200\n" | ||||||
| "Last-Translator: Jan Dittberner <jan@dittberner.info>\n" | "Last-Translator: Jan Dittberner <jan@dittberner.info>\n" | ||||||
| "Language-Team: Jan Dittberner <jan@dittberner.info>\n" | "Language-Team: Jan Dittberner <jan@dittberner.info>\n" | ||||||
| "Language: de\n" | "Language: de\n" | ||||||
|  | @ -19,38 +19,38 @@ msgstr "" | ||||||
| "X-Generator: Poedit 3.2.2\n" | "X-Generator: Poedit 3.2.2\n" | ||||||
| "X-Poedit-SourceCharset: UTF-8\n" | "X-Poedit-SourceCharset: UTF-8\n" | ||||||
| 
 | 
 | ||||||
| #: taskresults/models.py:23 | #: taskresults/models.py:24 | ||||||
| msgid "Task id" | msgid "Task id" | ||||||
| msgstr "Task-Id" | msgstr "Task-Id" | ||||||
| 
 | 
 | ||||||
| #: taskresults/models.py:24 | #: taskresults/models.py:25 | ||||||
| msgid "Task signature" | msgid "Task signature" | ||||||
| msgstr "Tasksignatur" | msgstr "Tasksignatur" | ||||||
| 
 | 
 | ||||||
| #: taskresults/models.py:25 | #: taskresults/models.py:26 | ||||||
| msgid "Task creator" | msgid "Task creator" | ||||||
| msgstr "Taskersteller" | msgstr "Taskersteller" | ||||||
| 
 | 
 | ||||||
| #: taskresults/models.py:26 | #: taskresults/models.py:27 | ||||||
| msgid "Task notes" | msgid "Task notes" | ||||||
| msgstr "Tasknotizen" | msgstr "Tasknotizen" | ||||||
| 
 | 
 | ||||||
| #: taskresults/models.py:27 taskresults/models.py:34 | #: taskresults/models.py:28 taskresults/models.py:35 | ||||||
| msgid "Task result" | msgid "Task result" | ||||||
| msgstr "Taskergebnis" | msgstr "Taskergebnis" | ||||||
| 
 | 
 | ||||||
| #: taskresults/models.py:29 | #: taskresults/models.py:30 | ||||||
| msgid "Task state" | msgid "Task state" | ||||||
| msgstr "Taskstatus" | msgstr "Taskstatus" | ||||||
| 
 | 
 | ||||||
| #: taskresults/models.py:35 | #: taskresults/models.py:36 | ||||||
| msgid "Task results" | msgid "Task results" | ||||||
| msgstr "Taskergebnisse" | msgstr "Taskergebnisse" | ||||||
| 
 | 
 | ||||||
| #: taskresults/models.py:42 | #: taskresults/models.py:43 | ||||||
| msgid "yes" | msgid "yes" | ||||||
| msgstr "ja" | msgstr "ja" | ||||||
| 
 | 
 | ||||||
| #: taskresults/models.py:42 | #: taskresults/models.py:43 | ||||||
| msgid "no" | msgid "no" | ||||||
| msgstr "nein" | msgstr "nein" | ||||||
|  |  | ||||||
|  | @ -7,8 +7,8 @@ msgid "" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Project-Id-Version: websites gnuviechadmin app\n" | "Project-Id-Version: websites gnuviechadmin app\n" | ||||||
| "Report-Msgid-Bugs-To: \n" | "Report-Msgid-Bugs-To: \n" | ||||||
| "POT-Creation-Date: 2023-04-16 22:07+0200\n" | "POT-Creation-Date: 2023-07-22 19:45+0200\n" | ||||||
| "PO-Revision-Date: 2023-04-16 18:21+0200\n" | "PO-Revision-Date: 2023-07-22 19:57+0200\n" | ||||||
| "Last-Translator: Jan Dittberner <jan@dittberner.info>\n" | "Last-Translator: Jan Dittberner <jan@dittberner.info>\n" | ||||||
| "Language-Team: Jan Dittberner <jan@dittberner.info>\n" | "Language-Team: Jan Dittberner <jan@dittberner.info>\n" | ||||||
| "Language: de\n" | "Language: de\n" | ||||||
|  | @ -31,27 +31,27 @@ msgstr "Webauftritt anlegen" | ||||||
| msgid "There is already a website for this subdomain" | msgid "There is already a website for this subdomain" | ||||||
| msgstr "Es gibt bereits einen Webauftritt mit dieser Subdomain" | msgstr "Es gibt bereits einen Webauftritt mit dieser Subdomain" | ||||||
| 
 | 
 | ||||||
| #: websites/models.py:32 | #: websites/models.py:20 | ||||||
| msgid "sub domain" | msgid "sub domain" | ||||||
| msgstr "Subdomain" | msgstr "Subdomain" | ||||||
| 
 | 
 | ||||||
| #: websites/models.py:34 | #: websites/models.py:22 | ||||||
| msgid "operating system user" | msgid "operating system user" | ||||||
| msgstr "Betriebssystemnutzer" | msgstr "Betriebssystemnutzer" | ||||||
| 
 | 
 | ||||||
| #: websites/models.py:36 | #: websites/models.py:24 | ||||||
| msgid "domain" | msgid "domain" | ||||||
| msgstr "Domain" | msgstr "Domain" | ||||||
| 
 | 
 | ||||||
| #: websites/models.py:37 | #: websites/models.py:25 | ||||||
| msgid "wildcard" | msgid "wildcard" | ||||||
| msgstr "Wildcard" | msgstr "Wildcard" | ||||||
| 
 | 
 | ||||||
| #: websites/models.py:41 | #: websites/models.py:29 | ||||||
| msgid "website" | msgid "website" | ||||||
| msgstr "Webauftritt" | msgstr "Webauftritt" | ||||||
| 
 | 
 | ||||||
| #: websites/models.py:42 | #: websites/models.py:30 | ||||||
| msgid "websites" | msgid "websites" | ||||||
| msgstr "Webauftritte" | msgstr "Webauftritte" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										470
									
								
								poetry.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										470
									
								
								poetry.lock
									
										
									
										generated
									
									
									
								
							|  | @ -2,98 +2,98 @@ | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "aiohttp" | name = "aiohttp" | ||||||
| version = "3.8.4" | version = "3.8.5" | ||||||
| description = "Async http client/server framework (asyncio)" | description = "Async http client/server framework (asyncio)" | ||||||
| optional = false | optional = false | ||||||
| python-versions = ">=3.6" | python-versions = ">=3.6" | ||||||
| files = [ | files = [ | ||||||
|     {file = "aiohttp-3.8.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5ce45967538fb747370308d3145aa68a074bdecb4f3a300869590f725ced69c1"}, |     {file = "aiohttp-3.8.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a94159871304770da4dd371f4291b20cac04e8c94f11bdea1c3478e557fbe0d8"}, | ||||||
|     {file = "aiohttp-3.8.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b744c33b6f14ca26b7544e8d8aadff6b765a80ad6164fb1a430bbadd593dfb1a"}, |     {file = "aiohttp-3.8.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:13bf85afc99ce6f9ee3567b04501f18f9f8dbbb2ea11ed1a2e079670403a7c84"}, | ||||||
|     {file = "aiohttp-3.8.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1a45865451439eb320784918617ba54b7a377e3501fb70402ab84d38c2cd891b"}, |     {file = "aiohttp-3.8.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2ce2ac5708501afc4847221a521f7e4b245abf5178cf5ddae9d5b3856ddb2f3a"}, | ||||||
|     {file = "aiohttp-3.8.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a86d42d7cba1cec432d47ab13b6637bee393a10f664c425ea7b305d1301ca1a3"}, |     {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:96943e5dcc37a6529d18766597c491798b7eb7a61d48878611298afc1fca946c"}, | ||||||
|     {file = "aiohttp-3.8.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee3c36df21b5714d49fc4580247947aa64bcbe2939d1b77b4c8dcb8f6c9faecc"}, |     {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ad5c3c4590bb3cc28b4382f031f3783f25ec223557124c68754a2231d989e2b"}, | ||||||
|     {file = "aiohttp-3.8.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:176a64b24c0935869d5bbc4c96e82f89f643bcdf08ec947701b9dbb3c956b7dd"}, |     {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0c413c633d0512df4dc7fd2373ec06cc6a815b7b6d6c2f208ada7e9e93a5061d"}, | ||||||
|     {file = "aiohttp-3.8.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c844fd628851c0bc309f3c801b3a3d58ce430b2ce5b359cd918a5a76d0b20cb5"}, |     {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:df72ac063b97837a80d80dec8d54c241af059cc9bb42c4de68bd5b61ceb37caa"}, | ||||||
|     {file = "aiohttp-3.8.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5393fb786a9e23e4799fec788e7e735de18052f83682ce2dfcabaf1c00c2c08e"}, |     {file = "aiohttp-3.8.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c48c5c0271149cfe467c0ff8eb941279fd6e3f65c9a388c984e0e6cf57538e14"}, | ||||||
|     {file = "aiohttp-3.8.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e4b09863aae0dc965c3ef36500d891a3ff495a2ea9ae9171e4519963c12ceefd"}, |     {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:368a42363c4d70ab52c2c6420a57f190ed3dfaca6a1b19afda8165ee16416a82"}, | ||||||
|     {file = "aiohttp-3.8.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:adfbc22e87365a6e564c804c58fc44ff7727deea782d175c33602737b7feadb6"}, |     {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7607ec3ce4993464368505888af5beb446845a014bc676d349efec0e05085905"}, | ||||||
|     {file = "aiohttp-3.8.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:147ae376f14b55f4f3c2b118b95be50a369b89b38a971e80a17c3fd623f280c9"}, |     {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:0d21c684808288a98914e5aaf2a7c6a3179d4df11d249799c32d1808e79503b5"}, | ||||||
|     {file = "aiohttp-3.8.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:eafb3e874816ebe2a92f5e155f17260034c8c341dad1df25672fb710627c6949"}, |     {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:312fcfbacc7880a8da0ae8b6abc6cc7d752e9caa0051a53d217a650b25e9a691"}, | ||||||
|     {file = "aiohttp-3.8.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c6cc15d58053c76eacac5fa9152d7d84b8d67b3fde92709195cb984cfb3475ea"}, |     {file = "aiohttp-3.8.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ad093e823df03bb3fd37e7dec9d4670c34f9e24aeace76808fc20a507cace825"}, | ||||||
|     {file = "aiohttp-3.8.4-cp310-cp310-win32.whl", hash = "sha256:59f029a5f6e2d679296db7bee982bb3d20c088e52a2977e3175faf31d6fb75d1"}, |     {file = "aiohttp-3.8.5-cp310-cp310-win32.whl", hash = "sha256:33279701c04351a2914e1100b62b2a7fdb9a25995c4a104259f9a5ead7ed4802"}, | ||||||
|     {file = "aiohttp-3.8.4-cp310-cp310-win_amd64.whl", hash = "sha256:fe7ba4a51f33ab275515f66b0a236bcde4fb5561498fe8f898d4e549b2e4509f"}, |     {file = "aiohttp-3.8.5-cp310-cp310-win_amd64.whl", hash = "sha256:6e4a280e4b975a2e7745573e3fc9c9ba0d1194a3738ce1cbaa80626cc9b4f4df"}, | ||||||
|     {file = "aiohttp-3.8.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3d8ef1a630519a26d6760bc695842579cb09e373c5f227a21b67dc3eb16cfea4"}, |     {file = "aiohttp-3.8.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ae871a964e1987a943d83d6709d20ec6103ca1eaf52f7e0d36ee1b5bebb8b9b9"}, | ||||||
|     {file = "aiohttp-3.8.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b3f2e06a512e94722886c0827bee9807c86a9f698fac6b3aee841fab49bbfb4"}, |     {file = "aiohttp-3.8.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:461908b2578955045efde733719d62f2b649c404189a09a632d245b445c9c975"}, | ||||||
|     {file = "aiohttp-3.8.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3a80464982d41b1fbfe3154e440ba4904b71c1a53e9cd584098cd41efdb188ef"}, |     {file = "aiohttp-3.8.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:72a860c215e26192379f57cae5ab12b168b75db8271f111019509a1196dfc780"}, | ||||||
|     {file = "aiohttp-3.8.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b631e26df63e52f7cce0cce6507b7a7f1bc9b0c501fcde69742130b32e8782f"}, |     {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc14be025665dba6202b6a71cfcdb53210cc498e50068bc088076624471f8bb9"}, | ||||||
|     {file = "aiohttp-3.8.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f43255086fe25e36fd5ed8f2ee47477408a73ef00e804cb2b5cba4bf2ac7f5e"}, |     {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8af740fc2711ad85f1a5c034a435782fbd5b5f8314c9a3ef071424a8158d7f6b"}, | ||||||
|     {file = "aiohttp-3.8.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4d347a172f866cd1d93126d9b239fcbe682acb39b48ee0873c73c933dd23bd0f"}, |     {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:841cd8233cbd2111a0ef0a522ce016357c5e3aff8a8ce92bcfa14cef890d698f"}, | ||||||
|     {file = "aiohttp-3.8.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a3fec6a4cb5551721cdd70473eb009d90935b4063acc5f40905d40ecfea23e05"}, |     {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ed1c46fb119f1b59304b5ec89f834f07124cd23ae5b74288e364477641060ff"}, | ||||||
|     {file = "aiohttp-3.8.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:80a37fe8f7c1e6ce8f2d9c411676e4bc633a8462844e38f46156d07a7d401654"}, |     {file = "aiohttp-3.8.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:84f8ae3e09a34f35c18fa57f015cc394bd1389bce02503fb30c394d04ee6b938"}, | ||||||
|     {file = "aiohttp-3.8.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d1e6a862b76f34395a985b3cd39a0d949ca80a70b6ebdea37d3ab39ceea6698a"}, |     {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:62360cb771707cb70a6fd114b9871d20d7dd2163a0feafe43fd115cfe4fe845e"}, | ||||||
|     {file = "aiohttp-3.8.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:cd468460eefef601ece4428d3cf4562459157c0f6523db89365202c31b6daebb"}, |     {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:23fb25a9f0a1ca1f24c0a371523546366bb642397c94ab45ad3aedf2941cec6a"}, | ||||||
|     {file = "aiohttp-3.8.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:618c901dd3aad4ace71dfa0f5e82e88b46ef57e3239fc7027773cb6d4ed53531"}, |     {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b0ba0d15164eae3d878260d4c4df859bbdc6466e9e6689c344a13334f988bb53"}, | ||||||
|     {file = "aiohttp-3.8.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:652b1bff4f15f6287550b4670546a2947f2a4575b6c6dff7760eafb22eacbf0b"}, |     {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:5d20003b635fc6ae3f96d7260281dfaf1894fc3aa24d1888a9b2628e97c241e5"}, | ||||||
|     {file = "aiohttp-3.8.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80575ba9377c5171407a06d0196b2310b679dc752d02a1fcaa2bc20b235dbf24"}, |     {file = "aiohttp-3.8.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0175d745d9e85c40dcc51c8f88c74bfbaef9e7afeeeb9d03c37977270303064c"}, | ||||||
|     {file = "aiohttp-3.8.4-cp311-cp311-win32.whl", hash = "sha256:bbcf1a76cf6f6dacf2c7f4d2ebd411438c275faa1dc0c68e46eb84eebd05dd7d"}, |     {file = "aiohttp-3.8.5-cp311-cp311-win32.whl", hash = "sha256:2e1b1e51b0774408f091d268648e3d57f7260c1682e7d3a63cb00d22d71bb945"}, | ||||||
|     {file = "aiohttp-3.8.4-cp311-cp311-win_amd64.whl", hash = "sha256:6e74dd54f7239fcffe07913ff8b964e28b712f09846e20de78676ce2a3dc0bfc"}, |     {file = "aiohttp-3.8.5-cp311-cp311-win_amd64.whl", hash = "sha256:043d2299f6dfdc92f0ac5e995dfc56668e1587cea7f9aa9d8a78a1b6554e5755"}, | ||||||
|     {file = "aiohttp-3.8.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:880e15bb6dad90549b43f796b391cfffd7af373f4646784795e20d92606b7a51"}, |     {file = "aiohttp-3.8.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:cae533195e8122584ec87531d6df000ad07737eaa3c81209e85c928854d2195c"}, | ||||||
|     {file = "aiohttp-3.8.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb96fa6b56bb536c42d6a4a87dfca570ff8e52de2d63cabebfd6fb67049c34b6"}, |     {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f21e83f355643c345177a5d1d8079f9f28b5133bcd154193b799d380331d5d3"}, | ||||||
|     {file = "aiohttp-3.8.4-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a6cadebe132e90cefa77e45f2d2f1a4b2ce5c6b1bfc1656c1ddafcfe4ba8131"}, |     {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a7a75ef35f2df54ad55dbf4b73fe1da96f370e51b10c91f08b19603c64004acc"}, | ||||||
|     {file = "aiohttp-3.8.4-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f352b62b45dff37b55ddd7b9c0c8672c4dd2eb9c0f9c11d395075a84e2c40f75"}, |     {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e2e9839e14dd5308ee773c97115f1e0a1cb1d75cbeeee9f33824fa5144c7634"}, | ||||||
|     {file = "aiohttp-3.8.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ab43061a0c81198d88f39aaf90dae9a7744620978f7ef3e3708339b8ed2ef01"}, |     {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c44e65da1de4403d0576473e2344828ef9c4c6244d65cf4b75549bb46d40b8dd"}, | ||||||
|     {file = "aiohttp-3.8.4-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9cb1565a7ad52e096a6988e2ee0397f72fe056dadf75d17fa6b5aebaea05622"}, |     {file = "aiohttp-3.8.5-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:78d847e4cde6ecc19125ccbc9bfac4a7ab37c234dd88fbb3c5c524e8e14da543"}, | ||||||
|     {file = "aiohttp-3.8.4-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:1b3ea7edd2d24538959c1c1abf97c744d879d4e541d38305f9bd7d9b10c9ec41"}, |     {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:c7a815258e5895d8900aec4454f38dca9aed71085f227537208057853f9d13f2"}, | ||||||
|     {file = "aiohttp-3.8.4-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:7c7837fe8037e96b6dd5cfcf47263c1620a9d332a87ec06a6ca4564e56bd0f36"}, |     {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:8b929b9bd7cd7c3939f8bcfffa92fae7480bd1aa425279d51a89327d600c704d"}, | ||||||
|     {file = "aiohttp-3.8.4-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:3b90467ebc3d9fa5b0f9b6489dfb2c304a1db7b9946fa92aa76a831b9d587e99"}, |     {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:5db3a5b833764280ed7618393832e0853e40f3d3e9aa128ac0ba0f8278d08649"}, | ||||||
|     {file = "aiohttp-3.8.4-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:cab9401de3ea52b4b4c6971db5fb5c999bd4260898af972bf23de1c6b5dd9d71"}, |     {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:a0215ce6041d501f3155dc219712bc41252d0ab76474615b9700d63d4d9292af"}, | ||||||
|     {file = "aiohttp-3.8.4-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:d1f9282c5f2b5e241034a009779e7b2a1aa045f667ff521e7948ea9b56e0c5ff"}, |     {file = "aiohttp-3.8.5-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:fd1ed388ea7fbed22c4968dd64bab0198de60750a25fe8c0c9d4bef5abe13824"}, | ||||||
|     {file = "aiohttp-3.8.4-cp36-cp36m-win32.whl", hash = "sha256:5e14f25765a578a0a634d5f0cd1e2c3f53964553a00347998dfdf96b8137f777"}, |     {file = "aiohttp-3.8.5-cp36-cp36m-win32.whl", hash = "sha256:6e6783bcc45f397fdebc118d772103d751b54cddf5b60fbcc958382d7dd64f3e"}, | ||||||
|     {file = "aiohttp-3.8.4-cp36-cp36m-win_amd64.whl", hash = "sha256:4c745b109057e7e5f1848c689ee4fb3a016c8d4d92da52b312f8a509f83aa05e"}, |     {file = "aiohttp-3.8.5-cp36-cp36m-win_amd64.whl", hash = "sha256:b5411d82cddd212644cf9360879eb5080f0d5f7d809d03262c50dad02f01421a"}, | ||||||
|     {file = "aiohttp-3.8.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:aede4df4eeb926c8fa70de46c340a1bc2c6079e1c40ccf7b0eae1313ffd33519"}, |     {file = "aiohttp-3.8.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:01d4c0c874aa4ddfb8098e85d10b5e875a70adc63db91f1ae65a4b04d3344cda"}, | ||||||
|     {file = "aiohttp-3.8.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ddaae3f3d32fc2cb4c53fab020b69a05c8ab1f02e0e59665c6f7a0d3a5be54f"}, |     {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5980a746d547a6ba173fd5ee85ce9077e72d118758db05d229044b469d9029a"}, | ||||||
|     {file = "aiohttp-3.8.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4eb3b82ca349cf6fadcdc7abcc8b3a50ab74a62e9113ab7a8ebc268aad35bb9"}, |     {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2a482e6da906d5e6e653be079b29bc173a48e381600161c9932d89dfae5942ef"}, | ||||||
|     {file = "aiohttp-3.8.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9bcb89336efa095ea21b30f9e686763f2be4478f1b0a616969551982c4ee4c3b"}, |     {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80bd372b8d0715c66c974cf57fe363621a02f359f1ec81cba97366948c7fc873"}, | ||||||
|     {file = "aiohttp-3.8.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c08e8ed6fa3d477e501ec9db169bfac8140e830aa372d77e4a43084d8dd91ab"}, |     {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1161b345c0a444ebcf46bf0a740ba5dcf50612fd3d0528883fdc0eff578006a"}, | ||||||
|     {file = "aiohttp-3.8.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c6cd05ea06daca6ad6a4ca3ba7fe7dc5b5de063ff4daec6170ec0f9979f6c332"}, |     {file = "aiohttp-3.8.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd56db019015b6acfaaf92e1ac40eb8434847d9bf88b4be4efe5bfd260aee692"}, | ||||||
|     {file = "aiohttp-3.8.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b7a00a9ed8d6e725b55ef98b1b35c88013245f35f68b1b12c5cd4100dddac333"}, |     {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:153c2549f6c004d2754cc60603d4668899c9895b8a89397444a9c4efa282aaf4"}, | ||||||
|     {file = "aiohttp-3.8.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:de04b491d0e5007ee1b63a309956eaed959a49f5bb4e84b26c8f5d49de140fa9"}, |     {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4a01951fabc4ce26ab791da5f3f24dca6d9a6f24121746eb19756416ff2d881b"}, | ||||||
|     {file = "aiohttp-3.8.4-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:40653609b3bf50611356e6b6554e3a331f6879fa7116f3959b20e3528783e699"}, |     {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bfb9162dcf01f615462b995a516ba03e769de0789de1cadc0f916265c257e5d8"}, | ||||||
|     {file = "aiohttp-3.8.4-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:dbf3a08a06b3f433013c143ebd72c15cac33d2914b8ea4bea7ac2c23578815d6"}, |     {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:7dde0009408969a43b04c16cbbe252c4f5ef4574ac226bc8815cd7342d2028b6"}, | ||||||
|     {file = "aiohttp-3.8.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:854f422ac44af92bfe172d8e73229c270dc09b96535e8a548f99c84f82dde241"}, |     {file = "aiohttp-3.8.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4149d34c32f9638f38f544b3977a4c24052042affa895352d3636fa8bffd030a"}, | ||||||
|     {file = "aiohttp-3.8.4-cp37-cp37m-win32.whl", hash = "sha256:aeb29c84bb53a84b1a81c6c09d24cf33bb8432cc5c39979021cc0f98c1292a1a"}, |     {file = "aiohttp-3.8.5-cp37-cp37m-win32.whl", hash = "sha256:68c5a82c8779bdfc6367c967a4a1b2aa52cd3595388bf5961a62158ee8a59e22"}, | ||||||
|     {file = "aiohttp-3.8.4-cp37-cp37m-win_amd64.whl", hash = "sha256:db3fc6120bce9f446d13b1b834ea5b15341ca9ff3f335e4a951a6ead31105480"}, |     {file = "aiohttp-3.8.5-cp37-cp37m-win_amd64.whl", hash = "sha256:2cf57fb50be5f52bda004b8893e63b48530ed9f0d6c96c84620dc92fe3cd9b9d"}, | ||||||
|     {file = "aiohttp-3.8.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fabb87dd8850ef0f7fe2b366d44b77d7e6fa2ea87861ab3844da99291e81e60f"}, |     {file = "aiohttp-3.8.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:eca4bf3734c541dc4f374ad6010a68ff6c6748f00451707f39857f429ca36ced"}, | ||||||
|     {file = "aiohttp-3.8.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:91f6d540163f90bbaef9387e65f18f73ffd7c79f5225ac3d3f61df7b0d01ad15"}, |     {file = "aiohttp-3.8.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1274477e4c71ce8cfe6c1ec2f806d57c015ebf84d83373676036e256bc55d690"}, | ||||||
|     {file = "aiohttp-3.8.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d265f09a75a79a788237d7f9054f929ced2e69eb0bb79de3798c468d8a90f945"}, |     {file = "aiohttp-3.8.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:28c543e54710d6158fc6f439296c7865b29e0b616629767e685a7185fab4a6b9"}, | ||||||
|     {file = "aiohttp-3.8.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d89efa095ca7d442a6d0cbc755f9e08190ba40069b235c9886a8763b03785da"}, |     {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:910bec0c49637d213f5d9877105d26e0c4a4de2f8b1b29405ff37e9fc0ad52b8"}, | ||||||
|     {file = "aiohttp-3.8.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4dac314662f4e2aa5009977b652d9b8db7121b46c38f2073bfeed9f4049732cd"}, |     {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5443910d662db951b2e58eb70b0fbe6b6e2ae613477129a5805d0b66c54b6cb7"}, | ||||||
|     {file = "aiohttp-3.8.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe11310ae1e4cd560035598c3f29d86cef39a83d244c7466f95c27ae04850f10"}, |     {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e460be6978fc24e3df83193dc0cc4de46c9909ed92dd47d349a452ef49325b7"}, | ||||||
|     {file = "aiohttp-3.8.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ddb2a2026c3f6a68c3998a6c47ab6795e4127315d2e35a09997da21865757f8"}, |     {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb1558def481d84f03b45888473fc5a1f35747b5f334ef4e7a571bc0dfcb11f8"}, | ||||||
|     {file = "aiohttp-3.8.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e75b89ac3bd27d2d043b234aa7b734c38ba1b0e43f07787130a0ecac1e12228a"}, |     {file = "aiohttp-3.8.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:34dd0c107799dcbbf7d48b53be761a013c0adf5571bf50c4ecad5643fe9cfcd0"}, | ||||||
|     {file = "aiohttp-3.8.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6e601588f2b502c93c30cd5a45bfc665faaf37bbe835b7cfd461753068232074"}, |     {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aa1990247f02a54185dc0dff92a6904521172a22664c863a03ff64c42f9b5410"}, | ||||||
|     {file = "aiohttp-3.8.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a5d794d1ae64e7753e405ba58e08fcfa73e3fad93ef9b7e31112ef3c9a0efb52"}, |     {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:0e584a10f204a617d71d359fe383406305a4b595b333721fa50b867b4a0a1548"}, | ||||||
|     {file = "aiohttp-3.8.4-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:a1f4689c9a1462f3df0a1f7e797791cd6b124ddbee2b570d34e7f38ade0e2c71"}, |     {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:a3cf433f127efa43fee6b90ea4c6edf6c4a17109d1d037d1a52abec84d8f2e42"}, | ||||||
|     {file = "aiohttp-3.8.4-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:3032dcb1c35bc330134a5b8a5d4f68c1a87252dfc6e1262c65a7e30e62298275"}, |     {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:c11f5b099adafb18e65c2c997d57108b5bbeaa9eeee64a84302c0978b1ec948b"}, | ||||||
|     {file = "aiohttp-3.8.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8189c56eb0ddbb95bfadb8f60ea1b22fcfa659396ea36f6adcc521213cd7b44d"}, |     {file = "aiohttp-3.8.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:84de26ddf621d7ac4c975dbea4c945860e08cccde492269db4e1538a6a6f3c35"}, | ||||||
|     {file = "aiohttp-3.8.4-cp38-cp38-win32.whl", hash = "sha256:33587f26dcee66efb2fff3c177547bd0449ab7edf1b73a7f5dea1e38609a0c54"}, |     {file = "aiohttp-3.8.5-cp38-cp38-win32.whl", hash = "sha256:ab88bafedc57dd0aab55fa728ea10c1911f7e4d8b43e1d838a1739f33712921c"}, | ||||||
|     {file = "aiohttp-3.8.4-cp38-cp38-win_amd64.whl", hash = "sha256:e595432ac259af2d4630008bf638873d69346372d38255774c0e286951e8b79f"}, |     {file = "aiohttp-3.8.5-cp38-cp38-win_amd64.whl", hash = "sha256:5798a9aad1879f626589f3df0f8b79b3608a92e9beab10e5fda02c8a2c60db2e"}, | ||||||
|     {file = "aiohttp-3.8.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5a7bdf9e57126dc345b683c3632e8ba317c31d2a41acd5800c10640387d193ed"}, |     {file = "aiohttp-3.8.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a6ce61195c6a19c785df04e71a4537e29eaa2c50fe745b732aa937c0c77169f3"}, | ||||||
|     {file = "aiohttp-3.8.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:22f6eab15b6db242499a16de87939a342f5a950ad0abaf1532038e2ce7d31567"}, |     {file = "aiohttp-3.8.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:773dd01706d4db536335fcfae6ea2440a70ceb03dd3e7378f3e815b03c97ab51"}, | ||||||
|     {file = "aiohttp-3.8.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7235604476a76ef249bd64cb8274ed24ccf6995c4a8b51a237005ee7a57e8643"}, |     {file = "aiohttp-3.8.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f83a552443a526ea38d064588613aca983d0ee0038801bc93c0c916428310c28"}, | ||||||
|     {file = "aiohttp-3.8.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea9eb976ffdd79d0e893869cfe179a8f60f152d42cb64622fca418cd9b18dc2a"}, |     {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f7372f7341fcc16f57b2caded43e81ddd18df53320b6f9f042acad41f8e049a"}, | ||||||
|     {file = "aiohttp-3.8.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:92c0cea74a2a81c4c76b62ea1cac163ecb20fb3ba3a75c909b9fa71b4ad493cf"}, |     {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea353162f249c8097ea63c2169dd1aa55de1e8fecbe63412a9bc50816e87b761"}, | ||||||
|     {file = "aiohttp-3.8.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:493f5bc2f8307286b7799c6d899d388bbaa7dfa6c4caf4f97ef7521b9cb13719"}, |     {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5d47ae48db0b2dcf70bc8a3bc72b3de86e2a590fc299fdbbb15af320d2659de"}, | ||||||
|     {file = "aiohttp-3.8.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a63f03189a6fa7c900226e3ef5ba4d3bd047e18f445e69adbd65af433add5a2"}, |     {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d827176898a2b0b09694fbd1088c7a31836d1a505c243811c87ae53a3f6273c1"}, | ||||||
|     {file = "aiohttp-3.8.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10c8cefcff98fd9168cdd86c4da8b84baaa90bf2da2269c6161984e6737bf23e"}, |     {file = "aiohttp-3.8.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3562b06567c06439d8b447037bb655ef69786c590b1de86c7ab81efe1c9c15d8"}, | ||||||
|     {file = "aiohttp-3.8.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bca5f24726e2919de94f047739d0a4fc01372801a3672708260546aa2601bf57"}, |     {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4e874cbf8caf8959d2adf572a78bba17cb0e9d7e51bb83d86a3697b686a0ab4d"}, | ||||||
|     {file = "aiohttp-3.8.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:03baa76b730e4e15a45f81dfe29a8d910314143414e528737f8589ec60cf7391"}, |     {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6809a00deaf3810e38c628e9a33271892f815b853605a936e2e9e5129762356c"}, | ||||||
|     {file = "aiohttp-3.8.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:8c29c77cc57e40f84acef9bfb904373a4e89a4e8b74e71aa8075c021ec9078c2"}, |     {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:33776e945d89b29251b33a7e7d006ce86447b2cfd66db5e5ded4e5cd0340585c"}, | ||||||
|     {file = "aiohttp-3.8.4-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:03543dcf98a6619254b409be2d22b51f21ec66272be4ebda7b04e6412e4b2e14"}, |     {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:eaeed7abfb5d64c539e2db173f63631455f1196c37d9d8d873fc316470dfbacd"}, | ||||||
|     {file = "aiohttp-3.8.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:17b79c2963db82086229012cff93ea55196ed31f6493bb1ccd2c62f1724324e4"}, |     {file = "aiohttp-3.8.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e91d635961bec2d8f19dfeb41a539eb94bd073f075ca6dae6c8dc0ee89ad6f91"}, | ||||||
|     {file = "aiohttp-3.8.4-cp39-cp39-win32.whl", hash = "sha256:34ce9f93a4a68d1272d26030655dd1b58ff727b3ed2a33d80ec433561b03d67a"}, |     {file = "aiohttp-3.8.5-cp39-cp39-win32.whl", hash = "sha256:00ad4b6f185ec67f3e6562e8a1d2b69660be43070bd0ef6fcec5211154c7df67"}, | ||||||
|     {file = "aiohttp-3.8.4-cp39-cp39-win_amd64.whl", hash = "sha256:41a86a69bb63bb2fc3dc9ad5ea9f10f1c9c8e282b471931be0268ddd09430b04"}, |     {file = "aiohttp-3.8.5-cp39-cp39-win_amd64.whl", hash = "sha256:c0a9034379a37ae42dea7ac1e048352d96286626251862e448933c0f59cbd79c"}, | ||||||
|     {file = "aiohttp-3.8.4.tar.gz", hash = "sha256:bf2e1a9162c1e441bf805a1fd166e249d574ca04e03b34f97e2928769e91ab5c"}, |     {file = "aiohttp-3.8.5.tar.gz", hash = "sha256:b9552ec52cc147dbf1944ac7ac98af7602e51ea2dcd076ed194ca3c0d1c7d0bc"}, | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [package.dependencies] | [package.dependencies] | ||||||
|  | @ -251,36 +251,33 @@ files = [ | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "black" | name = "black" | ||||||
| version = "23.3.0" | version = "23.7.0" | ||||||
| description = "The uncompromising code formatter." | description = "The uncompromising code formatter." | ||||||
| optional = false | optional = false | ||||||
| python-versions = ">=3.7" | python-versions = ">=3.8" | ||||||
| files = [ | files = [ | ||||||
|     {file = "black-23.3.0-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:0945e13506be58bf7db93ee5853243eb368ace1c08a24c65ce108986eac65915"}, |     {file = "black-23.7.0-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:5c4bc552ab52f6c1c506ccae05681fab58c3f72d59ae6e6639e8885e94fe2587"}, | ||||||
|     {file = "black-23.3.0-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:67de8d0c209eb5b330cce2469503de11bca4085880d62f1628bd9972cc3366b9"}, |     {file = "black-23.7.0-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:552513d5cd5694590d7ef6f46e1767a4df9af168d449ff767b13b084c020e63f"}, | ||||||
|     {file = "black-23.3.0-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:7c3eb7cea23904399866c55826b31c1f55bbcd3890ce22ff70466b907b6775c2"}, |     {file = "black-23.7.0-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:86cee259349b4448adb4ef9b204bb4467aae74a386bce85d56ba4f5dc0da27be"}, | ||||||
|     {file = "black-23.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32daa9783106c28815d05b724238e30718f34155653d4d6e125dc7daec8e260c"}, |     {file = "black-23.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:501387a9edcb75d7ae8a4412bb8749900386eaef258f1aefab18adddea1936bc"}, | ||||||
|     {file = "black-23.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:35d1381d7a22cc5b2be2f72c7dfdae4072a3336060635718cc7e1ede24221d6c"}, |     {file = "black-23.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:fb074d8b213749fa1d077d630db0d5f8cc3b2ae63587ad4116e8a436e9bbe995"}, | ||||||
|     {file = "black-23.3.0-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:a8a968125d0a6a404842fa1bf0b349a568634f856aa08ffaff40ae0dfa52e7c6"}, |     {file = "black-23.7.0-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:b5b0ee6d96b345a8b420100b7d71ebfdd19fab5e8301aff48ec270042cd40ac2"}, | ||||||
|     {file = "black-23.3.0-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:c7ab5790333c448903c4b721b59c0d80b11fe5e9803d8703e84dcb8da56fec1b"}, |     {file = "black-23.7.0-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:893695a76b140881531062d48476ebe4a48f5d1e9388177e175d76234ca247cd"}, | ||||||
|     {file = "black-23.3.0-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:a6f6886c9869d4daae2d1715ce34a19bbc4b95006d20ed785ca00fa03cba312d"}, |     {file = "black-23.7.0-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:c333286dc3ddca6fdff74670b911cccedacb4ef0a60b34e491b8a67c833b343a"}, | ||||||
|     {file = "black-23.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f3c333ea1dd6771b2d3777482429864f8e258899f6ff05826c3a4fcc5ce3f70"}, |     {file = "black-23.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:831d8f54c3a8c8cf55f64d0422ee875eecac26f5f649fb6c1df65316b67c8926"}, | ||||||
|     {file = "black-23.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:11c410f71b876f961d1de77b9699ad19f939094c3a677323f43d7a29855fe326"}, |     {file = "black-23.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:7f3bf2dec7d541b4619b8ce526bda74a6b0bffc480a163fed32eb8b3c9aed8ad"}, | ||||||
|     {file = "black-23.3.0-cp37-cp37m-macosx_10_16_x86_64.whl", hash = "sha256:1d06691f1eb8de91cd1b322f21e3bfc9efe0c7ca1f0e1eb1db44ea367dff656b"}, |     {file = "black-23.7.0-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:f9062af71c59c004cd519e2fb8f5d25d39e46d3af011b41ab43b9c74e27e236f"}, | ||||||
|     {file = "black-23.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50cb33cac881766a5cd9913e10ff75b1e8eb71babf4c7104f2e9c52da1fb7de2"}, |     {file = "black-23.7.0-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:01ede61aac8c154b55f35301fac3e730baf0c9cf8120f65a9cd61a81cfb4a0c3"}, | ||||||
|     {file = "black-23.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:e114420bf26b90d4b9daa597351337762b63039752bdf72bf361364c1aa05925"}, |     {file = "black-23.7.0-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:327a8c2550ddc573b51e2c352adb88143464bb9d92c10416feb86b0f5aee5ff6"}, | ||||||
|     {file = "black-23.3.0-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:48f9d345675bb7fbc3dd85821b12487e1b9a75242028adad0333ce36ed2a6d27"}, |     {file = "black-23.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d1c6022b86f83b632d06f2b02774134def5d4d4f1dac8bef16d90cda18ba28a"}, | ||||||
|     {file = "black-23.3.0-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:714290490c18fb0126baa0fca0a54ee795f7502b44177e1ce7624ba1c00f2331"}, |     {file = "black-23.7.0-cp38-cp38-win_amd64.whl", hash = "sha256:27eb7a0c71604d5de083757fbdb245b1a4fae60e9596514c6ec497eb63f95320"}, | ||||||
|     {file = "black-23.3.0-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:064101748afa12ad2291c2b91c960be28b817c0c7eaa35bec09cc63aa56493c5"}, |     {file = "black-23.7.0-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:8417dbd2f57b5701492cd46edcecc4f9208dc75529bcf76c514864e48da867d9"}, | ||||||
|     {file = "black-23.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:562bd3a70495facf56814293149e51aa1be9931567474993c7942ff7d3533961"}, |     {file = "black-23.7.0-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:47e56d83aad53ca140da0af87678fb38e44fd6bc0af71eebab2d1f59b1acf1d3"}, | ||||||
|     {file = "black-23.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:e198cf27888ad6f4ff331ca1c48ffc038848ea9f031a3b40ba36aced7e22f2c8"}, |     {file = "black-23.7.0-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:25cc308838fe71f7065df53aedd20327969d05671bac95b38fdf37ebe70ac087"}, | ||||||
|     {file = "black-23.3.0-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:3238f2aacf827d18d26db07524e44741233ae09a584273aa059066d644ca7b30"}, |     {file = "black-23.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:642496b675095d423f9b8448243336f8ec71c9d4d57ec17bf795b67f08132a91"}, | ||||||
|     {file = "black-23.3.0-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:f0bd2f4a58d6666500542b26354978218a9babcdc972722f4bf90779524515f3"}, |     {file = "black-23.7.0-cp39-cp39-win_amd64.whl", hash = "sha256:ad0014efc7acf0bd745792bd0d8857413652979200ab924fbf239062adc12491"}, | ||||||
|     {file = "black-23.3.0-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:92c543f6854c28a3c7f39f4d9b7694f9a6eb9d3c5e2ece488c327b6e7ea9b266"}, |     {file = "black-23.7.0-py3-none-any.whl", hash = "sha256:9fd59d418c60c0348505f2ddf9609c1e1de8e7493eab96198fc89d9f865e7a96"}, | ||||||
|     {file = "black-23.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a150542a204124ed00683f0db1f5cf1c2aaaa9cc3495b7a3b5976fb136090ab"}, |     {file = "black-23.7.0.tar.gz", hash = "sha256:022a582720b0d9480ed82576c920a8c1dde97cc38ff11d8d8859b3bd6ca9eedb"}, | ||||||
|     {file = "black-23.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:6b39abdfb402002b8a7d030ccc85cf5afff64ee90fa4c5aebc531e3ad0175ddb"}, |  | ||||||
|     {file = "black-23.3.0-py3-none-any.whl", hash = "sha256:ec751418022185b0c1bb7d7736e6933d40bbb14c14a0abcf9123d1b159f98dd4"}, |  | ||||||
|     {file = "black-23.3.0.tar.gz", hash = "sha256:1c7b8d606e728a41ea1ccbd7264677e494e87cf630e399262ced92d4a8dac940"}, |  | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [package.dependencies] | [package.dependencies] | ||||||
|  | @ -379,13 +376,13 @@ zstd = ["zstandard (==0.21.0)"] | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "certifi" | name = "certifi" | ||||||
| version = "2023.5.7" | version = "2023.7.22" | ||||||
| description = "Python package for providing Mozilla's CA Bundle." | description = "Python package for providing Mozilla's CA Bundle." | ||||||
| optional = false | optional = false | ||||||
| python-versions = ">=3.6" | python-versions = ">=3.6" | ||||||
| files = [ | files = [ | ||||||
|     {file = "certifi-2023.5.7-py3-none-any.whl", hash = "sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716"}, |     {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, | ||||||
|     {file = "certifi-2023.5.7.tar.gz", hash = "sha256:0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7"}, |     {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
|  | @ -550,13 +547,13 @@ files = [ | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "click" | name = "click" | ||||||
| version = "8.1.4" | version = "8.1.6" | ||||||
| description = "Composable command line interface toolkit" | description = "Composable command line interface toolkit" | ||||||
| optional = false | optional = false | ||||||
| python-versions = ">=3.7" | python-versions = ">=3.7" | ||||||
| files = [ | files = [ | ||||||
|     {file = "click-8.1.4-py3-none-any.whl", hash = "sha256:2739815aaa5d2c986a88f1e9230c55e17f0caad3d958a5e13ad0797c166db9e3"}, |     {file = "click-8.1.6-py3-none-any.whl", hash = "sha256:fa244bb30b3b5ee2cae3da8f55c9e5e0c0e86093306301fb418eb9dc40fbded5"}, | ||||||
|     {file = "click-8.1.4.tar.gz", hash = "sha256:b97d0c74955da062a7d4ef92fadb583806a585b2ea81958a81bd72726cbb8e37"}, |     {file = "click-8.1.6.tar.gz", hash = "sha256:48ee849951919527a045bfe3bf7baa8a959c423134e1a5b98c05c20ba75a1cbd"}, | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [package.dependencies] | [package.dependencies] | ||||||
|  | @ -714,30 +711,34 @@ test = ["pytest", "pytest-django"] | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "cryptography" | name = "cryptography" | ||||||
| version = "41.0.1" | version = "41.0.2" | ||||||
| description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." | description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." | ||||||
| optional = false | optional = false | ||||||
| python-versions = ">=3.7" | python-versions = ">=3.7" | ||||||
| files = [ | files = [ | ||||||
|     {file = "cryptography-41.0.1-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:f73bff05db2a3e5974a6fd248af2566134d8981fd7ab012e5dd4ddb1d9a70699"}, |     {file = "cryptography-41.0.2-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:01f1d9e537f9a15b037d5d9ee442b8c22e3ae11ce65ea1f3316a41c78756b711"}, | ||||||
|     {file = "cryptography-41.0.1-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:1a5472d40c8f8e91ff7a3d8ac6dfa363d8e3138b961529c996f3e2df0c7a411a"}, |     {file = "cryptography-41.0.2-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:079347de771f9282fbfe0e0236c716686950c19dee1b76240ab09ce1624d76d7"}, | ||||||
|     {file = "cryptography-41.0.1-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7fa01527046ca5facdf973eef2535a27fec4cb651e4daec4d043ef63f6ecd4ca"}, |     {file = "cryptography-41.0.2-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:439c3cc4c0d42fa999b83ded80a9a1fb54d53c58d6e59234cfe97f241e6c781d"}, | ||||||
|     {file = "cryptography-41.0.1-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b46e37db3cc267b4dea1f56da7346c9727e1209aa98487179ee8ebed09d21e43"}, |     {file = "cryptography-41.0.2-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f14ad275364c8b4e525d018f6716537ae7b6d369c094805cae45300847e0894f"}, | ||||||
|     {file = "cryptography-41.0.1-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:d198820aba55660b4d74f7b5fd1f17db3aa5eb3e6893b0a41b75e84e4f9e0e4b"}, |     {file = "cryptography-41.0.2-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:84609ade00a6ec59a89729e87a503c6e36af98ddcd566d5f3be52e29ba993182"}, | ||||||
|     {file = "cryptography-41.0.1-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:948224d76c4b6457349d47c0c98657557f429b4e93057cf5a2f71d603e2fc3a3"}, |     {file = "cryptography-41.0.2-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:49c3222bb8f8e800aead2e376cbef687bc9e3cb9b58b29a261210456a7783d83"}, | ||||||
|     {file = "cryptography-41.0.1-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:059e348f9a3c1950937e1b5d7ba1f8e968508ab181e75fc32b879452f08356db"}, |     {file = "cryptography-41.0.2-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:d73f419a56d74fef257955f51b18d046f3506270a5fd2ac5febbfa259d6c0fa5"}, | ||||||
|     {file = "cryptography-41.0.1-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:b4ceb5324b998ce2003bc17d519080b4ec8d5b7b70794cbd2836101406a9be31"}, |     {file = "cryptography-41.0.2-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:2a034bf7d9ca894720f2ec1d8b7b5832d7e363571828037f9e0c4f18c1b58a58"}, | ||||||
|     {file = "cryptography-41.0.1-cp37-abi3-win32.whl", hash = "sha256:8f4ab7021127a9b4323537300a2acfb450124b2def3756f64dc3a3d2160ee4b5"}, |     {file = "cryptography-41.0.2-cp37-abi3-win32.whl", hash = "sha256:d124682c7a23c9764e54ca9ab5b308b14b18eba02722b8659fb238546de83a76"}, | ||||||
|     {file = "cryptography-41.0.1-cp37-abi3-win_amd64.whl", hash = "sha256:1fee5aacc7367487b4e22484d3c7e547992ed726d14864ee33c0176ae43b0d7c"}, |     {file = "cryptography-41.0.2-cp37-abi3-win_amd64.whl", hash = "sha256:9c3fe6534d59d071ee82081ca3d71eed3210f76ebd0361798c74abc2bcf347d4"}, | ||||||
|     {file = "cryptography-41.0.1-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:9a6c7a3c87d595608a39980ebaa04d5a37f94024c9f24eb7d10262b92f739ddb"}, |     {file = "cryptography-41.0.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a719399b99377b218dac6cf547b6ec54e6ef20207b6165126a280b0ce97e0d2a"}, | ||||||
|     {file = "cryptography-41.0.1-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5d092fdfedaec4cbbffbf98cddc915ba145313a6fdaab83c6e67f4e6c218e6f3"}, |     {file = "cryptography-41.0.2-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:182be4171f9332b6741ee818ec27daff9fb00349f706629f5cbf417bd50e66fd"}, | ||||||
|     {file = "cryptography-41.0.1-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1a8e6c2de6fbbcc5e14fd27fb24414507cb3333198ea9ab1258d916f00bc3039"}, |     {file = "cryptography-41.0.2-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:7a9a3bced53b7f09da251685224d6a260c3cb291768f54954e28f03ef14e3766"}, | ||||||
|     {file = "cryptography-41.0.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:cb33ccf15e89f7ed89b235cff9d49e2e62c6c981a6061c9c8bb47ed7951190bc"}, |     {file = "cryptography-41.0.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f0dc40e6f7aa37af01aba07277d3d64d5a03dc66d682097541ec4da03cc140ee"}, | ||||||
|     {file = "cryptography-41.0.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5f0ff6e18d13a3de56f609dd1fd11470918f770c6bd5d00d632076c727d35485"}, |     {file = "cryptography-41.0.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:674b669d5daa64206c38e507808aae49904c988fa0a71c935e7006a3e1e83831"}, | ||||||
|     {file = "cryptography-41.0.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:7bfc55a5eae8b86a287747053140ba221afc65eb06207bedf6e019b8934b477c"}, |     {file = "cryptography-41.0.2-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:7af244b012711a26196450d34f483357e42aeddb04128885d95a69bd8b14b69b"}, | ||||||
|     {file = "cryptography-41.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:eb8163f5e549a22888c18b0d53d6bb62a20510060a22fd5a995ec8a05268df8a"}, |     {file = "cryptography-41.0.2-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:9b6d717393dbae53d4e52684ef4f022444fc1cce3c48c38cb74fca29e1f08eaa"}, | ||||||
|     {file = "cryptography-41.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:8dde71c4169ec5ccc1087bb7521d54251c016f126f922ab2dfe6649170a3b8c5"}, |     {file = "cryptography-41.0.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:192255f539d7a89f2102d07d7375b1e0a81f7478925b3bc2e0549ebf739dae0e"}, | ||||||
|     {file = "cryptography-41.0.1.tar.gz", hash = "sha256:d34579085401d3f49762d2f7d6634d6b6c2ae1242202e860f4d26b046e3a1006"}, |     {file = "cryptography-41.0.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f772610fe364372de33d76edcd313636a25684edb94cee53fd790195f5989d14"}, | ||||||
|  |     {file = "cryptography-41.0.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:b332cba64d99a70c1e0836902720887fb4529ea49ea7f5462cf6640e095e11d2"}, | ||||||
|  |     {file = "cryptography-41.0.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:9a6673c1828db6270b76b22cc696f40cde9043eb90373da5c2f8f2158957f42f"}, | ||||||
|  |     {file = "cryptography-41.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:342f3767e25876751e14f8459ad85e77e660537ca0a066e10e75df9c9e9099f0"}, | ||||||
|  |     {file = "cryptography-41.0.2.tar.gz", hash = "sha256:7d230bf856164de164ecb615ccc14c7fc6de6906ddd5b491f3af90d3514c925c"}, | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [package.dependencies] | [package.dependencies] | ||||||
|  | @ -897,85 +898,72 @@ files = [ | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "frozenlist" | name = "frozenlist" | ||||||
| version = "1.3.3" | version = "1.4.0" | ||||||
| description = "A list-like structure which implements collections.abc.MutableSequence" | description = "A list-like structure which implements collections.abc.MutableSequence" | ||||||
| optional = false | optional = false | ||||||
| python-versions = ">=3.7" | python-versions = ">=3.8" | ||||||
| files = [ | files = [ | ||||||
|     {file = "frozenlist-1.3.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff8bf625fe85e119553b5383ba0fb6aa3d0ec2ae980295aaefa552374926b3f4"}, |     {file = "frozenlist-1.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:764226ceef3125e53ea2cb275000e309c0aa5464d43bd72abd661e27fffc26ab"}, | ||||||
|     {file = "frozenlist-1.3.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dfbac4c2dfcc082fcf8d942d1e49b6aa0766c19d3358bd86e2000bf0fa4a9cf0"}, |     {file = "frozenlist-1.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d6484756b12f40003c6128bfcc3fa9f0d49a687e171186c2d85ec82e3758c559"}, | ||||||
|     {file = "frozenlist-1.3.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b1c63e8d377d039ac769cd0926558bb7068a1f7abb0f003e3717ee003ad85530"}, |     {file = "frozenlist-1.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9ac08e601308e41eb533f232dbf6b7e4cea762f9f84f6357136eed926c15d12c"}, | ||||||
|     {file = "frozenlist-1.3.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7fdfc24dcfce5b48109867c13b4cb15e4660e7bd7661741a391f821f23dfdca7"}, |     {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d081f13b095d74b67d550de04df1c756831f3b83dc9881c38985834387487f1b"}, | ||||||
|     {file = "frozenlist-1.3.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2c926450857408e42f0bbc295e84395722ce74bae69a3b2aa2a65fe22cb14b99"}, |     {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:71932b597f9895f011f47f17d6428252fc728ba2ae6024e13c3398a087c2cdea"}, | ||||||
|     {file = "frozenlist-1.3.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1841e200fdafc3d51f974d9d377c079a0694a8f06de2e67b48150328d66d5483"}, |     {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:981b9ab5a0a3178ff413bca62526bb784249421c24ad7381e39d67981be2c326"}, | ||||||
|     {file = "frozenlist-1.3.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f470c92737afa7d4c3aacc001e335062d582053d4dbe73cda126f2d7031068dd"}, |     {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e41f3de4df3e80de75845d3e743b3f1c4c8613c3997a912dbf0229fc61a8b963"}, | ||||||
|     {file = "frozenlist-1.3.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:783263a4eaad7c49983fe4b2e7b53fa9770c136c270d2d4bbb6d2192bf4d9caf"}, |     {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6918d49b1f90821e93069682c06ffde41829c346c66b721e65a5c62b4bab0300"}, | ||||||
|     {file = "frozenlist-1.3.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:924620eef691990dfb56dc4709f280f40baee568c794b5c1885800c3ecc69816"}, |     {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0e5c8764c7829343d919cc2dfc587a8db01c4f70a4ebbc49abde5d4b158b007b"}, | ||||||
|     {file = "frozenlist-1.3.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:ae4dc05c465a08a866b7a1baf360747078b362e6a6dbeb0c57f234db0ef88ae0"}, |     {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:8d0edd6b1c7fb94922bf569c9b092ee187a83f03fb1a63076e7774b60f9481a8"}, | ||||||
|     {file = "frozenlist-1.3.3-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:bed331fe18f58d844d39ceb398b77d6ac0b010d571cba8267c2e7165806b00ce"}, |     {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e29cda763f752553fa14c68fb2195150bfab22b352572cb36c43c47bedba70eb"}, | ||||||
|     {file = "frozenlist-1.3.3-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:02c9ac843e3390826a265e331105efeab489ffaf4dd86384595ee8ce6d35ae7f"}, |     {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:0c7c1b47859ee2cac3846fde1c1dc0f15da6cec5a0e5c72d101e0f83dcb67ff9"}, | ||||||
|     {file = "frozenlist-1.3.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:9545a33965d0d377b0bc823dcabf26980e77f1b6a7caa368a365a9497fb09420"}, |     {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:901289d524fdd571be1c7be054f48b1f88ce8dddcbdf1ec698b27d4b8b9e5d62"}, | ||||||
|     {file = "frozenlist-1.3.3-cp310-cp310-win32.whl", hash = "sha256:d5cd3ab21acbdb414bb6c31958d7b06b85eeb40f66463c264a9b343a4e238642"}, |     {file = "frozenlist-1.4.0-cp310-cp310-win32.whl", hash = "sha256:1a0848b52815006ea6596c395f87449f693dc419061cc21e970f139d466dc0a0"}, | ||||||
|     {file = "frozenlist-1.3.3-cp310-cp310-win_amd64.whl", hash = "sha256:b756072364347cb6aa5b60f9bc18e94b2f79632de3b0190253ad770c5df17db1"}, |     {file = "frozenlist-1.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:b206646d176a007466358aa21d85cd8600a415c67c9bd15403336c331a10d956"}, | ||||||
|     {file = "frozenlist-1.3.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b4395e2f8d83fbe0c627b2b696acce67868793d7d9750e90e39592b3626691b7"}, |     {file = "frozenlist-1.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:de343e75f40e972bae1ef6090267f8260c1446a1695e77096db6cfa25e759a95"}, | ||||||
|     {file = "frozenlist-1.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:14143ae966a6229350021384870458e4777d1eae4c28d1a7aa47f24d030e6678"}, |     {file = "frozenlist-1.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ad2a9eb6d9839ae241701d0918f54c51365a51407fd80f6b8289e2dfca977cc3"}, | ||||||
|     {file = "frozenlist-1.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5d8860749e813a6f65bad8285a0520607c9500caa23fea6ee407e63debcdbef6"}, |     {file = "frozenlist-1.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bd7bd3b3830247580de99c99ea2a01416dfc3c34471ca1298bccabf86d0ff4dc"}, | ||||||
|     {file = "frozenlist-1.3.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23d16d9f477bb55b6154654e0e74557040575d9d19fe78a161bd33d7d76808e8"}, |     {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bdf1847068c362f16b353163391210269e4f0569a3c166bc6a9f74ccbfc7e839"}, | ||||||
|     {file = "frozenlist-1.3.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb82dbba47a8318e75f679690190c10a5e1f447fbf9df41cbc4c3afd726d88cb"}, |     {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:38461d02d66de17455072c9ba981d35f1d2a73024bee7790ac2f9e361ef1cd0c"}, | ||||||
|     {file = "frozenlist-1.3.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9309869032abb23d196cb4e4db574232abe8b8be1339026f489eeb34a4acfd91"}, |     {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5a32087d720c608f42caed0ef36d2b3ea61a9d09ee59a5142d6070da9041b8f"}, | ||||||
|     {file = "frozenlist-1.3.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a97b4fe50b5890d36300820abd305694cb865ddb7885049587a5678215782a6b"}, |     {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dd65632acaf0d47608190a71bfe46b209719bf2beb59507db08ccdbe712f969b"}, | ||||||
|     {file = "frozenlist-1.3.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c188512b43542b1e91cadc3c6c915a82a5eb95929134faf7fd109f14f9892ce4"}, |     {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:261b9f5d17cac914531331ff1b1d452125bf5daa05faf73b71d935485b0c510b"}, | ||||||
|     {file = "frozenlist-1.3.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:303e04d422e9b911a09ad499b0368dc551e8c3cd15293c99160c7f1f07b59a48"}, |     {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b89ac9768b82205936771f8d2eb3ce88503b1556324c9f903e7156669f521472"}, | ||||||
|     {file = "frozenlist-1.3.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:0771aed7f596c7d73444c847a1c16288937ef988dc04fb9f7be4b2aa91db609d"}, |     {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:008eb8b31b3ea6896da16c38c1b136cb9fec9e249e77f6211d479db79a4eaf01"}, | ||||||
|     {file = "frozenlist-1.3.3-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:66080ec69883597e4d026f2f71a231a1ee9887835902dbe6b6467d5a89216cf6"}, |     {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:e74b0506fa5aa5598ac6a975a12aa8928cbb58e1f5ac8360792ef15de1aa848f"}, | ||||||
|     {file = "frozenlist-1.3.3-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:41fe21dc74ad3a779c3d73a2786bdf622ea81234bdd4faf90b8b03cad0c2c0b4"}, |     {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:490132667476f6781b4c9458298b0c1cddf237488abd228b0b3650e5ecba7467"}, | ||||||
|     {file = "frozenlist-1.3.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f20380df709d91525e4bee04746ba612a4df0972c1b8f8e1e8af997e678c7b81"}, |     {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:76d4711f6f6d08551a7e9ef28c722f4a50dd0fc204c56b4bcd95c6cc05ce6fbb"}, | ||||||
|     {file = "frozenlist-1.3.3-cp311-cp311-win32.whl", hash = "sha256:f30f1928162e189091cf4d9da2eac617bfe78ef907a761614ff577ef4edfb3c8"}, |     {file = "frozenlist-1.4.0-cp311-cp311-win32.whl", hash = "sha256:a02eb8ab2b8f200179b5f62b59757685ae9987996ae549ccf30f983f40602431"}, | ||||||
|     {file = "frozenlist-1.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:a6394d7dadd3cfe3f4b3b186e54d5d8504d44f2d58dcc89d693698e8b7132b32"}, |     {file = "frozenlist-1.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:515e1abc578dd3b275d6a5114030b1330ba044ffba03f94091842852f806f1c1"}, | ||||||
|     {file = "frozenlist-1.3.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8df3de3a9ab8325f94f646609a66cbeeede263910c5c0de0101079ad541af332"}, |     {file = "frozenlist-1.4.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:f0ed05f5079c708fe74bf9027e95125334b6978bf07fd5ab923e9e55e5fbb9d3"}, | ||||||
|     {file = "frozenlist-1.3.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0693c609e9742c66ba4870bcee1ad5ff35462d5ffec18710b4ac89337ff16e27"}, |     {file = "frozenlist-1.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ca265542ca427bf97aed183c1676e2a9c66942e822b14dc6e5f42e038f92a503"}, | ||||||
|     {file = "frozenlist-1.3.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cd4210baef299717db0a600d7a3cac81d46ef0e007f88c9335db79f8979c0d3d"}, |     {file = "frozenlist-1.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:491e014f5c43656da08958808588cc6c016847b4360e327a62cb308c791bd2d9"}, | ||||||
|     {file = "frozenlist-1.3.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:394c9c242113bfb4b9aa36e2b80a05ffa163a30691c7b5a29eba82e937895d5e"}, |     {file = "frozenlist-1.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17ae5cd0f333f94f2e03aaf140bb762c64783935cc764ff9c82dff626089bebf"}, | ||||||
|     {file = "frozenlist-1.3.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6327eb8e419f7d9c38f333cde41b9ae348bec26d840927332f17e887a8dcb70d"}, |     {file = "frozenlist-1.4.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1e78fb68cf9c1a6aa4a9a12e960a5c9dfbdb89b3695197aa7064705662515de2"}, | ||||||
|     {file = "frozenlist-1.3.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e24900aa13212e75e5b366cb9065e78bbf3893d4baab6052d1aca10d46d944c"}, |     {file = "frozenlist-1.4.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5655a942f5f5d2c9ed93d72148226d75369b4f6952680211972a33e59b1dfdc"}, | ||||||
|     {file = "frozenlist-1.3.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:3843f84a6c465a36559161e6c59dce2f2ac10943040c2fd021cfb70d58c4ad56"}, |     {file = "frozenlist-1.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c11b0746f5d946fecf750428a95f3e9ebe792c1ee3b1e96eeba145dc631a9672"}, | ||||||
|     {file = "frozenlist-1.3.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:84610c1502b2461255b4c9b7d5e9c48052601a8957cd0aea6ec7a7a1e1fb9420"}, |     {file = "frozenlist-1.4.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e66d2a64d44d50d2543405fb183a21f76b3b5fd16f130f5c99187c3fb4e64919"}, | ||||||
|     {file = "frozenlist-1.3.3-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:c21b9aa40e08e4f63a2f92ff3748e6b6c84d717d033c7b3438dd3123ee18f70e"}, |     {file = "frozenlist-1.4.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:88f7bc0fcca81f985f78dd0fa68d2c75abf8272b1f5c323ea4a01a4d7a614efc"}, | ||||||
|     {file = "frozenlist-1.3.3-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:efce6ae830831ab6a22b9b4091d411698145cb9b8fc869e1397ccf4b4b6455cb"}, |     {file = "frozenlist-1.4.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5833593c25ac59ede40ed4de6d67eb42928cca97f26feea219f21d0ed0959b79"}, | ||||||
|     {file = "frozenlist-1.3.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:40de71985e9042ca00b7953c4f41eabc3dc514a2d1ff534027f091bc74416401"}, |     {file = "frozenlist-1.4.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:fec520865f42e5c7f050c2a79038897b1c7d1595e907a9e08e3353293ffc948e"}, | ||||||
|     {file = "frozenlist-1.3.3-cp37-cp37m-win32.whl", hash = "sha256:180c00c66bde6146a860cbb81b54ee0df350d2daf13ca85b275123bbf85de18a"}, |     {file = "frozenlist-1.4.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:b826d97e4276750beca7c8f0f1a4938892697a6bcd8ec8217b3312dad6982781"}, | ||||||
|     {file = "frozenlist-1.3.3-cp37-cp37m-win_amd64.whl", hash = "sha256:9bbbcedd75acdfecf2159663b87f1bb5cfc80e7cd99f7ddd9d66eb98b14a8411"}, |     {file = "frozenlist-1.4.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ceb6ec0a10c65540421e20ebd29083c50e6d1143278746a4ef6bcf6153171eb8"}, | ||||||
|     {file = "frozenlist-1.3.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:034a5c08d36649591be1cbb10e09da9f531034acfe29275fc5454a3b101ce41a"}, |     {file = "frozenlist-1.4.0-cp38-cp38-win32.whl", hash = "sha256:2b8bcf994563466db019fab287ff390fffbfdb4f905fc77bc1c1d604b1c689cc"}, | ||||||
|     {file = "frozenlist-1.3.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ba64dc2b3b7b158c6660d49cdb1d872d1d0bf4e42043ad8d5006099479a194e5"}, |     {file = "frozenlist-1.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:a6c8097e01886188e5be3e6b14e94ab365f384736aa1fca6a0b9e35bd4a30bc7"}, | ||||||
|     {file = "frozenlist-1.3.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:47df36a9fe24054b950bbc2db630d508cca3aa27ed0566c0baf661225e52c18e"}, |     {file = "frozenlist-1.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6c38721585f285203e4b4132a352eb3daa19121a035f3182e08e437cface44bf"}, | ||||||
|     {file = "frozenlist-1.3.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:008a054b75d77c995ea26629ab3a0c0d7281341f2fa7e1e85fa6153ae29ae99c"}, |     {file = "frozenlist-1.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a0c6da9aee33ff0b1a451e867da0c1f47408112b3391dd43133838339e410963"}, | ||||||
|     {file = "frozenlist-1.3.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:841ea19b43d438a80b4de62ac6ab21cfe6827bb8a9dc62b896acc88eaf9cecba"}, |     {file = "frozenlist-1.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:93ea75c050c5bb3d98016b4ba2497851eadf0ac154d88a67d7a6816206f6fa7f"}, | ||||||
|     {file = "frozenlist-1.3.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e235688f42b36be2b6b06fc37ac2126a73b75fb8d6bc66dd632aa35286238703"}, |     {file = "frozenlist-1.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f61e2dc5ad442c52b4887f1fdc112f97caeff4d9e6ebe78879364ac59f1663e1"}, | ||||||
|     {file = "frozenlist-1.3.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca713d4af15bae6e5d79b15c10c8522859a9a89d3b361a50b817c98c2fb402a2"}, |     {file = "frozenlist-1.4.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa384489fefeb62321b238e64c07ef48398fe80f9e1e6afeff22e140e0850eef"}, | ||||||
|     {file = "frozenlist-1.3.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ac5995f2b408017b0be26d4a1d7c61bce106ff3d9e3324374d66b5964325448"}, |     {file = "frozenlist-1.4.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:10ff5faaa22786315ef57097a279b833ecab1a0bfb07d604c9cbb1c4cdc2ed87"}, | ||||||
|     {file = "frozenlist-1.3.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a4ae8135b11652b08a8baf07631d3ebfe65a4c87909dbef5fa0cdde440444ee4"}, |     {file = "frozenlist-1.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:007df07a6e3eb3e33e9a1fe6a9db7af152bbd8a185f9aaa6ece10a3529e3e1c6"}, | ||||||
|     {file = "frozenlist-1.3.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4ea42116ceb6bb16dbb7d526e242cb6747b08b7710d9782aa3d6732bd8d27649"}, |     {file = "frozenlist-1.4.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f4f399d28478d1f604c2ff9119907af9726aed73680e5ed1ca634d377abb087"}, | ||||||
|     {file = "frozenlist-1.3.3-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:810860bb4bdce7557bc0febb84bbd88198b9dbc2022d8eebe5b3590b2ad6c842"}, |     {file = "frozenlist-1.4.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c5374b80521d3d3f2ec5572e05adc94601985cc526fb276d0c8574a6d749f1b3"}, | ||||||
|     {file = "frozenlist-1.3.3-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:ee78feb9d293c323b59a6f2dd441b63339a30edf35abcb51187d2fc26e696d13"}, |     {file = "frozenlist-1.4.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:ce31ae3e19f3c902de379cf1323d90c649425b86de7bbdf82871b8a2a0615f3d"}, | ||||||
|     {file = "frozenlist-1.3.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0af2e7c87d35b38732e810befb9d797a99279cbb85374d42ea61c1e9d23094b3"}, |     {file = "frozenlist-1.4.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7211ef110a9194b6042449431e08c4d80c0481e5891e58d429df5899690511c2"}, | ||||||
|     {file = "frozenlist-1.3.3-cp38-cp38-win32.whl", hash = "sha256:899c5e1928eec13fd6f6d8dc51be23f0d09c5281e40d9cf4273d188d9feeaf9b"}, |     {file = "frozenlist-1.4.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:556de4430ce324c836789fa4560ca62d1591d2538b8ceb0b4f68fb7b2384a27a"}, | ||||||
|     {file = "frozenlist-1.3.3-cp38-cp38-win_amd64.whl", hash = "sha256:7f44e24fa70f6fbc74aeec3e971f60a14dde85da364aa87f15d1be94ae75aeef"}, |     {file = "frozenlist-1.4.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7645a8e814a3ee34a89c4a372011dcd817964ce8cb273c8ed6119d706e9613e3"}, | ||||||
|     {file = "frozenlist-1.3.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2b07ae0c1edaa0a36339ec6cce700f51b14a3fc6545fdd32930d2c83917332cf"}, |     {file = "frozenlist-1.4.0-cp39-cp39-win32.whl", hash = "sha256:19488c57c12d4e8095a922f328df3f179c820c212940a498623ed39160bc3c2f"}, | ||||||
|     {file = "frozenlist-1.3.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ebb86518203e12e96af765ee89034a1dbb0c3c65052d1b0c19bbbd6af8a145e1"}, |     {file = "frozenlist-1.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:6221d84d463fb110bdd7619b69cb43878a11d51cbb9394ae3105d082d5199167"}, | ||||||
|     {file = "frozenlist-1.3.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5cf820485f1b4c91e0417ea0afd41ce5cf5965011b3c22c400f6d144296ccbc0"}, |     {file = "frozenlist-1.4.0.tar.gz", hash = "sha256:09163bdf0b2907454042edb19f887c6d33806adc71fbd54afc14908bfdc22251"}, | ||||||
|     {file = "frozenlist-1.3.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c11e43016b9024240212d2a65043b70ed8dfd3b52678a1271972702d990ac6d"}, |  | ||||||
|     {file = "frozenlist-1.3.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8fa3c6e3305aa1146b59a09b32b2e04074945ffcfb2f0931836d103a2c38f936"}, |  | ||||||
|     {file = "frozenlist-1.3.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:352bd4c8c72d508778cf05ab491f6ef36149f4d0cb3c56b1b4302852255d05d5"}, |  | ||||||
|     {file = "frozenlist-1.3.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:65a5e4d3aa679610ac6e3569e865425b23b372277f89b5ef06cf2cdaf1ebf22b"}, |  | ||||||
|     {file = "frozenlist-1.3.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1e2c1185858d7e10ff045c496bbf90ae752c28b365fef2c09cf0fa309291669"}, |  | ||||||
|     {file = "frozenlist-1.3.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f163d2fd041c630fed01bc48d28c3ed4a3b003c00acd396900e11ee5316b56bb"}, |  | ||||||
|     {file = "frozenlist-1.3.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:05cdb16d09a0832eedf770cb7bd1fe57d8cf4eaf5aced29c4e41e3f20b30a784"}, |  | ||||||
|     {file = "frozenlist-1.3.3-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:8bae29d60768bfa8fb92244b74502b18fae55a80eac13c88eb0b496d4268fd2d"}, |  | ||||||
|     {file = "frozenlist-1.3.3-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:eedab4c310c0299961ac285591acd53dc6723a1ebd90a57207c71f6e0c2153ab"}, |  | ||||||
|     {file = "frozenlist-1.3.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3bbdf44855ed8f0fbcd102ef05ec3012d6a4fd7c7562403f76ce6a52aeffb2b1"}, |  | ||||||
|     {file = "frozenlist-1.3.3-cp39-cp39-win32.whl", hash = "sha256:efa568b885bca461f7c7b9e032655c0c143d305bf01c30caf6db2854a4532b38"}, |  | ||||||
|     {file = "frozenlist-1.3.3-cp39-cp39-win_amd64.whl", hash = "sha256:cfe33efc9cb900a4c46f91a5ceba26d6df370ffddd9ca386eb1d4f0ad97b9ea9"}, |  | ||||||
|     {file = "frozenlist-1.3.3.tar.gz", hash = "sha256:58bcc55721e8a90b88332d6cd441261ebb22342e238296bb330968952fbb3a6a"}, |  | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
|  | @ -1051,20 +1039,20 @@ testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "isort" | name = "isort" | ||||||
| version = "4.3.21" | version = "5.12.0" | ||||||
| description = "A Python utility / library to sort Python imports." | description = "A Python utility / library to sort Python imports." | ||||||
| optional = false | optional = false | ||||||
| python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" | python-versions = ">=3.8.0" | ||||||
| files = [ | files = [ | ||||||
|     {file = "isort-4.3.21-py2.py3-none-any.whl", hash = "sha256:6e811fcb295968434526407adb8796944f1988c5b65e8139058f2014cbe100fd"}, |     {file = "isort-5.12.0-py3-none-any.whl", hash = "sha256:f84c2818376e66cf843d497486ea8fed8700b340f308f076c6fb1229dff318b6"}, | ||||||
|     {file = "isort-4.3.21.tar.gz", hash = "sha256:54da7e92468955c4fceacd0c86bd0ec997b0e1ee80d97f67c35a78b719dccab1"}, |     {file = "isort-5.12.0.tar.gz", hash = "sha256:8bef7dde241278824a6d83f44a544709b065191b95b6e50894bdc722fcba0504"}, | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [package.extras] | [package.extras] | ||||||
| pipfile = ["pipreqs", "requirementslib"] | colors = ["colorama (>=0.4.3)"] | ||||||
| pyproject = ["toml"] | pipfile-deprecated-finder = ["pip-shims (>=0.5.2)", "pipreqs", "requirementslib"] | ||||||
| requirements = ["pip-api", "pipreqs"] | plugins = ["setuptools"] | ||||||
| xdg-home = ["appdirs (>=1.4.0)"] | requirements-deprecated-finder = ["pip-api", "pipreqs"] | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "jinja2" | name = "jinja2" | ||||||
|  | @ -1422,13 +1410,13 @@ tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "pa | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "platformdirs" | name = "platformdirs" | ||||||
| version = "3.8.1" | version = "3.9.1" | ||||||
| description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." | description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." | ||||||
| optional = false | optional = false | ||||||
| python-versions = ">=3.7" | python-versions = ">=3.7" | ||||||
| files = [ | files = [ | ||||||
|     {file = "platformdirs-3.8.1-py3-none-any.whl", hash = "sha256:cec7b889196b9144d088e4c57d9ceef7374f6c39694ad1577a0aab50d27ea28c"}, |     {file = "platformdirs-3.9.1-py3-none-any.whl", hash = "sha256:ad8291ae0ae5072f66c16945166cb11c63394c7a3ad1b1bc9828ca3162da8c2f"}, | ||||||
|     {file = "platformdirs-3.8.1.tar.gz", hash = "sha256:f87ca4fcff7d2b0f81c6a748a77973d7af0f4d526f98f308477c3c436c74d528"}, |     {file = "platformdirs-3.9.1.tar.gz", hash = "sha256:1b42b450ad933e981d56e59f1b97495428c9bd60698baab9f3eb3d00d5822421"}, | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [package.extras] | [package.extras] | ||||||
|  | @ -1586,13 +1574,13 @@ plugins = ["importlib-metadata"] | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "pyjwt" | name = "pyjwt" | ||||||
| version = "2.7.0" | version = "2.8.0" | ||||||
| description = "JSON Web Token implementation in Python" | description = "JSON Web Token implementation in Python" | ||||||
| optional = false | optional = false | ||||||
| python-versions = ">=3.7" | python-versions = ">=3.7" | ||||||
| files = [ | files = [ | ||||||
|     {file = "PyJWT-2.7.0-py3-none-any.whl", hash = "sha256:ba2b425b15ad5ef12f200dc67dd56af4e26de2331f965c5439994dad075876e1"}, |     {file = "PyJWT-2.8.0-py3-none-any.whl", hash = "sha256:59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320"}, | ||||||
|     {file = "PyJWT-2.7.0.tar.gz", hash = "sha256:bd6ca4a3c4285c1a2d4349e5a035fdf8fb94e04ccd0fcbe6ba289dae9cc3e074"}, |     {file = "PyJWT-2.8.0.tar.gz", hash = "sha256:57e28d156e3d5c10088e0c68abb90bfac3df82b40a71bd0daa20c65ccd5c23de"}, | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [package.dependencies] | [package.dependencies] | ||||||
|  | @ -1996,13 +1984,13 @@ files = [ | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "urllib3" | name = "urllib3" | ||||||
| version = "2.0.3" | version = "2.0.4" | ||||||
| description = "HTTP library with thread-safe connection pooling, file post, and more." | description = "HTTP library with thread-safe connection pooling, file post, and more." | ||||||
| optional = false | optional = false | ||||||
| python-versions = ">=3.7" | python-versions = ">=3.7" | ||||||
| files = [ | files = [ | ||||||
|     {file = "urllib3-2.0.3-py3-none-any.whl", hash = "sha256:48e7fafa40319d358848e1bc6809b208340fafe2096f1725d05d67443d0483d1"}, |     {file = "urllib3-2.0.4-py3-none-any.whl", hash = "sha256:de7df1803967d2c2a98e4b11bb7d6bd9210474c46e8a0401514e3a42a75ebde4"}, | ||||||
|     {file = "urllib3-2.0.3.tar.gz", hash = "sha256:bee28b5e56addb8226c96f7f13ac28cb4c301dd5ea8a6ca179c0b9835e032825"}, |     {file = "urllib3-2.0.4.tar.gz", hash = "sha256:8d22f86aae8ef5e410d4f539fde9ce6b2113a001bb4d189e0aed70642d602b11"}, | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [package.extras] | [package.extras] | ||||||
|  | @ -2137,20 +2125,20 @@ multidict = ">=4.0" | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "zipp" | name = "zipp" | ||||||
| version = "3.15.0" | version = "3.16.2" | ||||||
| description = "Backport of pathlib-compatible object wrapper for zip files" | description = "Backport of pathlib-compatible object wrapper for zip files" | ||||||
| optional = false | optional = false | ||||||
| python-versions = ">=3.7" | python-versions = ">=3.8" | ||||||
| files = [ | files = [ | ||||||
|     {file = "zipp-3.15.0-py3-none-any.whl", hash = "sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556"}, |     {file = "zipp-3.16.2-py3-none-any.whl", hash = "sha256:679e51dd4403591b2d6838a48de3d283f3d188412a9782faadf845f298736ba0"}, | ||||||
|     {file = "zipp-3.15.0.tar.gz", hash = "sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b"}, |     {file = "zipp-3.16.2.tar.gz", hash = "sha256:ebc15946aa78bd63458992fc81ec3b6f7b1e92d51c35e6de1c3804e73b799147"}, | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [package.extras] | [package.extras] | ||||||
| docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] | docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] | ||||||
| testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] | testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"] | ||||||
| 
 | 
 | ||||||
| [metadata] | [metadata] | ||||||
| lock-version = "2.0" | lock-version = "2.0" | ||||||
| python-versions = "^3.8" | python-versions = "^3.8" | ||||||
| content-hash = "25e51b747173bcb8fede3b14ee9c76c3bbce20bbf98aa906a08a74598471a4cc" | content-hash = "8806d6bd5053ee7a90c76f20d25131e48bfd427d53d7474e851aeb6ee150e6b8" | ||||||
|  |  | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| [tool.poetry] | [tool.poetry] | ||||||
| name = "gva" | name = "gva" | ||||||
| version = "0.13.0" | version = "0.14.0" | ||||||
| description = "gnuviechadmin web interface" | description = "gnuviechadmin web interface" | ||||||
| authors = ["Jan Dittberner <jan@dittberner.info>"] | authors = ["Jan Dittberner <jan@dittberner.info>"] | ||||||
| license = "AGPL-3+" | license = "AGPL-3+" | ||||||
|  | @ -25,6 +25,7 @@ markdown = "^3.4.3" | ||||||
| django-filter = "^23.1" | django-filter = "^23.1" | ||||||
| crispy-bootstrap5 = "^0.7" | crispy-bootstrap5 = "^0.7" | ||||||
| python-magic = "^0.4.27" | python-magic = "^0.4.27" | ||||||
|  | isort = "^5.12.0" | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| [tool.poetry.group.dev.dependencies] | [tool.poetry.group.dev.dependencies] | ||||||
|  | @ -34,7 +35,6 @@ releases = "^2.0.0" | ||||||
| sphinxcontrib-blockdiag = "^3.0.0" | sphinxcontrib-blockdiag = "^3.0.0" | ||||||
| pylama = "^8.4.1" | pylama = "^8.4.1" | ||||||
| black = {extras = ["d"], version = "^23.3.0"} | black = {extras = ["d"], version = "^23.3.0"} | ||||||
| isort = "<5" |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| [[tool.poetry.source]] | [[tool.poetry.source]] | ||||||
|  | @ -43,6 +43,13 @@ url = "https://pypi.gnuviech-server.de/simple" | ||||||
| priority = "explicit" | priority = "explicit" | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | [tool.isort] | ||||||
|  | profile = "black" | ||||||
|  | known_django = ["django","model_utils"] | ||||||
|  | known_drf = ["rest_framework"] | ||||||
|  | known_celery = ["celery"] | ||||||
|  | sections = ["FUTURE", "STDLIB", "DJANGO", "DRF", "CELERY", "THIRDPARTY", "FIRSTPARTY", "LOCALFOLDER"] | ||||||
|  | 
 | ||||||
| [build-system] | [build-system] | ||||||
| requires = ["poetry-core"] | requires = ["poetry-core"] | ||||||
| build-backend = "poetry.core.masonry.api" | build-backend = "poetry.core.masonry.api" | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue