Repair docs (html, md). Update docstrings
This commit is contained in:
parent
e264750187
commit
6a4ad48577
125 changed files with 3706 additions and 4913 deletions
158
SRV/docs/_build/html/api/endpoints/auth.html
vendored
158
SRV/docs/_build/html/api/endpoints/auth.html
vendored
|
|
@ -172,7 +172,7 @@
|
|||
<svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
|
||||
</button>
|
||||
</div>
|
||||
<label class="toc-overlay-icon toc-header-icon" for="__toc">
|
||||
<label class="toc-overlay-icon toc-header-icon no-toc" for="__toc">
|
||||
<span class="icon"><svg><use href="#svg-toc"></use></svg></span>
|
||||
</label>
|
||||
</div>
|
||||
|
|
@ -276,112 +276,143 @@
|
|||
<svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
|
||||
</button>
|
||||
</div>
|
||||
<label class="toc-overlay-icon toc-content-icon" for="__toc">
|
||||
<label class="toc-overlay-icon toc-content-icon no-toc" for="__toc">
|
||||
<span class="icon"><svg><use href="#svg-toc"></use></svg></span>
|
||||
</label>
|
||||
</div>
|
||||
<article role="main" id="furo-main-content">
|
||||
<section id="module-api.v1.auth">
|
||||
<span id="api-v1-auth"></span><h1>api.v1.auth<a class="headerlink" href="#module-api.v1.auth" title="Link to this heading">¶</a></h1>
|
||||
<section id="api-v1-auth">
|
||||
<h1>api.v1.auth<a class="headerlink" href="#api-v1-auth" title="Link to this heading">¶</a></h1>
|
||||
<dl class="py function">
|
||||
<dt class="sig sig-object py" id="api.v1.auth.check_users_file">
|
||||
<em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">api.v1.auth.</span></span><span class="sig-name descname"><span class="pre">check_users_file</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">translations</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Translations</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">Depends(translations_dependency)</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/api/v1/auth.html#check_users_file"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#api.v1.auth.check_users_file" title="Link to this definition">¶</a></dt>
|
||||
<dt class="sig sig-object py">
|
||||
<em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">api.v1.auth.</span></span><span class="sig-name descname"><span class="pre">check_users_file</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">translations</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Translations</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">Depends(translations_dependency)</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/api/v1/auth.html#check_users_file"><span class="viewcode-link"><span class="pre">[source]</span></span></a></dt>
|
||||
<dd><p>Проверяет, существует ли файл users.json и содержит ли он пользователей.</p>
|
||||
<p>Возвращает информацию о состоянии файла и наличии пользователей.</p>
|
||||
<dl class="simple">
|
||||
<dt>Returns:</dt><dd><dl class="simple">
|
||||
<dt>dict: Словарь с ключами:</dt><dd><ul class="simple">
|
||||
<li><p>“exists” (bool): Существует ли файл.</p></li>
|
||||
<li><p>“has_users” (bool): Содержит ли файл пользователей.</p></li>
|
||||
<li><p>“message” (str): Сообщение с описанием результата.</p></li>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Returns<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p><dl class="simple">
|
||||
<dt>Словарь с ключами:</dt><dd><ul class="simple">
|
||||
<li><p>”exists” (bool): Существует ли файл.</p></li>
|
||||
<li><p>”has_users” (bool): Содержит ли файл пользователей.</p></li>
|
||||
<li><p>”message” (str): Сообщение с описанием результата.</p></li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
</p>
|
||||
</dd>
|
||||
<dt>Raises:</dt><dd><p>HTTPException: Если произошла ошибка при проверке файла (status_code=500).</p>
|
||||
<dt class="field-even">Return type<span class="colon">:</span></dt>
|
||||
<dd class="field-even"><p>dict</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Raises<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p><strong>HTTPException</strong> – Если произошла ошибка при проверке файла (status_code=500).</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt class="sig sig-object py" id="api.v1.auth.get_current_user">
|
||||
<em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">api.v1.auth.</span></span><span class="sig-name descname"><span class="pre">get_current_user</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">request</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Request</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">translations</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Translations</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">Depends(translations_dependency)</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/api/v1/auth.html#get_current_user"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#api.v1.auth.get_current_user" title="Link to this definition">¶</a></dt>
|
||||
<dt class="sig sig-object py">
|
||||
<em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">api.v1.auth.</span></span><span class="sig-name descname"><span class="pre">get_current_user</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">request</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Request</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">translations</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Translations</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">Depends(translations_dependency)</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/api/v1/auth.html#get_current_user"><span class="viewcode-link"><span class="pre">[source]</span></span></a></dt>
|
||||
<dd><p>Возвращает данные текущего пользователя и токен.</p>
|
||||
<p>Проверяет активную сессию по client_id и возвращает информацию о пользователе
|
||||
и токен для дальнейшего использования.</p>
|
||||
<dl class="simple">
|
||||
<dt>Args:</dt><dd><p>request (Request): Объект запроса для получения client_id (IP-адрес клиента).
|
||||
translations: Объект переводов для текущего языка.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><ul class="simple">
|
||||
<li><p><strong>request</strong> (<em>Request</em>) – Объект запроса для получения client_id (IP-адрес клиента).</p></li>
|
||||
<li><p><strong>translations</strong> – Объект переводов для текущего языка.</p></li>
|
||||
</ul>
|
||||
</dd>
|
||||
<dt>Returns:</dt><dd><dl class="simple">
|
||||
<dt>dict: Словарь с ключами “user” (UserResponse), “access_token” (str) и</dt><dd><p>“token_type” (str, всегда “bearer”).</p>
|
||||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||||
<dd class="field-even"><p><dl class="simple">
|
||||
<dt>Словарь с ключами “user” (UserResponse), “access_token” (str) и</dt><dd><p>”token_type” (str, всегда “bearer”).</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</p>
|
||||
</dd>
|
||||
<dt>Raises:</dt><dd><dl class="simple">
|
||||
<dt>HTTPException: Если сессия не найдена или истекла (status_code=401) или</dt><dd><p>произошла внутренняя ошибка (status_code=500).</p>
|
||||
<dt class="field-odd">Return type<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p>dict</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dt class="field-even">Raises<span class="colon">:</span></dt>
|
||||
<dd class="field-even"><p><strong>HTTPException</strong> – Если сессия не найдена или истекла (status_code=401) или
|
||||
произошла внутренняя ошибка (status_code=500).</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt class="sig sig-object py" id="api.v1.auth.login">
|
||||
<em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">api.v1.auth.</span></span><span class="sig-name descname"><span class="pre">login</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">user</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="../models/auth.html#models.auth.UserLogin" title="models.auth.UserLogin"><span class="pre">UserLogin</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">request</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Request</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">translations</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Translations</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">Depends(translations_dependency)</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/api/v1/auth.html#login"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#api.v1.auth.login" title="Link to this definition">¶</a></dt>
|
||||
<dt class="sig sig-object py">
|
||||
<em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">api.v1.auth.</span></span><span class="sig-name descname"><span class="pre">login</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">user</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">UserLogin</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">request</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Request</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">translations</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Translations</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">Depends(translations_dependency)</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/api/v1/auth.html#login"><span class="viewcode-link"><span class="pre">[source]</span></span></a></dt>
|
||||
<dd><p>Авторизует пользователя и создаёт сессию.</p>
|
||||
<p>Проверяет учетные данные пользователя и возвращает токен и session_id для
|
||||
последующей авторизации.</p>
|
||||
<dl class="simple">
|
||||
<dt>Args:</dt><dd><p>user (UserLogin): Объект с данными для входа (username, password).
|
||||
request (Request): Объект запроса для получения client_id (IP-адрес клиента).
|
||||
translations: Объект переводов для текущего языка.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><ul class="simple">
|
||||
<li><p><strong>user</strong> (<em>UserLogin</em>) – Объект с данными для входа (username, password).</p></li>
|
||||
<li><p><strong>request</strong> (<em>Request</em>) – Объект запроса для получения client_id (IP-адрес клиента).</p></li>
|
||||
<li><p><strong>translations</strong> – Объект переводов для текущего языка.</p></li>
|
||||
</ul>
|
||||
</dd>
|
||||
<dt>Returns:</dt><dd><p>Token: Объект с access_token и session_id для авторизации.</p>
|
||||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||||
<dd class="field-even"><p>Объект с access_token и session_id для авторизации.</p>
|
||||
</dd>
|
||||
<dt>Raises:</dt><dd><dl class="simple">
|
||||
<dt>HTTPException: Если учетные данные неверны (status_code=401) или произошла</dt><dd><p>внутренняя ошибка (status_code=500).</p>
|
||||
<dt class="field-odd">Return type<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p>Token</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dt class="field-even">Raises<span class="colon">:</span></dt>
|
||||
<dd class="field-even"><p><strong>HTTPException</strong> – Если учетные данные неверны (status_code=401) или произошла
|
||||
внутренняя ошибка (status_code=500).</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt class="sig sig-object py" id="api.v1.auth.logout">
|
||||
<em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">api.v1.auth.</span></span><span class="sig-name descname"><span class="pre">logout</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">request</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Request</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">translations</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Translations</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">Depends(translations_dependency)</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/api/v1/auth.html#logout"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#api.v1.auth.logout" title="Link to this definition">¶</a></dt>
|
||||
<dt class="sig sig-object py">
|
||||
<em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">api.v1.auth.</span></span><span class="sig-name descname"><span class="pre">logout</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">request</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Request</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">translations</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Translations</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">Depends(translations_dependency)</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/api/v1/auth.html#logout"><span class="viewcode-link"><span class="pre">[source]</span></span></a></dt>
|
||||
<dd><p>Выход из системы, удаление сессии.</p>
|
||||
<p>Удаляет активную сессию пользователя по client_id.</p>
|
||||
<dl class="simple">
|
||||
<dt>Args:</dt><dd><p>request (Request): Объект запроса для получения client_id (IP-адрес клиента).
|
||||
translations: Объект переводов для текущего языка.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><ul class="simple">
|
||||
<li><p><strong>request</strong> (<em>Request</em>) – Объект запроса для получения client_id (IP-адрес клиента).</p></li>
|
||||
<li><p><strong>translations</strong> – Объект переводов для текущего языка.</p></li>
|
||||
</ul>
|
||||
</dd>
|
||||
<dt>Returns:</dt><dd><p>dict: Пустой словарь или сообщение об успешном выходе.</p>
|
||||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||||
<dd class="field-even"><p>Пустой словарь или сообщение об успешном выходе.</p>
|
||||
</dd>
|
||||
<dt>Raises:</dt><dd><dl class="simple">
|
||||
<dt>HTTPException: Если сессия не найдена (status_code=401) или произошла</dt><dd><p>внутренняя ошибка (status_code=500).</p>
|
||||
<dt class="field-odd">Return type<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p>dict</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dt class="field-even">Raises<span class="colon">:</span></dt>
|
||||
<dd class="field-even"><p><strong>HTTPException</strong> – Если сессия не найдена (status_code=401) или произошла
|
||||
внутренняя ошибка (status_code=500).</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt class="sig sig-object py" id="api.v1.auth.register">
|
||||
<em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">api.v1.auth.</span></span><span class="sig-name descname"><span class="pre">register</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">user</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="../models/auth.html#models.auth.UserCreate" title="models.auth.UserCreate"><span class="pre">UserCreate</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">translations</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Translations</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">Depends(translations_dependency)</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/api/v1/auth.html#register"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#api.v1.auth.register" title="Link to this definition">¶</a></dt>
|
||||
<dt class="sig sig-object py">
|
||||
<em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">api.v1.auth.</span></span><span class="sig-name descname"><span class="pre">register</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">user</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">UserCreate</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">translations</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Translations</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">Depends(translations_dependency)</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/api/v1/auth.html#register"><span class="viewcode-link"><span class="pre">[source]</span></span></a></dt>
|
||||
<dd><p>Регистрирует нового пользователя.</p>
|
||||
<p>Создаёт нового пользователя на основе предоставленных данных и возвращает
|
||||
информацию о зарегистрированном пользователе.</p>
|
||||
<dl class="simple">
|
||||
<dt>Args:</dt><dd><p>user (UserCreate): Объект с данными нового пользователя (username, password, is_admin).
|
||||
translations: Объект переводов для текущего языка.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><ul class="simple">
|
||||
<li><p><strong>user</strong> (<em>UserCreate</em>) – Объект с данными нового пользователя (username, password, is_admin).</p></li>
|
||||
<li><p><strong>translations</strong> – Объект переводов для текущего языка.</p></li>
|
||||
</ul>
|
||||
</dd>
|
||||
<dt>Returns:</dt><dd><p>UserResponse: Объект с данными зарегистрированного пользователя (id, username, is_admin).</p>
|
||||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||||
<dd class="field-even"><p>Объект с данными зарегистрированного пользователя (id, username, is_admin).</p>
|
||||
</dd>
|
||||
<dt>Raises:</dt><dd><dl class="simple">
|
||||
<dt>HTTPException: Если пользователь уже существует (status_code=400) или произошла</dt><dd><p>внутренняя ошибка (status_code=500).</p>
|
||||
<dt class="field-odd">Return type<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p>UserResponse</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dt class="field-even">Raises<span class="colon">:</span></dt>
|
||||
<dd class="field-even"><p><strong>HTTPException</strong> – Если пользователь уже существует (status_code=400) или произошла
|
||||
внутренняя ошибка (status_code=500).</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
|
@ -431,32 +462,9 @@ translations: Объект переводов для текущего языка
|
|||
|
||||
</footer>
|
||||
</div>
|
||||
<aside class="toc-drawer">
|
||||
<aside class="toc-drawer no-toc">
|
||||
|
||||
|
||||
<div class="toc-sticky toc-scroll">
|
||||
<div class="toc-title-container">
|
||||
<span class="toc-title">
|
||||
On this page
|
||||
</span>
|
||||
</div>
|
||||
<div class="toc-tree-container">
|
||||
<div class="toc-tree">
|
||||
<ul>
|
||||
<li><a class="reference internal" href="#">api.v1.auth</a><ul>
|
||||
<li><a class="reference internal" href="#api.v1.auth.check_users_file"><code class="docutils literal notranslate"><span class="pre">check_users_file()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#api.v1.auth.get_current_user"><code class="docutils literal notranslate"><span class="pre">get_current_user()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#api.v1.auth.login"><code class="docutils literal notranslate"><span class="pre">login()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#api.v1.auth.logout"><code class="docutils literal notranslate"><span class="pre">logout()</span></code></a></li>
|
||||
<li><a class="reference internal" href="#api.v1.auth.register"><code class="docutils literal notranslate"><span class="pre">register()</span></code></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</aside>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue