Compare commits

..

14 Commits

Author SHA1 Message Date
f4fc74dc76 fixed for flake 2025-06-12 12:32:59 +02:00
ebe2a46cda fixed for flake 2025-06-12 11:31:07 +02:00
14e37a5017 fixed author permissions for comment 2025-06-12 09:57:03 +02:00
e442eac8a5 fixed author permission on issue 2025-06-12 09:44:43 +02:00
8778a088e6 added flake, report, updated requirements 2025-06-10 16:07:12 +02:00
6ffd3ed533 fixed style 2025-06-10 15:41:07 +02:00
a4c876132e clean responses messages; create doc 2025-06-10 15:33:30 +02:00
e8c62e9a83 remove test, queryset on /project ok 2025-06-06 15:52:44 +02:00
b8ad1961d1 just test exceptions for a wrong value in query 2025-06-06 13:55:09 +02:00
79e577acd2 fix call to removed viewset, fix filter on comment 2025-06-06 11:55:41 +02:00
5eb0be8003 removed Contributor`s viewset 2025-06-06 10:54:28 +02:00
c171a98a30 fixed patch issue 2025-06-06 10:17:14 +02:00
c059b88101 refactor permissions 2025-06-06 08:28:45 +02:00
b94c058598 querystring validation ok 2025-05-30 11:16:03 +02:00
61 changed files with 6260 additions and 165 deletions

303
README.md
View File

@@ -53,12 +53,308 @@ python manage.py migrate
```
python manage.py runserver
```
## Use
___
## Usage
URL is : http://127.0.0.1:8000
Endpoints and methods are coming soon
**URL:** http://127.0.0.1:8000
**Authentication :**
Without authentication (no token):
- you can create a user
- you can get the project's list
For any other action a token is required
To get details of a project you must be contributor
To create/get detail of issue or to create/get detail of comment you must be contributor to the project
User's management:
-----
### *User create:*
-> `POST /api/user/create/`
<- `201_CREATED` ; `400_BAD_REQUEST`
```
params:
{
"username": str,
"email": str,
"password": str,
"password2": str,
"age": int,
"can_be_contacted": boolean,
"can_data_be_shared": boolean
}
```
### *User info:*
*token required*
-> `GET /api/user/`
<- `200_OK / data`
### *User update:*
*token required*
-> `PATCH /api/user/`
<- `201_CREATED`; `400_BAD_REQUEST`
```
params:
{
"email": str,
"can_be_contacted": boolean,
"can_data_be_shared": boolean
}
```
### *Password update:*
-> `GET /api/user/password-update/`
<- `204_NO_CONTENT`; `400_BAD_REQUEST`
```
params:
{
"old_password": str,
"new_password": str,
}
```
### *Delete a user*
*token required*
-> `DELETE /api/user/`
<- `204_NO_CONTENT`; `401_UNAUTHORIZED`
```
params:
{
"user": str
}
```
### *Get token*
-> `POST /api/token/`
<- `200_OK`
```
params
{
"username": str,
"password": str,
}
response
{
"refresh": "xxxxx",
"access": "xxxx"
}
```
### *Refresh token*
-> `POST /api/token/refresh/`
<- `200_OK`
```
params
{
"username": str,
"password": str,
"refresh": "xxxxxx"
}
response
{
"refresh": "xxxxx",
"access": "xxxx"
}
```
Project:
---
### *Retrieve the list of projects*
-> `GET /api/project/`
<- `200_OK / data`; `403_FORBIDDEN`
```
querystrings
?contributor={user}
?author={user}
```
### *Create a project*
-> `POST /api/project/`
<- `200_OK / data`; `403_FORBIDDEN`
```
params:
{
"title": str,
"type":
"choices": [
{
"value": "BackEnd",
},
{
"value": "FrontEnd",
},
{
"value": "iOS",
},
{
"value": "Android",
},
"description": str,
}
```
### *Get project's detail*
*token required*
-> `GET /api/project/{id}/`
<- `200_OK / data`; `403_FORBIDDEN`
### *Update a project*
*token required*
-> `PATCH /api/project/{id}/`
<- `200_OK / data`; `403_FORBIDDEN`
```
params:
{
"title": str,
"type":
"choices": [
{
"value": "BackEnd",
},
{
"value": "FrontEnd",
},
{
"value": "iOS",
},
{
"value": "Android",
},
"description": str,
}
```
### *Add a contributor to a project*
*token required*
-> `PATCH /api/project/{id}/contributor/`
<- `202_ACCEPTED`; `403_FORBIDDEN`
```
params:
{
"contributor": {username}
}
```
### *Delete a project*
*token required*
-> `DELETE /api/project/{id}/`
<- `204_NO_CONTENT`; `403_FORBIDDEN`
Issue:
---
### *List issues (where requestor is contributor)*
*token required*
-> `GET /api/issue/`
<- `200_OK`
### *Create an issue*
*token required*
-> `POST /api/issue/`
<- `201_CREATED / data`; `403_FORBIDDEN`
```
params:
{
"title": str,
"project": int,
"description": str,
"priority":
"choices": [
{
"value": "Low",
},
{
"value": "Medium",
},
{
"value": "High",
}
]
"tag":
"choices": [
{
"value": "Bug",
},
{
"value": "Feature",
},
{
"value": "Task",
}
]
"status":
"choices": [
{
"value": "ToDo",
},
{
"value": "In Progress",
},
{
"value": "Finished",,
}
]
}
```
### *Update an issue*
*token required*
-> `PATCH /api/issue/{id}/`
<- `200_OK / data`; `403_FORBIDDEN`
/!\ Only the author of an issue can affect it
(update to another author)
### *Delete an issue*
*token required*
-> `DELETE /api/issue/{id}/`
<- `204_NO_CONTENT`; `403_FORBIDDEN`
### *Retrieve contributors for a given issue*
*token required*
-> `GET /api/issue/{id}/contributors/`
<- `200_OK`; `403_FORBIDDEN`
Comment:
---
### *Create a comment*
*token required*
-> `POST /api/comment/`
<- `201_CREATED / data`; `403_FORBIDDEN`
```
params:
{
"title": str,
"issue": int,
"description": str
}
```
### *Update a comment*
*token required*
-> `PATCH /api/comment/{id}/`
<- `200_OK / data`; `403_FORBIDDEN`
### *Delete a comment*
*token required*
-> `DELETE /api/comment/{id}/`
<- `204_NO_CONTENT`; `403_FORBIDDEN`
___
## Author
YaL <yann@needsome.coffee>
@@ -67,3 +363,4 @@ YaL <yann@needsome.coffee>
MIT License
Copyright (c) 2025

73
flake-report/back.svg Normal file
View File

@@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="32"
height="48"
viewBox="0 0 32 48"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="back.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#3d3d3d"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="4"
inkscape:cx="47.245066"
inkscape:cy="13.218734"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
width="32px"
inkscape:window-width="1535"
inkscape:window-height="876"
inkscape:window-x="65"
inkscape:window-y="24"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1004.3622)">
<g
id="g5305"
transform="translate(0,-3.5)">
<path
inkscape:connector-curvature="0"
id="path5301"
d="M 15.577993,1039.1732 4.7040093,1028.3079 15.469253,1017.5512"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path5303"
d="m 4.921489,1028.3622 26.53252,0"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

64
flake-report/file.svg Normal file
View File

@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="32"
height="48"
viewBox="0 0 32 48"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="file.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#3d3d3d"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="24.812518"
inkscape:cy="18.901073"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
width="32px"
inkscape:window-width="1535"
inkscape:window-height="876"
inkscape:window-x="65"
inkscape:window-y="24"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1004.3622)">
<path
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 4.1360619,1007.3622 0,34.375 23.7278761,0 0,-29.9038 -4.471158,-4.4712 -19.2567181,0 z m 18.5469091,0.6084 4.471159,4.4712 -4.471159,0 0,-4.4712 z m -16.6202866,7.8079 19.8746316,0 0,1.8252 -19.8746316,0 0,-1.8252 z m 0,3.2448 19.8746316,0 0,1.8253 -19.8746316,0 0,-1.8253 z m 0,6.0841 19.8746316,0 0,1.8252 -19.8746316,0 0,-1.8252 z m 0,8.2135 19.8746316,0 0,1.8252 -19.8746316,0 0,-1.8252 z"
id="path4749"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

209
flake-report/index.html Normal file
View File

@@ -0,0 +1,209 @@
<!DOCTYPE html>
<html>
<head>
<title>flake8 violations</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="masthead" class="sev-1"></div>
<div id="page">
<h1>flake8 violations</h1>
<p id="versions">Generated on 2025-06-10 16:06
with Installed plugins: flake8-html: 0.4.3, mccabe: 0.7.0, pycodestyle: 2.13.0, pyflakes: 3.3.2
</p>
<ul id="index">
<li>
<a href="softdesk.authentication.tests.report.html">
<span class="count sev-1">
1
</span>
softdesk/authentication/tests.py
</a>
</li>
<li>
<a href="softdesk.support.tests.report.html">
<span class="count sev-1">
1
</span>
softdesk/support/tests.py
</a>
</li>
<li>
<a href="softdesk.support.migrations.0001_initial.report.html">
<span class="count sev-2">
17
</span>
softdesk/support/migrations/0001_initial.py
</a>
</li>
<li>
<a href="softdesk.authentication.migrations.0001_initial.report.html">
<span class="count sev-2">
13
</span>
softdesk/authentication/migrations/0001_initial.py
</a>
</li>
<li>
<a href="softdesk.softdesk.settings.report.html">
<span class="count sev-2">
11
</span>
softdesk/softdesk/settings.py
</a>
</li>
<li>
<a href="softdesk.support.migrations.0010_alter_comment_author_alter_issue_author_and_more.report.html">
<span class="count sev-2">
7
</span>
softdesk/support/migrations/0010_alter_comment_author_alter_issue_author_and_more.py
</a>
</li>
<li>
<a href="softdesk.support.admin.report.html">
<span class="count sev-2">
3
</span>
softdesk/support/admin.py
</a>
</li>
<li>
<a href="softdesk.support.migrations.0011_alter_issue_priority_alter_issue_status_and_more.report.html">
<span class="count sev-2">
3
</span>
softdesk/support/migrations/0011_alter_issue_priority_alter_issue_status_and_more.py
</a>
</li>
<li>
<a href="softdesk.support.migrations.0012_alter_issue_priority_alter_issue_status.report.html">
<span class="count sev-2">
2
</span>
softdesk/support/migrations/0012_alter_issue_priority_alter_issue_status.py
</a>
</li>
<li>
<a href="softdesk.support.migrations.0016_alter_issue_author_alter_project_author.report.html">
<span class="count sev-2">
2
</span>
softdesk/support/migrations/0016_alter_issue_author_alter_project_author.py
</a>
</li>
<li>
<a href="softdesk.authentication.admin.report.html">
<span class="count sev-2">
1
</span>
softdesk/authentication/admin.py
</a>
</li>
<li>
<a href="softdesk.support.migrations.0002_project_active_alter_issue_project.report.html">
<span class="count sev-2">
1
</span>
softdesk/support/migrations/0002_project_active_alter_issue_project.py
</a>
</li>
<li>
<a href="softdesk.support.migrations.0004_alter_project_author.report.html">
<span class="count sev-2">
1
</span>
softdesk/support/migrations/0004_alter_project_author.py
</a>
</li>
<li>
<a href="softdesk.support.migrations.0005_alter_project_author.report.html">
<span class="count sev-2">
1
</span>
softdesk/support/migrations/0005_alter_project_author.py
</a>
</li>
<li>
<a href="softdesk.support.migrations.0006_alter_project_author.report.html">
<span class="count sev-2">
1
</span>
softdesk/support/migrations/0006_alter_project_author.py
</a>
</li>
<li>
<a href="softdesk.support.migrations.0007_contributor_active_alter_project_author.report.html">
<span class="count sev-2">
1
</span>
softdesk/support/migrations/0007_contributor_active_alter_project_author.py
</a>
</li>
<li>
<a href="softdesk.support.migrations.0013_alter_issue_project.report.html">
<span class="count sev-2">
1
</span>
softdesk/support/migrations/0013_alter_issue_project.py
</a>
</li>
<li>
<a href="softdesk.support.migrations.0014_alter_issue_project.report.html">
<span class="count sev-2">
1
</span>
softdesk/support/migrations/0014_alter_issue_project.py
</a>
</li>
<li>
<a href="softdesk.support.migrations.0015_alter_project_author.report.html">
<span class="count sev-2">
1
</span>
softdesk/support/migrations/0015_alter_project_author.py
</a>
</li>
<li>
<a href="softdesk.support.migrations.0017_alter_projectcontributor_contributor.report.html">
<span class="count sev-2">
1
</span>
softdesk/support/migrations/0017_alter_projectcontributor_contributor.py
</a>
</li>
<li>
<a href="softdesk.support.permissions.report.html">
<span class="count sev-2">
1
</span>
softdesk/support/permissions.py
</a>
</li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,73 @@
<!DOCTYPE html>
<html>
<head>
<title>flake8 violations: softdesk/authentication/admin.py</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
<script>
function bindHandler(link) {
var code = link.getAttribute('data-code');
var key = location.pathname + '#' + code;
var ul = link.parentNode.querySelector('.details');
if (sessionStorage[key] != 'open') {
ul.style.display = 'none';
}
link.addEventListener('click', function (event) {
if (!ul.style.display || ul.style.display == 'none') {
ul.style.display = 'block';
sessionStorage[key] = 'open';
} else {
ul.style.display = 'none';
sessionStorage[key] = 'closed';
}
});
}
window.addEventListener('DOMContentLoaded', function () {
var links = document.querySelectorAll('#index > li > a');
for (var i = 0; i < links.length; i++) {
bindHandler(links[i]);
}
});
</script>
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<p id="srclink">
<a title="View full annotated source"
href="softdesk.authentication.admin.source.html">
<img src="file.svg" alt="&#x2261;">
</a></p>
<h1>
<a href="index.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/authentication/admin.py
</a>
</h1>
<ul id="index">
<li>
<a data-code="E265">
<span class="count sev-2">
1
</span>
<strong>E265:</strong> block comment should start with '# '
</a>
<ul class="details">
<li>
<a href="softdesk.authentication.admin.source.html#l1">
<tt><i>1</i> <span class="c1">#from django.contrib import admin</span></tt>
</a>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,41 @@
<!DOCTYPE html>
<html>
<head>
<title>softdesk/authentication/admin.py - flake8 annotated source</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<h1>
<a href="softdesk.authentication.admin.report.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/authentication/admin.py source
</a>
</h1>
<div id="doc">
<div id="l1"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E265
</span>
Block comment should start with '# '</li>
</ul><tt><i>1</i> <span class="c1">#from django.contrib import admin</span></tt>
</div>
<div id="l2"
class="code sev- "><tt><i>2</i> &nbsp;</tt>
</div>
<div id="l3"
class="code sev- "><tt><i>3</i> <span class="c1"># Register your models here.</span></tt>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,161 @@
<!DOCTYPE html>
<html>
<head>
<title>flake8 violations: softdesk/authentication/migrations/0001_initial.py</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
<script>
function bindHandler(link) {
var code = link.getAttribute('data-code');
var key = location.pathname + '#' + code;
var ul = link.parentNode.querySelector('.details');
if (sessionStorage[key] != 'open') {
ul.style.display = 'none';
}
link.addEventListener('click', function (event) {
if (!ul.style.display || ul.style.display == 'none') {
ul.style.display = 'block';
sessionStorage[key] = 'open';
} else {
ul.style.display = 'none';
sessionStorage[key] = 'closed';
}
});
}
window.addEventListener('DOMContentLoaded', function () {
var links = document.querySelectorAll('#index > li > a');
for (var i = 0; i < links.length; i++) {
bindHandler(links[i]);
}
});
</script>
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<p id="srclink">
<a title="View full annotated source"
href="softdesk.authentication.migrations.0001_initial.source.html">
<img src="file.svg" alt="&#x2261;">
</a></p>
<h1>
<a href="index.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/authentication/migrations/0001_initial.py
</a>
</h1>
<ul id="index">
<li>
<a data-code="E501">
<span class="count sev-2">
13
</span>
<strong>E501:</strong> line too long (117 > 79 characters)
(and 10 similar)
</a>
<ul class="details">
<li>
<p>Line too long (117 > 79 characters):</p>
<a href="softdesk.authentication.migrations.0001_initial.source.html#l21">
<tt><i>21</i> <span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">BigAutoField</span><span class="p">(</span><span class="n">auto_created</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">primary_key</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">serialize</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;ID&#39;</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (88 > 79 characters):</p>
<a href="softdesk.authentication.migrations.0001_initial.source.html#l22">
<tt><i>22</i> <span class="p">(</span><span class="s1">&#39;password&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">128</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;password&#39;</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (103 > 79 characters):</p>
<a href="softdesk.authentication.migrations.0001_initial.source.html#l23">
<tt><i>23</i> <span class="p">(</span><span class="s1">&#39;last_login&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">DateTimeField</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;last login&#39;</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (196 > 79 characters):</p>
<a href="softdesk.authentication.migrations.0001_initial.source.html#l24">
<tt><i>24</i> <span class="p">(</span><span class="s1">&#39;is_superuser&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">BooleanField</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">help_text</span><span class="o">=</span><span class="s1">&#39;Designates that this user has all permissions without explicitly assigning them.&#39;</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;superuser status&#39;</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (329 > 79 characters):</p>
<a href="softdesk.authentication.migrations.0001_initial.source.html#l25">
<tt><i>25</i> <span class="p">(</span><span class="s1">&#39;username&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">error_messages</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;unique&#39;</span><span class="p">:</span> <span class="s1">&#39;A user with that username already exists.&#39;</span><span class="p">},</span> <span class="n">help_text</span><span class="o">=</span><span class="s1">&#39;Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.&#39;</span><span class="p">,</span> <span class="n">max_length</span><span class="o">=</span><span class="mi">150</span><span class="p">,</span> <span class="n">unique</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">validators</span><span class="o">=</span><span class="p">[</span><span class="n">django</span><span class="o">.</span><span class="n">contrib</span><span class="o">.</span><span class="n">auth</span><span class="o">.</span><span class="n">validators</span><span class="o">.</span><span class="n">UnicodeUsernameValidator</span><span class="p">()],</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;username&#39;</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (104 > 79 characters):</p>
<a href="softdesk.authentication.migrations.0001_initial.source.html#l26">
<tt><i>26</i> <span class="p">(</span><span class="s1">&#39;first_name&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">max_length</span><span class="o">=</span><span class="mi">150</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;first name&#39;</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (102 > 79 characters):</p>
<a href="softdesk.authentication.migrations.0001_initial.source.html#l27">
<tt><i>27</i> <span class="p">(</span><span class="s1">&#39;last_name&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">max_length</span><span class="o">=</span><span class="mi">150</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;last name&#39;</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (103 > 79 characters):</p>
<a href="softdesk.authentication.migrations.0001_initial.source.html#l28">
<tt><i>28</i> <span class="p">(</span><span class="s1">&#39;email&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">EmailField</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">max_length</span><span class="o">=</span><span class="mi">254</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;email address&#39;</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (165 > 79 characters):</p>
<a href="softdesk.authentication.migrations.0001_initial.source.html#l29">
<tt><i>29</i> <span class="p">(</span><span class="s1">&#39;is_staff&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">BooleanField</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">help_text</span><span class="o">=</span><span class="s1">&#39;Designates whether the user can log into this admin site.&#39;</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;staff status&#39;</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (203 > 79 characters):</p>
<a href="softdesk.authentication.migrations.0001_initial.source.html#l30">
<tt><i>30</i> <span class="p">(</span><span class="s1">&#39;is_active&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">BooleanField</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">help_text</span><span class="o">=</span><span class="s1">&#39;Designates whether this user should be treated as active. Unselect this instead of deleting accounts.&#39;</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;active&#39;</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (117 > 79 characters):</p>
<a href="softdesk.authentication.migrations.0001_initial.source.html#l31">
<tt><i>31</i> <span class="p">(</span><span class="s1">&#39;date_joined&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">DateTimeField</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">utils</span><span class="o">.</span><span class="n">timezone</span><span class="o">.</span><span class="n">now</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;date joined&#39;</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (266 > 79 characters):</p>
<a href="softdesk.authentication.migrations.0001_initial.source.html#l35">
<tt><i>35</i> <span class="p">(</span><span class="s1">&#39;groups&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">ManyToManyField</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">help_text</span><span class="o">=</span><span class="s1">&#39;The groups this user belongs to. A user will get all permissions granted to each of their groups.&#39;</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;user_set&#39;</span><span class="p">,</span> <span class="n">related_query_name</span><span class="o">=</span><span class="s1">&#39;user&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;auth.group&#39;</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;groups&#39;</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (229 > 79 characters):</p>
<a href="softdesk.authentication.migrations.0001_initial.source.html#l36">
<tt><i>36</i> <span class="p">(</span><span class="s1">&#39;user_permissions&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">ManyToManyField</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">help_text</span><span class="o">=</span><span class="s1">&#39;Specific permissions for this user.&#39;</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;user_set&#39;</span><span class="p">,</span> <span class="n">related_query_name</span><span class="o">=</span><span class="s1">&#39;user&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;auth.permission&#39;</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;user permissions&#39;</span><span class="p">)),</span></tt>
</a>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,281 @@
<!DOCTYPE html>
<html>
<head>
<title>softdesk/authentication/migrations/0001_initial.py - flake8 annotated source</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<h1>
<a href="softdesk.authentication.migrations.0001_initial.report.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/authentication/migrations/0001_initial.py source
</a>
</h1>
<div id="doc">
<div id="l1"
class="code sev- "><tt><i>1</i> <span class="c1"># Generated by Django 5.2.1 on 2025-05-23 03:58</span></tt>
</div>
<div id="l2"
class="code sev- "><tt><i>2</i> &nbsp;</tt>
</div>
<div id="l3"
class="code sev- "><tt><i>3</i> <span class="kn">import</span><span class="w"> </span><span class="nn">django.contrib.auth.models</span></tt>
</div>
<div id="l4"
class="code sev- "><tt><i>4</i> <span class="kn">import</span><span class="w"> </span><span class="nn">django.contrib.auth.validators</span></tt>
</div>
<div id="l5"
class="code sev- "><tt><i>5</i> <span class="kn">import</span><span class="w"> </span><span class="nn">django.utils.timezone</span></tt>
</div>
<div id="l6"
class="code sev- "><tt><i>6</i> <span class="kn">from</span><span class="w"> </span><span class="nn">django.db</span><span class="w"> </span><span class="kn">import</span> <span class="n">migrations</span><span class="p">,</span> <span class="n">models</span></tt>
</div>
<div id="l7"
class="code sev- "><tt><i>7</i> &nbsp;</tt>
</div>
<div id="l8"
class="code sev- "><tt><i>8</i> &nbsp;</tt>
</div>
<div id="l9"
class="code sev- "><tt><i>9</i> <span class="k">class</span><span class="w"> </span><span class="nc">Migration</span><span class="p">(</span><span class="n">migrations</span><span class="o">.</span><span class="n">Migration</span><span class="p">):</span></tt>
</div>
<div id="l10"
class="code sev- "><tt><i>10</i> &nbsp;</tt>
</div>
<div id="l11"
class="code sev- "><tt><i>11</i> <span class="n">initial</span> <span class="o">=</span> <span class="kc">True</span></tt>
</div>
<div id="l12"
class="code sev- "><tt><i>12</i> &nbsp;</tt>
</div>
<div id="l13"
class="code sev- "><tt><i>13</i> <span class="n">dependencies</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l14"
class="code sev- "><tt><i>14</i> <span class="p">(</span><span class="s1">&#39;auth&#39;</span><span class="p">,</span> <span class="s1">&#39;0012_alter_user_first_name_max_length&#39;</span><span class="p">),</span></tt>
</div>
<div id="l15"
class="code sev- "><tt><i>15</i> <span class="p">]</span></tt>
</div>
<div id="l16"
class="code sev- "><tt><i>16</i> &nbsp;</tt>
</div>
<div id="l17"
class="code sev- "><tt><i>17</i> <span class="n">operations</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l18"
class="code sev- "><tt><i>18</i> <span class="n">migrations</span><span class="o">.</span><span class="n">CreateModel</span><span class="p">(</span></tt>
</div>
<div id="l19"
class="code sev- "><tt><i>19</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;User&#39;</span><span class="p">,</span></tt>
</div>
<div id="l20"
class="code sev- "><tt><i>20</i> <span class="n">fields</span><span class="o">=</span><span class="p">[</span></tt>
</div>
<div id="l21"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (117 > 79 characters)</li>
</ul><tt><i>21</i> <span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">BigAutoField</span><span class="p">(</span><span class="n">auto_created</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">primary_key</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">serialize</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;ID&#39;</span><span class="p">)),</span></tt>
</div>
<div id="l22"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (88 > 79 characters)</li>
</ul><tt><i>22</i> <span class="p">(</span><span class="s1">&#39;password&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">128</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;password&#39;</span><span class="p">)),</span></tt>
</div>
<div id="l23"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (103 > 79 characters)</li>
</ul><tt><i>23</i> <span class="p">(</span><span class="s1">&#39;last_login&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">DateTimeField</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;last login&#39;</span><span class="p">)),</span></tt>
</div>
<div id="l24"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (196 > 79 characters)</li>
</ul><tt><i>24</i> <span class="p">(</span><span class="s1">&#39;is_superuser&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">BooleanField</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">help_text</span><span class="o">=</span><span class="s1">&#39;Designates that this user has all permissions without explicitly assigning them.&#39;</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;superuser status&#39;</span><span class="p">)),</span></tt>
</div>
<div id="l25"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (329 > 79 characters)</li>
</ul><tt><i>25</i> <span class="p">(</span><span class="s1">&#39;username&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">error_messages</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;unique&#39;</span><span class="p">:</span> <span class="s1">&#39;A user with that username already exists.&#39;</span><span class="p">},</span> <span class="n">help_text</span><span class="o">=</span><span class="s1">&#39;Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.&#39;</span><span class="p">,</span> <span class="n">max_length</span><span class="o">=</span><span class="mi">150</span><span class="p">,</span> <span class="n">unique</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">validators</span><span class="o">=</span><span class="p">[</span><span class="n">django</span><span class="o">.</span><span class="n">contrib</span><span class="o">.</span><span class="n">auth</span><span class="o">.</span><span class="n">validators</span><span class="o">.</span><span class="n">UnicodeUsernameValidator</span><span class="p">()],</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;username&#39;</span><span class="p">)),</span></tt>
</div>
<div id="l26"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (104 > 79 characters)</li>
</ul><tt><i>26</i> <span class="p">(</span><span class="s1">&#39;first_name&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">max_length</span><span class="o">=</span><span class="mi">150</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;first name&#39;</span><span class="p">)),</span></tt>
</div>
<div id="l27"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (102 > 79 characters)</li>
</ul><tt><i>27</i> <span class="p">(</span><span class="s1">&#39;last_name&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">max_length</span><span class="o">=</span><span class="mi">150</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;last name&#39;</span><span class="p">)),</span></tt>
</div>
<div id="l28"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (103 > 79 characters)</li>
</ul><tt><i>28</i> <span class="p">(</span><span class="s1">&#39;email&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">EmailField</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">max_length</span><span class="o">=</span><span class="mi">254</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;email address&#39;</span><span class="p">)),</span></tt>
</div>
<div id="l29"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (165 > 79 characters)</li>
</ul><tt><i>29</i> <span class="p">(</span><span class="s1">&#39;is_staff&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">BooleanField</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">help_text</span><span class="o">=</span><span class="s1">&#39;Designates whether the user can log into this admin site.&#39;</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;staff status&#39;</span><span class="p">)),</span></tt>
</div>
<div id="l30"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (203 > 79 characters)</li>
</ul><tt><i>30</i> <span class="p">(</span><span class="s1">&#39;is_active&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">BooleanField</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">help_text</span><span class="o">=</span><span class="s1">&#39;Designates whether this user should be treated as active. Unselect this instead of deleting accounts.&#39;</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;active&#39;</span><span class="p">)),</span></tt>
</div>
<div id="l31"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (117 > 79 characters)</li>
</ul><tt><i>31</i> <span class="p">(</span><span class="s1">&#39;date_joined&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">DateTimeField</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">utils</span><span class="o">.</span><span class="n">timezone</span><span class="o">.</span><span class="n">now</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;date joined&#39;</span><span class="p">)),</span></tt>
</div>
<div id="l32"
class="code sev- "><tt><i>32</i> <span class="p">(</span><span class="s1">&#39;can_be_contacted&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">BooleanField</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">)),</span></tt>
</div>
<div id="l33"
class="code sev- "><tt><i>33</i> <span class="p">(</span><span class="s1">&#39;can_data_be_shared&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">BooleanField</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">)),</span></tt>
</div>
<div id="l34"
class="code sev- "><tt><i>34</i> <span class="p">(</span><span class="s1">&#39;age&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">IntegerField</span><span class="p">()),</span></tt>
</div>
<div id="l35"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (266 > 79 characters)</li>
</ul><tt><i>35</i> <span class="p">(</span><span class="s1">&#39;groups&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">ManyToManyField</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">help_text</span><span class="o">=</span><span class="s1">&#39;The groups this user belongs to. A user will get all permissions granted to each of their groups.&#39;</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;user_set&#39;</span><span class="p">,</span> <span class="n">related_query_name</span><span class="o">=</span><span class="s1">&#39;user&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;auth.group&#39;</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;groups&#39;</span><span class="p">)),</span></tt>
</div>
<div id="l36"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (229 > 79 characters)</li>
</ul><tt><i>36</i> <span class="p">(</span><span class="s1">&#39;user_permissions&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">ManyToManyField</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">help_text</span><span class="o">=</span><span class="s1">&#39;Specific permissions for this user.&#39;</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;user_set&#39;</span><span class="p">,</span> <span class="n">related_query_name</span><span class="o">=</span><span class="s1">&#39;user&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;auth.permission&#39;</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;user permissions&#39;</span><span class="p">)),</span></tt>
</div>
<div id="l37"
class="code sev- "><tt><i>37</i> <span class="p">],</span></tt>
</div>
<div id="l38"
class="code sev- "><tt><i>38</i> <span class="n">options</span><span class="o">=</span><span class="p">{</span></tt>
</div>
<div id="l39"
class="code sev- "><tt><i>39</i> <span class="s1">&#39;verbose_name&#39;</span><span class="p">:</span> <span class="s1">&#39;user&#39;</span><span class="p">,</span></tt>
</div>
<div id="l40"
class="code sev- "><tt><i>40</i> <span class="s1">&#39;verbose_name_plural&#39;</span><span class="p">:</span> <span class="s1">&#39;users&#39;</span><span class="p">,</span></tt>
</div>
<div id="l41"
class="code sev- "><tt><i>41</i> <span class="s1">&#39;abstract&#39;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span></tt>
</div>
<div id="l42"
class="code sev- "><tt><i>42</i> <span class="p">},</span></tt>
</div>
<div id="l43"
class="code sev- "><tt><i>43</i> <span class="n">managers</span><span class="o">=</span><span class="p">[</span></tt>
</div>
<div id="l44"
class="code sev- "><tt><i>44</i> <span class="p">(</span><span class="s1">&#39;objects&#39;</span><span class="p">,</span> <span class="n">django</span><span class="o">.</span><span class="n">contrib</span><span class="o">.</span><span class="n">auth</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">UserManager</span><span class="p">()),</span></tt>
</div>
<div id="l45"
class="code sev- "><tt><i>45</i> <span class="p">],</span></tt>
</div>
<div id="l46"
class="code sev- "><tt><i>46</i> <span class="p">),</span></tt>
</div>
<div id="l47"
class="code sev- "><tt><i>47</i> <span class="p">]</span></tt>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,73 @@
<!DOCTYPE html>
<html>
<head>
<title>flake8 violations: softdesk/authentication/tests.py</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
<script>
function bindHandler(link) {
var code = link.getAttribute('data-code');
var key = location.pathname + '#' + code;
var ul = link.parentNode.querySelector('.details');
if (sessionStorage[key] != 'open') {
ul.style.display = 'none';
}
link.addEventListener('click', function (event) {
if (!ul.style.display || ul.style.display == 'none') {
ul.style.display = 'block';
sessionStorage[key] = 'open';
} else {
ul.style.display = 'none';
sessionStorage[key] = 'closed';
}
});
}
window.addEventListener('DOMContentLoaded', function () {
var links = document.querySelectorAll('#index > li > a');
for (var i = 0; i < links.length; i++) {
bindHandler(links[i]);
}
});
</script>
</head>
<body>
<div id="masthead" class="sev-1"></div>
<div id="page">
<p id="srclink">
<a title="View full annotated source"
href="softdesk.authentication.tests.source.html">
<img src="file.svg" alt="&#x2261;">
</a></p>
<h1>
<a href="index.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/authentication/tests.py
</a>
</h1>
<ul id="index">
<li>
<a data-code="F401">
<span class="count sev-1">
1
</span>
<strong>F401:</strong> 'django.test.TestCase' imported but unused
</a>
<ul class="details">
<li>
<a href="softdesk.authentication.tests.source.html#l1">
<tt><i>1</i> <span class="kn">from</span><span class="w"> </span><span class="nn">django.test</span><span class="w"> </span><span class="kn">import</span> <span class="n">TestCase</span></tt>
</a>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,41 @@
<!DOCTYPE html>
<html>
<head>
<title>softdesk/authentication/tests.py - flake8 annotated source</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="masthead" class="sev-1"></div>
<div id="page">
<h1>
<a href="softdesk.authentication.tests.report.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/authentication/tests.py source
</a>
</h1>
<div id="doc">
<div id="l1"
class="code sev-1 le">
<ul class="violations">
<li>
<span class="count sev-1">
F401
</span>
'django.test.TestCase' imported but unused</li>
</ul><tt><i>1</i> <span class="kn">from</span><span class="w"> </span><span class="nn">django.test</span><span class="w"> </span><span class="kn">import</span> <span class="n">TestCase</span></tt>
</div>
<div id="l2"
class="code sev- "><tt><i>2</i> &nbsp;</tt>
</div>
<div id="l3"
class="code sev- "><tt><i>3</i> <span class="c1"># Create your tests here.</span></tt>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,152 @@
<!DOCTYPE html>
<html>
<head>
<title>flake8 violations: softdesk/softdesk/settings.py</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
<script>
function bindHandler(link) {
var code = link.getAttribute('data-code');
var key = location.pathname + '#' + code;
var ul = link.parentNode.querySelector('.details');
if (sessionStorage[key] != 'open') {
ul.style.display = 'none';
}
link.addEventListener('click', function (event) {
if (!ul.style.display || ul.style.display == 'none') {
ul.style.display = 'block';
sessionStorage[key] = 'open';
} else {
ul.style.display = 'none';
sessionStorage[key] = 'closed';
}
});
}
window.addEventListener('DOMContentLoaded', function () {
var links = document.querySelectorAll('#index > li > a');
for (var i = 0; i < links.length; i++) {
bindHandler(links[i]);
}
});
</script>
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<p id="srclink">
<a title="View full annotated source"
href="softdesk.softdesk.settings.source.html">
<img src="file.svg" alt="&#x2261;">
</a></p>
<h1>
<a href="index.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/softdesk/settings.py
</a>
</h1>
<ul id="index">
<li>
<a data-code="E501">
<span class="count sev-2">
7
</span>
<strong>E501:</strong> line too long (81 > 79 characters)
(and 5 similar)
</a>
<ul class="details">
<li>
<p>Line too long (81 > 79 characters):</p>
<a href="softdesk.softdesk.settings.source.html#l24">
<tt><i>24</i> <span class="n">SECRET_KEY</span> <span class="o">=</span> <span class="s1">&#39;django-insecure-_vs15jeip&amp;ba(7@n!ptk+b0$4fjhj-esfz1qrhk8+eh4d6k%br&#39;</span></tt>
</a>
</li><li>
<p>Line too long (91 > 79 characters):</p>
<a href="softdesk.softdesk.settings.source.html#l93">
<tt><i>93</i> <span class="s1">&#39;NAME&#39;</span><span class="p">:</span> <span class="s1">&#39;django.contrib.auth.password_validation.UserAttributeSimilarityValidator&#39;</span><span class="p">,</span></tt>
</a>
</li><li>
<p>Line too long (81 > 79 characters):</p>
<a href="softdesk.softdesk.settings.source.html#l96">
<tt><i>96</i> <span class="s1">&#39;NAME&#39;</span><span class="p">:</span> <span class="s1">&#39;django.contrib.auth.password_validation.MinimumLengthValidator&#39;</span><span class="p">,</span></tt>
</a>
</li><li>
<p>Line too long (82 > 79 characters):</p>
<a href="softdesk.softdesk.settings.source.html#l99">
<tt><i>99</i> <span class="s1">&#39;NAME&#39;</span><span class="p">:</span> <span class="s1">&#39;django.contrib.auth.password_validation.CommonPasswordValidator&#39;</span><span class="p">,</span></tt>
</a>
</li><li>
<p>Line too long (83 > 79 characters):</p>
<a href="softdesk.softdesk.settings.source.html#l102">
<tt><i>102</i> <span class="s1">&#39;NAME&#39;</span><span class="p">:</span> <span class="s1">&#39;django.contrib.auth.password_validation.NumericPasswordValidator&#39;</span><span class="p">,</span></tt>
</a>
</li><li>
<p>Line too long (105 > 79 characters):</p>
<a href="softdesk.softdesk.settings.source.html#l132">
<tt><i>132</i> <span class="s1">&#39;DEFAULT_AUTHENTICATION_CLASSES&#39;</span><span class="p">:</span> <span class="p">(</span><span class="s1">&#39;rest_framework_simplejwt.authentication.JWTAuthentication&#39;</span><span class="p">,),</span></tt>
</a>
</li><li>
<p>Line too long (86 > 79 characters):</p>
<a href="softdesk.softdesk.settings.source.html#l133">
<tt><i>133</i> <span class="s1">&#39;DEFAULT_PAGINATION_CLASS&#39;</span><span class="p">:</span> <span class="s1">&#39;rest_framework.pagination.LimitOffsetPagination&#39;</span><span class="p">,</span></tt>
</a>
</li>
</ul>
</li>
<li>
<a data-code="W291">
<span class="count sev-2">
4
</span>
<strong>W291:</strong> trailing whitespace
</a>
<ul class="details">
<li>
<a href="softdesk.softdesk.settings.source.html#l41">
<tt><i>41</i> <span class="s1">&#39;rest_framework&#39;</span><span class="p">,</span> </tt>
</a>
</li><li>
<a href="softdesk.softdesk.settings.source.html#l42">
<tt><i>42</i> <span class="s1">&#39;rest_framework_simplejwt&#39;</span><span class="p">,</span> </tt>
</a>
</li><li>
<a href="softdesk.softdesk.settings.source.html#l43">
<tt><i>43</i> <span class="s1">&#39;authentication&#39;</span><span class="p">,</span> </tt>
</a>
</li><li>
<a href="softdesk.softdesk.settings.source.html#l44">
<tt><i>44</i> <span class="s1">&#39;support&#39;</span><span class="p">,</span> </tt>
</a>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,542 @@
<!DOCTYPE html>
<html>
<head>
<title>softdesk/softdesk/settings.py - flake8 annotated source</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<h1>
<a href="softdesk.softdesk.settings.report.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/softdesk/settings.py source
</a>
</h1>
<div id="doc">
<div id="l1"
class="code sev- "><tt><i>1</i> <span class="sd">&quot;&quot;&quot;</span></tt>
</div>
<div id="l2"
class="code sev- "><tt><i>2</i> <span class="sd">Django settings for softdesk project.</span></tt>
</div>
<div id="l3"
class="code sev- "><tt><i>3</i> &nbsp;</tt>
</div>
<div id="l4"
class="code sev- "><tt><i>4</i> <span class="sd">Generated by &#39;django-admin startproject&#39; using Django 5.2.1.</span></tt>
</div>
<div id="l5"
class="code sev- "><tt><i>5</i> &nbsp;</tt>
</div>
<div id="l6"
class="code sev- "><tt><i>6</i> <span class="sd">For more information on this file, see</span></tt>
</div>
<div id="l7"
class="code sev- "><tt><i>7</i> <span class="sd">https://docs.djangoproject.com/en/5.2/topics/settings/</span></tt>
</div>
<div id="l8"
class="code sev- "><tt><i>8</i> &nbsp;</tt>
</div>
<div id="l9"
class="code sev- "><tt><i>9</i> <span class="sd">For the full list of settings and their values, see</span></tt>
</div>
<div id="l10"
class="code sev- "><tt><i>10</i> <span class="sd">https://docs.djangoproject.com/en/5.2/ref/settings/</span></tt>
</div>
<div id="l11"
class="code sev- "><tt><i>11</i> <span class="sd">&quot;&quot;&quot;</span></tt>
</div>
<div id="l12"
class="code sev- "><tt><i>12</i> &nbsp;</tt>
</div>
<div id="l13"
class="code sev- "><tt><i>13</i> <span class="kn">from</span><span class="w"> </span><span class="nn">pathlib</span><span class="w"> </span><span class="kn">import</span> <span class="n">Path</span></tt>
</div>
<div id="l14"
class="code sev- "><tt><i>14</i> <span class="kn">from</span><span class="w"> </span><span class="nn">datetime</span><span class="w"> </span><span class="kn">import</span> <span class="n">timedelta</span></tt>
</div>
<div id="l15"
class="code sev- "><tt><i>15</i> &nbsp;</tt>
</div>
<div id="l16"
class="code sev- "><tt><i>16</i> <span class="c1"># Build paths inside the project like this: BASE_DIR / &#39;subdir&#39;.</span></tt>
</div>
<div id="l17"
class="code sev- "><tt><i>17</i> <span class="n">BASE_DIR</span> <span class="o">=</span> <span class="n">Path</span><span class="p">(</span><span class="vm">__file__</span><span class="p">)</span><span class="o">.</span><span class="n">resolve</span><span class="p">()</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span></tt>
</div>
<div id="l18"
class="code sev- "><tt><i>18</i> &nbsp;</tt>
</div>
<div id="l19"
class="code sev- "><tt><i>19</i> &nbsp;</tt>
</div>
<div id="l20"
class="code sev- "><tt><i>20</i> <span class="c1"># Quick-start development settings - unsuitable for production</span></tt>
</div>
<div id="l21"
class="code sev- "><tt><i>21</i> <span class="c1"># See https://docs.djangoproject.com/en/5.2/howto/deployment/checklist/</span></tt>
</div>
<div id="l22"
class="code sev- "><tt><i>22</i> &nbsp;</tt>
</div>
<div id="l23"
class="code sev- "><tt><i>23</i> <span class="c1"># SECURITY WARNING: keep the secret key used in production secret!</span></tt>
</div>
<div id="l24"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (81 > 79 characters)</li>
</ul><tt><i>24</i> <span class="n">SECRET_KEY</span> <span class="o">=</span> <span class="s1">&#39;django-insecure-_vs15jeip&amp;ba(7@n!ptk+b0$4fjhj-esfz1qrhk8+eh4d6k%br&#39;</span></tt>
</div>
<div id="l25"
class="code sev- "><tt><i>25</i> &nbsp;</tt>
</div>
<div id="l26"
class="code sev- "><tt><i>26</i> <span class="c1"># SECURITY WARNING: don&#39;t run with debug turned on in production!</span></tt>
</div>
<div id="l27"
class="code sev- "><tt><i>27</i> <span class="n">DEBUG</span> <span class="o">=</span> <span class="kc">True</span></tt>
</div>
<div id="l28"
class="code sev- "><tt><i>28</i> &nbsp;</tt>
</div>
<div id="l29"
class="code sev- "><tt><i>29</i> <span class="n">ALLOWED_HOSTS</span> <span class="o">=</span> <span class="p">[]</span></tt>
</div>
<div id="l30"
class="code sev- "><tt><i>30</i> &nbsp;</tt>
</div>
<div id="l31"
class="code sev- "><tt><i>31</i> &nbsp;</tt>
</div>
<div id="l32"
class="code sev- "><tt><i>32</i> <span class="c1"># Application definition</span></tt>
</div>
<div id="l33"
class="code sev- "><tt><i>33</i> &nbsp;</tt>
</div>
<div id="l34"
class="code sev- "><tt><i>34</i> <span class="n">INSTALLED_APPS</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l35"
class="code sev- "><tt><i>35</i> <span class="s1">&#39;django.contrib.admin&#39;</span><span class="p">,</span></tt>
</div>
<div id="l36"
class="code sev- "><tt><i>36</i> <span class="s1">&#39;django.contrib.auth&#39;</span><span class="p">,</span></tt>
</div>
<div id="l37"
class="code sev- "><tt><i>37</i> <span class="s1">&#39;django.contrib.contenttypes&#39;</span><span class="p">,</span></tt>
</div>
<div id="l38"
class="code sev- "><tt><i>38</i> <span class="s1">&#39;django.contrib.sessions&#39;</span><span class="p">,</span></tt>
</div>
<div id="l39"
class="code sev- "><tt><i>39</i> <span class="s1">&#39;django.contrib.messages&#39;</span><span class="p">,</span></tt>
</div>
<div id="l40"
class="code sev- "><tt><i>40</i> <span class="s1">&#39;django.contrib.staticfiles&#39;</span><span class="p">,</span></tt>
</div>
<div id="l41"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
W291
</span>
Trailing whitespace</li>
</ul><tt><i>41</i> <span class="s1">&#39;rest_framework&#39;</span><span class="p">,</span> </tt>
</div>
<div id="l42"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
W291
</span>
Trailing whitespace</li>
</ul><tt><i>42</i> <span class="s1">&#39;rest_framework_simplejwt&#39;</span><span class="p">,</span> </tt>
</div>
<div id="l43"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
W291
</span>
Trailing whitespace</li>
</ul><tt><i>43</i> <span class="s1">&#39;authentication&#39;</span><span class="p">,</span> </tt>
</div>
<div id="l44"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
W291
</span>
Trailing whitespace</li>
</ul><tt><i>44</i> <span class="s1">&#39;support&#39;</span><span class="p">,</span> </tt>
</div>
<div id="l45"
class="code sev- "><tt><i>45</i> <span class="p">]</span></tt>
</div>
<div id="l46"
class="code sev- "><tt><i>46</i> &nbsp;</tt>
</div>
<div id="l47"
class="code sev- "><tt><i>47</i> <span class="n">MIDDLEWARE</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l48"
class="code sev- "><tt><i>48</i> <span class="s1">&#39;django.middleware.security.SecurityMiddleware&#39;</span><span class="p">,</span></tt>
</div>
<div id="l49"
class="code sev- "><tt><i>49</i> <span class="s1">&#39;django.contrib.sessions.middleware.SessionMiddleware&#39;</span><span class="p">,</span></tt>
</div>
<div id="l50"
class="code sev- "><tt><i>50</i> <span class="s1">&#39;django.middleware.common.CommonMiddleware&#39;</span><span class="p">,</span></tt>
</div>
<div id="l51"
class="code sev- "><tt><i>51</i> <span class="s1">&#39;django.middleware.csrf.CsrfViewMiddleware&#39;</span><span class="p">,</span></tt>
</div>
<div id="l52"
class="code sev- "><tt><i>52</i> <span class="s1">&#39;django.contrib.auth.middleware.AuthenticationMiddleware&#39;</span><span class="p">,</span></tt>
</div>
<div id="l53"
class="code sev- "><tt><i>53</i> <span class="s1">&#39;django.contrib.messages.middleware.MessageMiddleware&#39;</span><span class="p">,</span></tt>
</div>
<div id="l54"
class="code sev- "><tt><i>54</i> <span class="s1">&#39;django.middleware.clickjacking.XFrameOptionsMiddleware&#39;</span><span class="p">,</span></tt>
</div>
<div id="l55"
class="code sev- "><tt><i>55</i> <span class="p">]</span></tt>
</div>
<div id="l56"
class="code sev- "><tt><i>56</i> &nbsp;</tt>
</div>
<div id="l57"
class="code sev- "><tt><i>57</i> <span class="n">ROOT_URLCONF</span> <span class="o">=</span> <span class="s1">&#39;softdesk.urls&#39;</span></tt>
</div>
<div id="l58"
class="code sev- "><tt><i>58</i> &nbsp;</tt>
</div>
<div id="l59"
class="code sev- "><tt><i>59</i> <span class="n">TEMPLATES</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l60"
class="code sev- "><tt><i>60</i> <span class="p">{</span></tt>
</div>
<div id="l61"
class="code sev- "><tt><i>61</i> <span class="s1">&#39;BACKEND&#39;</span><span class="p">:</span> <span class="s1">&#39;django.template.backends.django.DjangoTemplates&#39;</span><span class="p">,</span></tt>
</div>
<div id="l62"
class="code sev- "><tt><i>62</i> <span class="s1">&#39;DIRS&#39;</span><span class="p">:</span> <span class="p">[],</span></tt>
</div>
<div id="l63"
class="code sev- "><tt><i>63</i> <span class="s1">&#39;APP_DIRS&#39;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span></tt>
</div>
<div id="l64"
class="code sev- "><tt><i>64</i> <span class="s1">&#39;OPTIONS&#39;</span><span class="p">:</span> <span class="p">{</span></tt>
</div>
<div id="l65"
class="code sev- "><tt><i>65</i> <span class="s1">&#39;context_processors&#39;</span><span class="p">:</span> <span class="p">[</span></tt>
</div>
<div id="l66"
class="code sev- "><tt><i>66</i> <span class="s1">&#39;django.template.context_processors.request&#39;</span><span class="p">,</span></tt>
</div>
<div id="l67"
class="code sev- "><tt><i>67</i> <span class="s1">&#39;django.contrib.auth.context_processors.auth&#39;</span><span class="p">,</span></tt>
</div>
<div id="l68"
class="code sev- "><tt><i>68</i> <span class="s1">&#39;django.contrib.messages.context_processors.messages&#39;</span><span class="p">,</span></tt>
</div>
<div id="l69"
class="code sev- "><tt><i>69</i> <span class="p">],</span></tt>
</div>
<div id="l70"
class="code sev- "><tt><i>70</i> <span class="p">},</span></tt>
</div>
<div id="l71"
class="code sev- "><tt><i>71</i> <span class="p">},</span></tt>
</div>
<div id="l72"
class="code sev- "><tt><i>72</i> <span class="p">]</span></tt>
</div>
<div id="l73"
class="code sev- "><tt><i>73</i> &nbsp;</tt>
</div>
<div id="l74"
class="code sev- "><tt><i>74</i> <span class="n">WSGI_APPLICATION</span> <span class="o">=</span> <span class="s1">&#39;softdesk.wsgi.application&#39;</span></tt>
</div>
<div id="l75"
class="code sev- "><tt><i>75</i> &nbsp;</tt>
</div>
<div id="l76"
class="code sev- "><tt><i>76</i> &nbsp;</tt>
</div>
<div id="l77"
class="code sev- "><tt><i>77</i> <span class="c1"># Database</span></tt>
</div>
<div id="l78"
class="code sev- "><tt><i>78</i> <span class="c1"># https://docs.djangoproject.com/en/5.2/ref/settings/#databases</span></tt>
</div>
<div id="l79"
class="code sev- "><tt><i>79</i> &nbsp;</tt>
</div>
<div id="l80"
class="code sev- "><tt><i>80</i> <span class="n">DATABASES</span> <span class="o">=</span> <span class="p">{</span></tt>
</div>
<div id="l81"
class="code sev- "><tt><i>81</i> <span class="s1">&#39;default&#39;</span><span class="p">:</span> <span class="p">{</span></tt>
</div>
<div id="l82"
class="code sev- "><tt><i>82</i> <span class="s1">&#39;ENGINE&#39;</span><span class="p">:</span> <span class="s1">&#39;django.db.backends.sqlite3&#39;</span><span class="p">,</span></tt>
</div>
<div id="l83"
class="code sev- "><tt><i>83</i> <span class="s1">&#39;NAME&#39;</span><span class="p">:</span> <span class="n">BASE_DIR</span> <span class="o">/</span> <span class="s1">&#39;db.sqlite3&#39;</span><span class="p">,</span></tt>
</div>
<div id="l84"
class="code sev- "><tt><i>84</i> <span class="p">}</span></tt>
</div>
<div id="l85"
class="code sev- "><tt><i>85</i> <span class="p">}</span></tt>
</div>
<div id="l86"
class="code sev- "><tt><i>86</i> &nbsp;</tt>
</div>
<div id="l87"
class="code sev- "><tt><i>87</i> &nbsp;</tt>
</div>
<div id="l88"
class="code sev- "><tt><i>88</i> <span class="c1"># Password validation</span></tt>
</div>
<div id="l89"
class="code sev- "><tt><i>89</i> <span class="c1"># https://docs.djangoproject.com/en/5.2/ref/settings/#auth-password-validators</span></tt>
</div>
<div id="l90"
class="code sev- "><tt><i>90</i> &nbsp;</tt>
</div>
<div id="l91"
class="code sev- "><tt><i>91</i> <span class="n">AUTH_PASSWORD_VALIDATORS</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l92"
class="code sev- "><tt><i>92</i> <span class="p">{</span></tt>
</div>
<div id="l93"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (91 > 79 characters)</li>
</ul><tt><i>93</i> <span class="s1">&#39;NAME&#39;</span><span class="p">:</span> <span class="s1">&#39;django.contrib.auth.password_validation.UserAttributeSimilarityValidator&#39;</span><span class="p">,</span></tt>
</div>
<div id="l94"
class="code sev- "><tt><i>94</i> <span class="p">},</span></tt>
</div>
<div id="l95"
class="code sev- "><tt><i>95</i> <span class="p">{</span></tt>
</div>
<div id="l96"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (81 > 79 characters)</li>
</ul><tt><i>96</i> <span class="s1">&#39;NAME&#39;</span><span class="p">:</span> <span class="s1">&#39;django.contrib.auth.password_validation.MinimumLengthValidator&#39;</span><span class="p">,</span></tt>
</div>
<div id="l97"
class="code sev- "><tt><i>97</i> <span class="p">},</span></tt>
</div>
<div id="l98"
class="code sev- "><tt><i>98</i> <span class="p">{</span></tt>
</div>
<div id="l99"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (82 > 79 characters)</li>
</ul><tt><i>99</i> <span class="s1">&#39;NAME&#39;</span><span class="p">:</span> <span class="s1">&#39;django.contrib.auth.password_validation.CommonPasswordValidator&#39;</span><span class="p">,</span></tt>
</div>
<div id="l100"
class="code sev- "><tt><i>100</i> <span class="p">},</span></tt>
</div>
<div id="l101"
class="code sev- "><tt><i>101</i> <span class="p">{</span></tt>
</div>
<div id="l102"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (83 > 79 characters)</li>
</ul><tt><i>102</i> <span class="s1">&#39;NAME&#39;</span><span class="p">:</span> <span class="s1">&#39;django.contrib.auth.password_validation.NumericPasswordValidator&#39;</span><span class="p">,</span></tt>
</div>
<div id="l103"
class="code sev- "><tt><i>103</i> <span class="p">},</span></tt>
</div>
<div id="l104"
class="code sev- "><tt><i>104</i> <span class="p">]</span></tt>
</div>
<div id="l105"
class="code sev- "><tt><i>105</i> &nbsp;</tt>
</div>
<div id="l106"
class="code sev- "><tt><i>106</i> &nbsp;</tt>
</div>
<div id="l107"
class="code sev- "><tt><i>107</i> <span class="c1"># Internationalization</span></tt>
</div>
<div id="l108"
class="code sev- "><tt><i>108</i> <span class="c1"># https://docs.djangoproject.com/en/5.2/topics/i18n/</span></tt>
</div>
<div id="l109"
class="code sev- "><tt><i>109</i> &nbsp;</tt>
</div>
<div id="l110"
class="code sev- "><tt><i>110</i> <span class="n">LANGUAGE_CODE</span> <span class="o">=</span> <span class="s1">&#39;en-us&#39;</span></tt>
</div>
<div id="l111"
class="code sev- "><tt><i>111</i> &nbsp;</tt>
</div>
<div id="l112"
class="code sev- "><tt><i>112</i> <span class="n">TIME_ZONE</span> <span class="o">=</span> <span class="s1">&#39;UTC&#39;</span></tt>
</div>
<div id="l113"
class="code sev- "><tt><i>113</i> &nbsp;</tt>
</div>
<div id="l114"
class="code sev- "><tt><i>114</i> <span class="n">USE_I18N</span> <span class="o">=</span> <span class="kc">True</span></tt>
</div>
<div id="l115"
class="code sev- "><tt><i>115</i> &nbsp;</tt>
</div>
<div id="l116"
class="code sev- "><tt><i>116</i> <span class="n">USE_TZ</span> <span class="o">=</span> <span class="kc">True</span></tt>
</div>
<div id="l117"
class="code sev- "><tt><i>117</i> &nbsp;</tt>
</div>
<div id="l118"
class="code sev- "><tt><i>118</i> &nbsp;</tt>
</div>
<div id="l119"
class="code sev- "><tt><i>119</i> <span class="c1"># Static files (CSS, JavaScript, Images)</span></tt>
</div>
<div id="l120"
class="code sev- "><tt><i>120</i> <span class="c1"># https://docs.djangoproject.com/en/5.2/howto/static-files/</span></tt>
</div>
<div id="l121"
class="code sev- "><tt><i>121</i> &nbsp;</tt>
</div>
<div id="l122"
class="code sev- "><tt><i>122</i> <span class="n">STATIC_URL</span> <span class="o">=</span> <span class="s1">&#39;static/&#39;</span></tt>
</div>
<div id="l123"
class="code sev- "><tt><i>123</i> &nbsp;</tt>
</div>
<div id="l124"
class="code sev- "><tt><i>124</i> <span class="c1"># Default primary key field type</span></tt>
</div>
<div id="l125"
class="code sev- "><tt><i>125</i> <span class="c1"># https://docs.djangoproject.com/en/5.2/ref/settings/#default-auto-field</span></tt>
</div>
<div id="l126"
class="code sev- "><tt><i>126</i> &nbsp;</tt>
</div>
<div id="l127"
class="code sev- "><tt><i>127</i> <span class="n">DEFAULT_AUTO_FIELD</span> <span class="o">=</span> <span class="s1">&#39;django.db.models.BigAutoField&#39;</span></tt>
</div>
<div id="l128"
class="code sev- "><tt><i>128</i> &nbsp;</tt>
</div>
<div id="l129"
class="code sev- "><tt><i>129</i> <span class="n">AUTH_USER_MODEL</span> <span class="o">=</span> <span class="s1">&#39;authentication.User&#39;</span></tt>
</div>
<div id="l130"
class="code sev- "><tt><i>130</i> &nbsp;</tt>
</div>
<div id="l131"
class="code sev- "><tt><i>131</i> <span class="n">REST_FRAMEWORK</span> <span class="o">=</span> <span class="p">{</span></tt>
</div>
<div id="l132"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (105 > 79 characters)</li>
</ul><tt><i>132</i> <span class="s1">&#39;DEFAULT_AUTHENTICATION_CLASSES&#39;</span><span class="p">:</span> <span class="p">(</span><span class="s1">&#39;rest_framework_simplejwt.authentication.JWTAuthentication&#39;</span><span class="p">,),</span></tt>
</div>
<div id="l133"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (86 > 79 characters)</li>
</ul><tt><i>133</i> <span class="s1">&#39;DEFAULT_PAGINATION_CLASS&#39;</span><span class="p">:</span> <span class="s1">&#39;rest_framework.pagination.LimitOffsetPagination&#39;</span><span class="p">,</span></tt>
</div>
<div id="l134"
class="code sev- "><tt><i>134</i> <span class="s1">&#39;PAGE_SIZE&#39;</span><span class="p">:</span> <span class="mi">5</span></tt>
</div>
<div id="l135"
class="code sev- "><tt><i>135</i> <span class="p">}</span></tt>
</div>
<div id="l136"
class="code sev- "><tt><i>136</i> &nbsp;</tt>
</div>
<div id="l137"
class="code sev- "><tt><i>137</i> <span class="n">SIMPLE_JWT</span> <span class="o">=</span> <span class="p">{</span></tt>
</div>
<div id="l138"
class="code sev- "><tt><i>138</i> <span class="s1">&#39;ACCESS_TOKEN_LIFETIME&#39;</span><span class="p">:</span> <span class="n">timedelta</span><span class="p">(</span><span class="n">days</span><span class="o">=</span><span class="mi">30</span><span class="p">),</span></tt>
</div>
<div id="l139"
class="code sev- "><tt><i>139</i> <span class="s1">&#39;REFRESH_TOKEN_LIFETIME&#39;</span><span class="p">:</span> <span class="n">timedelta</span><span class="p">(</span><span class="n">days</span><span class="o">=</span><span class="mi">30</span><span class="p">),</span></tt>
</div>
<div id="l140"
class="code sev- "><tt><i>140</i> <span class="p">}</span></tt>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,96 @@
<!DOCTYPE html>
<html>
<head>
<title>flake8 violations: softdesk/support/admin.py</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
<script>
function bindHandler(link) {
var code = link.getAttribute('data-code');
var key = location.pathname + '#' + code;
var ul = link.parentNode.querySelector('.details');
if (sessionStorage[key] != 'open') {
ul.style.display = 'none';
}
link.addEventListener('click', function (event) {
if (!ul.style.display || ul.style.display == 'none') {
ul.style.display = 'block';
sessionStorage[key] = 'open';
} else {
ul.style.display = 'none';
sessionStorage[key] = 'closed';
}
});
}
window.addEventListener('DOMContentLoaded', function () {
var links = document.querySelectorAll('#index > li > a');
for (var i = 0; i < links.length; i++) {
bindHandler(links[i]);
}
});
</script>
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<p id="srclink">
<a title="View full annotated source"
href="softdesk.support.admin.source.html">
<img src="file.svg" alt="&#x2261;">
</a></p>
<h1>
<a href="index.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/admin.py
</a>
</h1>
<ul id="index">
<li>
<a data-code="E302">
<span class="count sev-2">
2
</span>
<strong>E302:</strong> expected 2 blank lines, found 1
</a>
<ul class="details">
<li>
<a href="softdesk.support.admin.source.html#l5">
<tt><i>5</i> <span class="k">class</span><span class="w"> </span><span class="nc">AdminProject</span><span class="p">(</span><span class="n">admin</span><span class="o">.</span><span class="n">ModelAdmin</span><span class="p">):</span></tt>
</a>
</li><li>
<a href="softdesk.support.admin.source.html#l12">
<tt><i>12</i> <span class="k">class</span><span class="w"> </span><span class="nc">AdminIssue</span><span class="p">(</span><span class="n">admin</span><span class="o">.</span><span class="n">ModelAdmin</span><span class="p">):</span></tt>
</a>
</li>
</ul>
</li>
<li>
<a data-code="W391">
<span class="count sev-2">
1
</span>
<strong>W391:</strong> blank line at end of file
</a>
<ul class="details">
<li>
<a href="softdesk.support.admin.source.html#l21">
<tt><i>21</i> &nbsp;</tt>
</a>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,101 @@
<!DOCTYPE html>
<html>
<head>
<title>softdesk/support/admin.py - flake8 annotated source</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<h1>
<a href="softdesk.support.admin.report.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/admin.py source
</a>
</h1>
<div id="doc">
<div id="l1"
class="code sev- "><tt><i>1</i> <span class="kn">from</span><span class="w"> </span><span class="nn">django.contrib</span><span class="w"> </span><span class="kn">import</span> <span class="n">admin</span></tt>
</div>
<div id="l2"
class="code sev- "><tt><i>2</i> <span class="kn">from</span><span class="w"> </span><span class="nn">support.models</span><span class="w"> </span><span class="kn">import</span> <span class="n">Project</span><span class="p">,</span> <span class="n">Issue</span><span class="p">,</span> <span class="n">Comment</span><span class="p">,</span> <span class="n">ProjectContributor</span></tt>
</div>
<div id="l3"
class="code sev- "><tt><i>3</i> <span class="kn">from</span><span class="w"> </span><span class="nn">authentication.models</span><span class="w"> </span><span class="kn">import</span> <span class="n">User</span></tt>
</div>
<div id="l4"
class="code sev- "><tt><i>4</i> &nbsp;</tt>
</div>
<div id="l5"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E302
</span>
Expected 2 blank lines, found 1</li>
</ul><tt><i>5</i> <span class="k">class</span><span class="w"> </span><span class="nc">AdminProject</span><span class="p">(</span><span class="n">admin</span><span class="o">.</span><span class="n">ModelAdmin</span><span class="p">):</span></tt>
</div>
<div id="l6"
class="code sev- "><tt><i>6</i> <span class="n">list_display</span> <span class="o">=</span> <span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="s1">&#39;title&#39;</span><span class="p">,</span> <span class="s1">&#39;author&#39;</span><span class="p">,</span> <span class="s1">&#39;contributors&#39;</span><span class="p">)</span></tt>
</div>
<div id="l7"
class="code sev- "><tt><i>7</i> &nbsp;</tt>
</div>
<div id="l8"
class="code sev- "><tt><i>8</i> <span class="nd">@admin</span><span class="o">.</span><span class="n">display</span><span class="p">(</span><span class="n">description</span><span class="o">=</span><span class="s1">&#39;contributors&#39;</span><span class="p">)</span></tt>
</div>
<div id="l9"
class="code sev- "><tt><i>9</i> <span class="k">def</span><span class="w"> </span><span class="nf">contributors</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span></tt>
</div>
<div id="l10"
class="code sev- "><tt><i>10</i> <span class="k">return</span> <span class="n">obj</span><span class="o">.</span><span class="n">contributors</span></tt>
</div>
<div id="l11"
class="code sev- "><tt><i>11</i> &nbsp;</tt>
</div>
<div id="l12"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E302
</span>
Expected 2 blank lines, found 1</li>
</ul><tt><i>12</i> <span class="k">class</span><span class="w"> </span><span class="nc">AdminIssue</span><span class="p">(</span><span class="n">admin</span><span class="o">.</span><span class="n">ModelAdmin</span><span class="p">):</span></tt>
</div>
<div id="l13"
class="code sev- "><tt><i>13</i> <span class="n">list_display</span> <span class="o">=</span> <span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="s1">&#39;title&#39;</span><span class="p">,</span> <span class="s1">&#39;author&#39;</span><span class="p">,</span> <span class="s1">&#39;project&#39;</span><span class="p">)</span></tt>
</div>
<div id="l14"
class="code sev- "><tt><i>14</i> &nbsp;</tt>
</div>
<div id="l15"
class="code sev- "><tt><i>15</i> &nbsp;</tt>
</div>
<div id="l16"
class="code sev- "><tt><i>16</i> <span class="n">admin</span><span class="o">.</span><span class="n">site</span><span class="o">.</span><span class="n">register</span><span class="p">(</span><span class="n">User</span><span class="p">)</span></tt>
</div>
<div id="l17"
class="code sev- "><tt><i>17</i> <span class="n">admin</span><span class="o">.</span><span class="n">site</span><span class="o">.</span><span class="n">register</span><span class="p">(</span><span class="n">Project</span><span class="p">,</span> <span class="n">AdminProject</span><span class="p">)</span></tt>
</div>
<div id="l18"
class="code sev- "><tt><i>18</i> <span class="n">admin</span><span class="o">.</span><span class="n">site</span><span class="o">.</span><span class="n">register</span><span class="p">(</span><span class="n">Issue</span><span class="p">,</span> <span class="n">AdminIssue</span><span class="p">)</span></tt>
</div>
<div id="l19"
class="code sev- "><tt><i>19</i> <span class="n">admin</span><span class="o">.</span><span class="n">site</span><span class="o">.</span><span class="n">register</span><span class="p">(</span><span class="n">Comment</span><span class="p">)</span></tt>
</div>
<div id="l20"
class="code sev- "><tt><i>20</i> <span class="n">admin</span><span class="o">.</span><span class="n">site</span><span class="o">.</span><span class="n">register</span><span class="p">(</span><span class="n">ProjectContributor</span><span class="p">)</span></tt>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,189 @@
<!DOCTYPE html>
<html>
<head>
<title>flake8 violations: softdesk/support/migrations/0001_initial.py</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
<script>
function bindHandler(link) {
var code = link.getAttribute('data-code');
var key = location.pathname + '#' + code;
var ul = link.parentNode.querySelector('.details');
if (sessionStorage[key] != 'open') {
ul.style.display = 'none';
}
link.addEventListener('click', function (event) {
if (!ul.style.display || ul.style.display == 'none') {
ul.style.display = 'block';
sessionStorage[key] = 'open';
} else {
ul.style.display = 'none';
sessionStorage[key] = 'closed';
}
});
}
window.addEventListener('DOMContentLoaded', function () {
var links = document.querySelectorAll('#index > li > a');
for (var i = 0; i < links.length; i++) {
bindHandler(links[i]);
}
});
</script>
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<p id="srclink">
<a title="View full annotated source"
href="softdesk.support.migrations.0001_initial.source.html">
<img src="file.svg" alt="&#x2261;">
</a></p>
<h1>
<a href="index.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0001_initial.py
</a>
</h1>
<ul id="index">
<li>
<a data-code="E501">
<span class="count sev-2">
17
</span>
<strong>E501:</strong> line too long (117 > 79 characters)
(and 11 similar)
</a>
<ul class="details">
<li>
<p>Line too long (117 > 79 characters):</p>
<a href="softdesk.support.migrations.0001_initial.source.html#l20">
<tt><i>20</i> <span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">BigAutoField</span><span class="p">(</span><span class="n">auto_created</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">primary_key</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">serialize</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;ID&#39;</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (128 > 79 characters):</p>
<a href="softdesk.support.migrations.0001_initial.source.html#l22">
<tt><i>22</i> <span class="p">(</span><span class="s1">&#39;contributor&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (117 > 79 characters):</p>
<a href="softdesk.support.migrations.0001_initial.source.html#l28">
<tt><i>28</i> <span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">BigAutoField</span><span class="p">(</span><span class="n">auto_created</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">primary_key</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">serialize</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;ID&#39;</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (82 > 79 characters):</p>
<a href="softdesk.support.migrations.0001_initial.source.html#l29">
<tt><i>29</i> <span class="p">(</span><span class="s1">&#39;title&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">255</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;title&#39;</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (149 > 79 characters):</p>
<a href="softdesk.support.migrations.0001_initial.source.html#l32">
<tt><i>32</i> <span class="p">(</span><span class="s1">&#39;status&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">15</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="p">[(</span><span class="s1">&#39;ToDo&#39;</span><span class="p">,</span> <span class="s1">&#39;Todo&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;InProgress&#39;</span><span class="p">,</span> <span class="s1">&#39;Inprogress&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;Finished&#39;</span><span class="p">,</span> <span class="s1">&#39;Finished&#39;</span><span class="p">)])),</span></tt>
</a>
</li><li>
<p>Line too long (123 > 79 characters):</p>
<a href="softdesk.support.migrations.0001_initial.source.html#l33">
<tt><i>33</i> <span class="p">(</span><span class="s1">&#39;priority&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">15</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="p">[(</span><span class="s1">&#39;L&#39;</span><span class="p">,</span> <span class="s1">&#39;Low&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;M&#39;</span><span class="p">,</span> <span class="s1">&#39;Medium&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;H&#39;</span><span class="p">,</span> <span class="s1">&#39;High&#39;</span><span class="p">)])),</span></tt>
</a>
</li><li>
<p>Line too long (130 > 79 characters):</p>
<a href="softdesk.support.migrations.0001_initial.source.html#l34">
<tt><i>34</i> <span class="p">(</span><span class="s1">&#39;tag&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">15</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="p">[(</span><span class="s1">&#39;Bug&#39;</span><span class="p">,</span> <span class="s1">&#39;Bug&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;Feature&#39;</span><span class="p">,</span> <span class="s1">&#39;Feature&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;Task&#39;</span><span class="p">,</span> <span class="s1">&#39;Task&#39;</span><span class="p">)])),</span></tt>
</a>
</li><li>
<p>Line too long (120 > 79 characters):</p>
<a href="softdesk.support.migrations.0001_initial.source.html#l35">
<tt><i>35</i> <span class="p">(</span><span class="s1">&#39;author&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;support.contributor&#39;</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (117 > 79 characters):</p>
<a href="softdesk.support.migrations.0001_initial.source.html#l41">
<tt><i>41</i> <span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">BigAutoField</span><span class="p">(</span><span class="n">auto_created</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">primary_key</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">serialize</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;ID&#39;</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (120 > 79 characters):</p>
<a href="softdesk.support.migrations.0001_initial.source.html#l45">
<tt><i>45</i> <span class="p">(</span><span class="s1">&#39;author&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;support.contributor&#39;</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (110 > 79 characters):</p>
<a href="softdesk.support.migrations.0001_initial.source.html#l46">
<tt><i>46</i> <span class="p">(</span><span class="s1">&#39;issue&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">CASCADE</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;support.issue&#39;</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (117 > 79 characters):</p>
<a href="softdesk.support.migrations.0001_initial.source.html#l52">
<tt><i>52</i> <span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">BigAutoField</span><span class="p">(</span><span class="n">auto_created</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">primary_key</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">serialize</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;ID&#39;</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (158 > 79 characters):</p>
<a href="softdesk.support.migrations.0001_initial.source.html#l55">
<tt><i>55</i> <span class="p">(</span><span class="s1">&#39;type&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">choices</span><span class="o">=</span><span class="p">[(</span><span class="s1">&#39;BackEnd&#39;</span><span class="p">,</span> <span class="s1">&#39;Backend&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;FrontEnd&#39;</span><span class="p">,</span> <span class="s1">&#39;Frontend&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;iOS&#39;</span><span class="p">,</span> <span class="s1">&#39;Ios&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;Android&#39;</span><span class="p">,</span> <span class="s1">&#39;Android&#39;</span><span class="p">)],</span> <span class="n">max_length</span><span class="o">=</span><span class="mi">10</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (143 > 79 characters):</p>
<a href="softdesk.support.migrations.0001_initial.source.html#l57">
<tt><i>57</i> <span class="p">(</span><span class="s1">&#39;author&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;author&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;support.contributor&#39;</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (146 > 79 characters):</p>
<a href="softdesk.support.migrations.0001_initial.source.html#l58">
<tt><i>58</i> <span class="p">(</span><span class="s1">&#39;contributors&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">ManyToManyField</span><span class="p">(</span><span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;contribution&#39;</span><span class="p">,</span> <span class="n">through</span><span class="o">=</span><span class="s1">&#39;support.Contributor&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (127 > 79 characters):</p>
<a href="softdesk.support.migrations.0001_initial.source.html#l64">
<tt><i>64</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">SET_NULL</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;support.project&#39;</span><span class="p">),</span></tt>
</a>
</li><li>
<p>Line too long (127 > 79 characters):</p>
<a href="softdesk.support.migrations.0001_initial.source.html#l69">
<tt><i>69</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">CASCADE</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;project&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;support.project&#39;</span><span class="p">),</span></tt>
</a>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,389 @@
<!DOCTYPE html>
<html>
<head>
<title>softdesk/support/migrations/0001_initial.py - flake8 annotated source</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<h1>
<a href="softdesk.support.migrations.0001_initial.report.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0001_initial.py source
</a>
</h1>
<div id="doc">
<div id="l1"
class="code sev- "><tt><i>1</i> <span class="c1"># Generated by Django 5.2.1 on 2025-05-23 03:58</span></tt>
</div>
<div id="l2"
class="code sev- "><tt><i>2</i> &nbsp;</tt>
</div>
<div id="l3"
class="code sev- "><tt><i>3</i> <span class="kn">import</span><span class="w"> </span><span class="nn">django.db.models.deletion</span></tt>
</div>
<div id="l4"
class="code sev- "><tt><i>4</i> <span class="kn">from</span><span class="w"> </span><span class="nn">django.conf</span><span class="w"> </span><span class="kn">import</span> <span class="n">settings</span></tt>
</div>
<div id="l5"
class="code sev- "><tt><i>5</i> <span class="kn">from</span><span class="w"> </span><span class="nn">django.db</span><span class="w"> </span><span class="kn">import</span> <span class="n">migrations</span><span class="p">,</span> <span class="n">models</span></tt>
</div>
<div id="l6"
class="code sev- "><tt><i>6</i> &nbsp;</tt>
</div>
<div id="l7"
class="code sev- "><tt><i>7</i> &nbsp;</tt>
</div>
<div id="l8"
class="code sev- "><tt><i>8</i> <span class="k">class</span><span class="w"> </span><span class="nc">Migration</span><span class="p">(</span><span class="n">migrations</span><span class="o">.</span><span class="n">Migration</span><span class="p">):</span></tt>
</div>
<div id="l9"
class="code sev- "><tt><i>9</i> &nbsp;</tt>
</div>
<div id="l10"
class="code sev- "><tt><i>10</i> <span class="n">initial</span> <span class="o">=</span> <span class="kc">True</span></tt>
</div>
<div id="l11"
class="code sev- "><tt><i>11</i> &nbsp;</tt>
</div>
<div id="l12"
class="code sev- "><tt><i>12</i> <span class="n">dependencies</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l13"
class="code sev- "><tt><i>13</i> <span class="n">migrations</span><span class="o">.</span><span class="n">swappable_dependency</span><span class="p">(</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">),</span></tt>
</div>
<div id="l14"
class="code sev- "><tt><i>14</i> <span class="p">]</span></tt>
</div>
<div id="l15"
class="code sev- "><tt><i>15</i> &nbsp;</tt>
</div>
<div id="l16"
class="code sev- "><tt><i>16</i> <span class="n">operations</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l17"
class="code sev- "><tt><i>17</i> <span class="n">migrations</span><span class="o">.</span><span class="n">CreateModel</span><span class="p">(</span></tt>
</div>
<div id="l18"
class="code sev- "><tt><i>18</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;Contributor&#39;</span><span class="p">,</span></tt>
</div>
<div id="l19"
class="code sev- "><tt><i>19</i> <span class="n">fields</span><span class="o">=</span><span class="p">[</span></tt>
</div>
<div id="l20"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (117 > 79 characters)</li>
</ul><tt><i>20</i> <span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">BigAutoField</span><span class="p">(</span><span class="n">auto_created</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">primary_key</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">serialize</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;ID&#39;</span><span class="p">)),</span></tt>
</div>
<div id="l21"
class="code sev- "><tt><i>21</i> <span class="p">(</span><span class="s1">&#39;data&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">max_length</span><span class="o">=</span><span class="mi">255</span><span class="p">)),</span></tt>
</div>
<div id="l22"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (128 > 79 characters)</li>
</ul><tt><i>22</i> <span class="p">(</span><span class="s1">&#39;contributor&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">)),</span></tt>
</div>
<div id="l23"
class="code sev- "><tt><i>23</i> <span class="p">],</span></tt>
</div>
<div id="l24"
class="code sev- "><tt><i>24</i> <span class="p">),</span></tt>
</div>
<div id="l25"
class="code sev- "><tt><i>25</i> <span class="n">migrations</span><span class="o">.</span><span class="n">CreateModel</span><span class="p">(</span></tt>
</div>
<div id="l26"
class="code sev- "><tt><i>26</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;Issue&#39;</span><span class="p">,</span></tt>
</div>
<div id="l27"
class="code sev- "><tt><i>27</i> <span class="n">fields</span><span class="o">=</span><span class="p">[</span></tt>
</div>
<div id="l28"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (117 > 79 characters)</li>
</ul><tt><i>28</i> <span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">BigAutoField</span><span class="p">(</span><span class="n">auto_created</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">primary_key</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">serialize</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;ID&#39;</span><span class="p">)),</span></tt>
</div>
<div id="l29"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (82 > 79 characters)</li>
</ul><tt><i>29</i> <span class="p">(</span><span class="s1">&#39;title&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">255</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;title&#39;</span><span class="p">)),</span></tt>
</div>
<div id="l30"
class="code sev- "><tt><i>30</i> <span class="p">(</span><span class="s1">&#39;date_created&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">DateTimeField</span><span class="p">(</span><span class="n">auto_now_add</span><span class="o">=</span><span class="kc">True</span><span class="p">)),</span></tt>
</div>
<div id="l31"
class="code sev- "><tt><i>31</i> <span class="p">(</span><span class="s1">&#39;description&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">TextField</span><span class="p">()),</span></tt>
</div>
<div id="l32"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (149 > 79 characters)</li>
</ul><tt><i>32</i> <span class="p">(</span><span class="s1">&#39;status&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">15</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="p">[(</span><span class="s1">&#39;ToDo&#39;</span><span class="p">,</span> <span class="s1">&#39;Todo&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;InProgress&#39;</span><span class="p">,</span> <span class="s1">&#39;Inprogress&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;Finished&#39;</span><span class="p">,</span> <span class="s1">&#39;Finished&#39;</span><span class="p">)])),</span></tt>
</div>
<div id="l33"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (123 > 79 characters)</li>
</ul><tt><i>33</i> <span class="p">(</span><span class="s1">&#39;priority&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">15</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="p">[(</span><span class="s1">&#39;L&#39;</span><span class="p">,</span> <span class="s1">&#39;Low&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;M&#39;</span><span class="p">,</span> <span class="s1">&#39;Medium&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;H&#39;</span><span class="p">,</span> <span class="s1">&#39;High&#39;</span><span class="p">)])),</span></tt>
</div>
<div id="l34"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (130 > 79 characters)</li>
</ul><tt><i>34</i> <span class="p">(</span><span class="s1">&#39;tag&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">15</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="p">[(</span><span class="s1">&#39;Bug&#39;</span><span class="p">,</span> <span class="s1">&#39;Bug&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;Feature&#39;</span><span class="p">,</span> <span class="s1">&#39;Feature&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;Task&#39;</span><span class="p">,</span> <span class="s1">&#39;Task&#39;</span><span class="p">)])),</span></tt>
</div>
<div id="l35"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (120 > 79 characters)</li>
</ul><tt><i>35</i> <span class="p">(</span><span class="s1">&#39;author&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;support.contributor&#39;</span><span class="p">)),</span></tt>
</div>
<div id="l36"
class="code sev- "><tt><i>36</i> <span class="p">],</span></tt>
</div>
<div id="l37"
class="code sev- "><tt><i>37</i> <span class="p">),</span></tt>
</div>
<div id="l38"
class="code sev- "><tt><i>38</i> <span class="n">migrations</span><span class="o">.</span><span class="n">CreateModel</span><span class="p">(</span></tt>
</div>
<div id="l39"
class="code sev- "><tt><i>39</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;Comment&#39;</span><span class="p">,</span></tt>
</div>
<div id="l40"
class="code sev- "><tt><i>40</i> <span class="n">fields</span><span class="o">=</span><span class="p">[</span></tt>
</div>
<div id="l41"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (117 > 79 characters)</li>
</ul><tt><i>41</i> <span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">BigAutoField</span><span class="p">(</span><span class="n">auto_created</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">primary_key</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">serialize</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;ID&#39;</span><span class="p">)),</span></tt>
</div>
<div id="l42"
class="code sev- "><tt><i>42</i> <span class="p">(</span><span class="s1">&#39;title&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">255</span><span class="p">)),</span></tt>
</div>
<div id="l43"
class="code sev- "><tt><i>43</i> <span class="p">(</span><span class="s1">&#39;date_created&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">DateTimeField</span><span class="p">(</span><span class="n">auto_now_add</span><span class="o">=</span><span class="kc">True</span><span class="p">)),</span></tt>
</div>
<div id="l44"
class="code sev- "><tt><i>44</i> <span class="p">(</span><span class="s1">&#39;description&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">4000</span><span class="p">)),</span></tt>
</div>
<div id="l45"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (120 > 79 characters)</li>
</ul><tt><i>45</i> <span class="p">(</span><span class="s1">&#39;author&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;support.contributor&#39;</span><span class="p">)),</span></tt>
</div>
<div id="l46"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (110 > 79 characters)</li>
</ul><tt><i>46</i> <span class="p">(</span><span class="s1">&#39;issue&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">CASCADE</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;support.issue&#39;</span><span class="p">)),</span></tt>
</div>
<div id="l47"
class="code sev- "><tt><i>47</i> <span class="p">],</span></tt>
</div>
<div id="l48"
class="code sev- "><tt><i>48</i> <span class="p">),</span></tt>
</div>
<div id="l49"
class="code sev- "><tt><i>49</i> <span class="n">migrations</span><span class="o">.</span><span class="n">CreateModel</span><span class="p">(</span></tt>
</div>
<div id="l50"
class="code sev- "><tt><i>50</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;Project&#39;</span><span class="p">,</span></tt>
</div>
<div id="l51"
class="code sev- "><tt><i>51</i> <span class="n">fields</span><span class="o">=</span><span class="p">[</span></tt>
</div>
<div id="l52"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (117 > 79 characters)</li>
</ul><tt><i>52</i> <span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">BigAutoField</span><span class="p">(</span><span class="n">auto_created</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">primary_key</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">serialize</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;ID&#39;</span><span class="p">)),</span></tt>
</div>
<div id="l53"
class="code sev- "><tt><i>53</i> <span class="p">(</span><span class="s1">&#39;title&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">255</span><span class="p">)),</span></tt>
</div>
<div id="l54"
class="code sev- "><tt><i>54</i> <span class="p">(</span><span class="s1">&#39;date_created&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">DateTimeField</span><span class="p">(</span><span class="n">auto_now_add</span><span class="o">=</span><span class="kc">True</span><span class="p">)),</span></tt>
</div>
<div id="l55"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (158 > 79 characters)</li>
</ul><tt><i>55</i> <span class="p">(</span><span class="s1">&#39;type&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">choices</span><span class="o">=</span><span class="p">[(</span><span class="s1">&#39;BackEnd&#39;</span><span class="p">,</span> <span class="s1">&#39;Backend&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;FrontEnd&#39;</span><span class="p">,</span> <span class="s1">&#39;Frontend&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;iOS&#39;</span><span class="p">,</span> <span class="s1">&#39;Ios&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;Android&#39;</span><span class="p">,</span> <span class="s1">&#39;Android&#39;</span><span class="p">)],</span> <span class="n">max_length</span><span class="o">=</span><span class="mi">10</span><span class="p">)),</span></tt>
</div>
<div id="l56"
class="code sev- "><tt><i>56</i> <span class="p">(</span><span class="s1">&#39;description&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">4000</span><span class="p">)),</span></tt>
</div>
<div id="l57"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (143 > 79 characters)</li>
</ul><tt><i>57</i> <span class="p">(</span><span class="s1">&#39;author&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;author&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;support.contributor&#39;</span><span class="p">)),</span></tt>
</div>
<div id="l58"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (146 > 79 characters)</li>
</ul><tt><i>58</i> <span class="p">(</span><span class="s1">&#39;contributors&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">ManyToManyField</span><span class="p">(</span><span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;contribution&#39;</span><span class="p">,</span> <span class="n">through</span><span class="o">=</span><span class="s1">&#39;support.Contributor&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">)),</span></tt>
</div>
<div id="l59"
class="code sev- "><tt><i>59</i> <span class="p">],</span></tt>
</div>
<div id="l60"
class="code sev- "><tt><i>60</i> <span class="p">),</span></tt>
</div>
<div id="l61"
class="code sev- "><tt><i>61</i> <span class="n">migrations</span><span class="o">.</span><span class="n">AddField</span><span class="p">(</span></tt>
</div>
<div id="l62"
class="code sev- "><tt><i>62</i> <span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;issue&#39;</span><span class="p">,</span></tt>
</div>
<div id="l63"
class="code sev- "><tt><i>63</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;project&#39;</span><span class="p">,</span></tt>
</div>
<div id="l64"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (127 > 79 characters)</li>
</ul><tt><i>64</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">SET_NULL</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;support.project&#39;</span><span class="p">),</span></tt>
</div>
<div id="l65"
class="code sev- "><tt><i>65</i> <span class="p">),</span></tt>
</div>
<div id="l66"
class="code sev- "><tt><i>66</i> <span class="n">migrations</span><span class="o">.</span><span class="n">AddField</span><span class="p">(</span></tt>
</div>
<div id="l67"
class="code sev- "><tt><i>67</i> <span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;contributor&#39;</span><span class="p">,</span></tt>
</div>
<div id="l68"
class="code sev- "><tt><i>68</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;project&#39;</span><span class="p">,</span></tt>
</div>
<div id="l69"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (127 > 79 characters)</li>
</ul><tt><i>69</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">CASCADE</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;project&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;support.project&#39;</span><span class="p">),</span></tt>
</div>
<div id="l70"
class="code sev- "><tt><i>70</i> <span class="p">),</span></tt>
</div>
<div id="l71"
class="code sev- "><tt><i>71</i> <span class="p">]</span></tt>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,73 @@
<!DOCTYPE html>
<html>
<head>
<title>flake8 violations: softdesk/support/migrations/0002_project_active_alter_issue_project.py</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
<script>
function bindHandler(link) {
var code = link.getAttribute('data-code');
var key = location.pathname + '#' + code;
var ul = link.parentNode.querySelector('.details');
if (sessionStorage[key] != 'open') {
ul.style.display = 'none';
}
link.addEventListener('click', function (event) {
if (!ul.style.display || ul.style.display == 'none') {
ul.style.display = 'block';
sessionStorage[key] = 'open';
} else {
ul.style.display = 'none';
sessionStorage[key] = 'closed';
}
});
}
window.addEventListener('DOMContentLoaded', function () {
var links = document.querySelectorAll('#index > li > a');
for (var i = 0; i < links.length; i++) {
bindHandler(links[i]);
}
});
</script>
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<p id="srclink">
<a title="View full annotated source"
href="softdesk.support.migrations.0002_project_active_alter_issue_project.source.html">
<img src="file.svg" alt="&#x2261;">
</a></p>
<h1>
<a href="index.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0002_project_active_alter_issue_project.py
</a>
</h1>
<ul id="index">
<li>
<a data-code="E501">
<span class="count sev-2">
1
</span>
<strong>E501:</strong> line too long (126 > 79 characters)
</a>
<ul class="details">
<li>
<a href="softdesk.support.migrations.0002_project_active_alter_issue_project.source.html#l22">
<tt><i>22</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">CASCADE</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;support.project&#39;</span><span class="p">),</span></tt>
</a>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,104 @@
<!DOCTYPE html>
<html>
<head>
<title>softdesk/support/migrations/0002_project_active_alter_issue_project.py - flake8 annotated source</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<h1>
<a href="softdesk.support.migrations.0002_project_active_alter_issue_project.report.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0002_project_active_alter_issue_project.py source
</a>
</h1>
<div id="doc">
<div id="l1"
class="code sev- "><tt><i>1</i> <span class="c1"># Generated by Django 5.2.1 on 2025-05-25 19:20</span></tt>
</div>
<div id="l2"
class="code sev- "><tt><i>2</i> &nbsp;</tt>
</div>
<div id="l3"
class="code sev- "><tt><i>3</i> <span class="kn">import</span><span class="w"> </span><span class="nn">django.db.models.deletion</span></tt>
</div>
<div id="l4"
class="code sev- "><tt><i>4</i> <span class="kn">from</span><span class="w"> </span><span class="nn">django.db</span><span class="w"> </span><span class="kn">import</span> <span class="n">migrations</span><span class="p">,</span> <span class="n">models</span></tt>
</div>
<div id="l5"
class="code sev- "><tt><i>5</i> &nbsp;</tt>
</div>
<div id="l6"
class="code sev- "><tt><i>6</i> &nbsp;</tt>
</div>
<div id="l7"
class="code sev- "><tt><i>7</i> <span class="k">class</span><span class="w"> </span><span class="nc">Migration</span><span class="p">(</span><span class="n">migrations</span><span class="o">.</span><span class="n">Migration</span><span class="p">):</span></tt>
</div>
<div id="l8"
class="code sev- "><tt><i>8</i> &nbsp;</tt>
</div>
<div id="l9"
class="code sev- "><tt><i>9</i> <span class="n">dependencies</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l10"
class="code sev- "><tt><i>10</i> <span class="p">(</span><span class="s1">&#39;support&#39;</span><span class="p">,</span> <span class="s1">&#39;0001_initial&#39;</span><span class="p">),</span></tt>
</div>
<div id="l11"
class="code sev- "><tt><i>11</i> <span class="p">]</span></tt>
</div>
<div id="l12"
class="code sev- "><tt><i>12</i> &nbsp;</tt>
</div>
<div id="l13"
class="code sev- "><tt><i>13</i> <span class="n">operations</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l14"
class="code sev- "><tt><i>14</i> <span class="n">migrations</span><span class="o">.</span><span class="n">AddField</span><span class="p">(</span></tt>
</div>
<div id="l15"
class="code sev- "><tt><i>15</i> <span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;project&#39;</span><span class="p">,</span></tt>
</div>
<div id="l16"
class="code sev- "><tt><i>16</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;active&#39;</span><span class="p">,</span></tt>
</div>
<div id="l17"
class="code sev- "><tt><i>17</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">BooleanField</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span></tt>
</div>
<div id="l18"
class="code sev- "><tt><i>18</i> <span class="p">),</span></tt>
</div>
<div id="l19"
class="code sev- "><tt><i>19</i> <span class="n">migrations</span><span class="o">.</span><span class="n">AlterField</span><span class="p">(</span></tt>
</div>
<div id="l20"
class="code sev- "><tt><i>20</i> <span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;issue&#39;</span><span class="p">,</span></tt>
</div>
<div id="l21"
class="code sev- "><tt><i>21</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;project&#39;</span><span class="p">,</span></tt>
</div>
<div id="l22"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (126 > 79 characters)</li>
</ul><tt><i>22</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">CASCADE</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;support.project&#39;</span><span class="p">),</span></tt>
</div>
<div id="l23"
class="code sev- "><tt><i>23</i> <span class="p">),</span></tt>
</div>
<div id="l24"
class="code sev- "><tt><i>24</i> <span class="p">]</span></tt>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,73 @@
<!DOCTYPE html>
<html>
<head>
<title>flake8 violations: softdesk/support/migrations/0004_alter_project_author.py</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
<script>
function bindHandler(link) {
var code = link.getAttribute('data-code');
var key = location.pathname + '#' + code;
var ul = link.parentNode.querySelector('.details');
if (sessionStorage[key] != 'open') {
ul.style.display = 'none';
}
link.addEventListener('click', function (event) {
if (!ul.style.display || ul.style.display == 'none') {
ul.style.display = 'block';
sessionStorage[key] = 'open';
} else {
ul.style.display = 'none';
sessionStorage[key] = 'closed';
}
});
}
window.addEventListener('DOMContentLoaded', function () {
var links = document.querySelectorAll('#index > li > a');
for (var i = 0; i < links.length; i++) {
bindHandler(links[i]);
}
});
</script>
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<p id="srclink">
<a title="View full annotated source"
href="softdesk.support.migrations.0004_alter_project_author.source.html">
<img src="file.svg" alt="&#x2261;">
</a></p>
<h1>
<a href="index.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0004_alter_project_author.py
</a>
</h1>
<ul id="index">
<li>
<a data-code="E501">
<span class="count sev-2">
1
</span>
<strong>E501:</strong> line too long (145 > 79 characters)
</a>
<ul class="details">
<li>
<a href="softdesk.support.migrations.0004_alter_project_author.source.html#l17">
<tt><i>17</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;author&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;support.contributor&#39;</span><span class="p">),</span></tt>
</a>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,89 @@
<!DOCTYPE html>
<html>
<head>
<title>softdesk/support/migrations/0004_alter_project_author.py - flake8 annotated source</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<h1>
<a href="softdesk.support.migrations.0004_alter_project_author.report.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0004_alter_project_author.py source
</a>
</h1>
<div id="doc">
<div id="l1"
class="code sev- "><tt><i>1</i> <span class="c1"># Generated by Django 5.2.1 on 2025-05-25 19:36</span></tt>
</div>
<div id="l2"
class="code sev- "><tt><i>2</i> &nbsp;</tt>
</div>
<div id="l3"
class="code sev- "><tt><i>3</i> <span class="kn">import</span><span class="w"> </span><span class="nn">django.db.models.deletion</span></tt>
</div>
<div id="l4"
class="code sev- "><tt><i>4</i> <span class="kn">from</span><span class="w"> </span><span class="nn">django.db</span><span class="w"> </span><span class="kn">import</span> <span class="n">migrations</span><span class="p">,</span> <span class="n">models</span></tt>
</div>
<div id="l5"
class="code sev- "><tt><i>5</i> &nbsp;</tt>
</div>
<div id="l6"
class="code sev- "><tt><i>6</i> &nbsp;</tt>
</div>
<div id="l7"
class="code sev- "><tt><i>7</i> <span class="k">class</span><span class="w"> </span><span class="nc">Migration</span><span class="p">(</span><span class="n">migrations</span><span class="o">.</span><span class="n">Migration</span><span class="p">):</span></tt>
</div>
<div id="l8"
class="code sev- "><tt><i>8</i> &nbsp;</tt>
</div>
<div id="l9"
class="code sev- "><tt><i>9</i> <span class="n">dependencies</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l10"
class="code sev- "><tt><i>10</i> <span class="p">(</span><span class="s1">&#39;support&#39;</span><span class="p">,</span> <span class="s1">&#39;0003_rename_contributor_contributor_user&#39;</span><span class="p">),</span></tt>
</div>
<div id="l11"
class="code sev- "><tt><i>11</i> <span class="p">]</span></tt>
</div>
<div id="l12"
class="code sev- "><tt><i>12</i> &nbsp;</tt>
</div>
<div id="l13"
class="code sev- "><tt><i>13</i> <span class="n">operations</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l14"
class="code sev- "><tt><i>14</i> <span class="n">migrations</span><span class="o">.</span><span class="n">AlterField</span><span class="p">(</span></tt>
</div>
<div id="l15"
class="code sev- "><tt><i>15</i> <span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;project&#39;</span><span class="p">,</span></tt>
</div>
<div id="l16"
class="code sev- "><tt><i>16</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;author&#39;</span><span class="p">,</span></tt>
</div>
<div id="l17"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (145 > 79 characters)</li>
</ul><tt><i>17</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;author&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;support.contributor&#39;</span><span class="p">),</span></tt>
</div>
<div id="l18"
class="code sev- "><tt><i>18</i> <span class="p">),</span></tt>
</div>
<div id="l19"
class="code sev- "><tt><i>19</i> <span class="p">]</span></tt>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,73 @@
<!DOCTYPE html>
<html>
<head>
<title>flake8 violations: softdesk/support/migrations/0005_alter_project_author.py</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
<script>
function bindHandler(link) {
var code = link.getAttribute('data-code');
var key = location.pathname + '#' + code;
var ul = link.parentNode.querySelector('.details');
if (sessionStorage[key] != 'open') {
ul.style.display = 'none';
}
link.addEventListener('click', function (event) {
if (!ul.style.display || ul.style.display == 'none') {
ul.style.display = 'block';
sessionStorage[key] = 'open';
} else {
ul.style.display = 'none';
sessionStorage[key] = 'closed';
}
});
}
window.addEventListener('DOMContentLoaded', function () {
var links = document.querySelectorAll('#index > li > a');
for (var i = 0; i < links.length; i++) {
bindHandler(links[i]);
}
});
</script>
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<p id="srclink">
<a title="View full annotated source"
href="softdesk.support.migrations.0005_alter_project_author.source.html">
<img src="file.svg" alt="&#x2261;">
</a></p>
<h1>
<a href="index.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0005_alter_project_author.py
</a>
</h1>
<ul id="index">
<li>
<a data-code="E501">
<span class="count sev-2">
1
</span>
<strong>E501:</strong> line too long (144 > 79 characters)
</a>
<ul class="details">
<li>
<a href="softdesk.support.migrations.0005_alter_project_author.source.html#l17">
<tt><i>17</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;author&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;support.contributor&#39;</span><span class="p">),</span></tt>
</a>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,89 @@
<!DOCTYPE html>
<html>
<head>
<title>softdesk/support/migrations/0005_alter_project_author.py - flake8 annotated source</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<h1>
<a href="softdesk.support.migrations.0005_alter_project_author.report.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0005_alter_project_author.py source
</a>
</h1>
<div id="doc">
<div id="l1"
class="code sev- "><tt><i>1</i> <span class="c1"># Generated by Django 5.2.1 on 2025-05-25 19:37</span></tt>
</div>
<div id="l2"
class="code sev- "><tt><i>2</i> &nbsp;</tt>
</div>
<div id="l3"
class="code sev- "><tt><i>3</i> <span class="kn">import</span><span class="w"> </span><span class="nn">django.db.models.deletion</span></tt>
</div>
<div id="l4"
class="code sev- "><tt><i>4</i> <span class="kn">from</span><span class="w"> </span><span class="nn">django.db</span><span class="w"> </span><span class="kn">import</span> <span class="n">migrations</span><span class="p">,</span> <span class="n">models</span></tt>
</div>
<div id="l5"
class="code sev- "><tt><i>5</i> &nbsp;</tt>
</div>
<div id="l6"
class="code sev- "><tt><i>6</i> &nbsp;</tt>
</div>
<div id="l7"
class="code sev- "><tt><i>7</i> <span class="k">class</span><span class="w"> </span><span class="nc">Migration</span><span class="p">(</span><span class="n">migrations</span><span class="o">.</span><span class="n">Migration</span><span class="p">):</span></tt>
</div>
<div id="l8"
class="code sev- "><tt><i>8</i> &nbsp;</tt>
</div>
<div id="l9"
class="code sev- "><tt><i>9</i> <span class="n">dependencies</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l10"
class="code sev- "><tt><i>10</i> <span class="p">(</span><span class="s1">&#39;support&#39;</span><span class="p">,</span> <span class="s1">&#39;0004_alter_project_author&#39;</span><span class="p">),</span></tt>
</div>
<div id="l11"
class="code sev- "><tt><i>11</i> <span class="p">]</span></tt>
</div>
<div id="l12"
class="code sev- "><tt><i>12</i> &nbsp;</tt>
</div>
<div id="l13"
class="code sev- "><tt><i>13</i> <span class="n">operations</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l14"
class="code sev- "><tt><i>14</i> <span class="n">migrations</span><span class="o">.</span><span class="n">AlterField</span><span class="p">(</span></tt>
</div>
<div id="l15"
class="code sev- "><tt><i>15</i> <span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;project&#39;</span><span class="p">,</span></tt>
</div>
<div id="l16"
class="code sev- "><tt><i>16</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;author&#39;</span><span class="p">,</span></tt>
</div>
<div id="l17"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (144 > 79 characters)</li>
</ul><tt><i>17</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;author&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;support.contributor&#39;</span><span class="p">),</span></tt>
</div>
<div id="l18"
class="code sev- "><tt><i>18</i> <span class="p">),</span></tt>
</div>
<div id="l19"
class="code sev- "><tt><i>19</i> <span class="p">]</span></tt>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,73 @@
<!DOCTYPE html>
<html>
<head>
<title>flake8 violations: softdesk/support/migrations/0006_alter_project_author.py</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
<script>
function bindHandler(link) {
var code = link.getAttribute('data-code');
var key = location.pathname + '#' + code;
var ul = link.parentNode.querySelector('.details');
if (sessionStorage[key] != 'open') {
ul.style.display = 'none';
}
link.addEventListener('click', function (event) {
if (!ul.style.display || ul.style.display == 'none') {
ul.style.display = 'block';
sessionStorage[key] = 'open';
} else {
ul.style.display = 'none';
sessionStorage[key] = 'closed';
}
});
}
window.addEventListener('DOMContentLoaded', function () {
var links = document.querySelectorAll('#index > li > a');
for (var i = 0; i < links.length; i++) {
bindHandler(links[i]);
}
});
</script>
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<p id="srclink">
<a title="View full annotated source"
href="softdesk.support.migrations.0006_alter_project_author.source.html">
<img src="file.svg" alt="&#x2261;">
</a></p>
<h1>
<a href="index.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0006_alter_project_author.py
</a>
</h1>
<ul id="index">
<li>
<a data-code="E501">
<span class="count sev-2">
1
</span>
<strong>E501:</strong> line too long (156 > 79 characters)
</a>
<ul class="details">
<li>
<a href="softdesk.support.migrations.0006_alter_project_author.source.html#l17">
<tt><i>17</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;author&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;support.contributor&#39;</span><span class="p">),</span></tt>
</a>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,89 @@
<!DOCTYPE html>
<html>
<head>
<title>softdesk/support/migrations/0006_alter_project_author.py - flake8 annotated source</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<h1>
<a href="softdesk.support.migrations.0006_alter_project_author.report.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0006_alter_project_author.py source
</a>
</h1>
<div id="doc">
<div id="l1"
class="code sev- "><tt><i>1</i> <span class="c1"># Generated by Django 5.2.1 on 2025-05-25 19:37</span></tt>
</div>
<div id="l2"
class="code sev- "><tt><i>2</i> &nbsp;</tt>
</div>
<div id="l3"
class="code sev- "><tt><i>3</i> <span class="kn">import</span><span class="w"> </span><span class="nn">django.db.models.deletion</span></tt>
</div>
<div id="l4"
class="code sev- "><tt><i>4</i> <span class="kn">from</span><span class="w"> </span><span class="nn">django.db</span><span class="w"> </span><span class="kn">import</span> <span class="n">migrations</span><span class="p">,</span> <span class="n">models</span></tt>
</div>
<div id="l5"
class="code sev- "><tt><i>5</i> &nbsp;</tt>
</div>
<div id="l6"
class="code sev- "><tt><i>6</i> &nbsp;</tt>
</div>
<div id="l7"
class="code sev- "><tt><i>7</i> <span class="k">class</span><span class="w"> </span><span class="nc">Migration</span><span class="p">(</span><span class="n">migrations</span><span class="o">.</span><span class="n">Migration</span><span class="p">):</span></tt>
</div>
<div id="l8"
class="code sev- "><tt><i>8</i> &nbsp;</tt>
</div>
<div id="l9"
class="code sev- "><tt><i>9</i> <span class="n">dependencies</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l10"
class="code sev- "><tt><i>10</i> <span class="p">(</span><span class="s1">&#39;support&#39;</span><span class="p">,</span> <span class="s1">&#39;0005_alter_project_author&#39;</span><span class="p">),</span></tt>
</div>
<div id="l11"
class="code sev- "><tt><i>11</i> <span class="p">]</span></tt>
</div>
<div id="l12"
class="code sev- "><tt><i>12</i> &nbsp;</tt>
</div>
<div id="l13"
class="code sev- "><tt><i>13</i> <span class="n">operations</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l14"
class="code sev- "><tt><i>14</i> <span class="n">migrations</span><span class="o">.</span><span class="n">AlterField</span><span class="p">(</span></tt>
</div>
<div id="l15"
class="code sev- "><tt><i>15</i> <span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;project&#39;</span><span class="p">,</span></tt>
</div>
<div id="l16"
class="code sev- "><tt><i>16</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;author&#39;</span><span class="p">,</span></tt>
</div>
<div id="l17"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (156 > 79 characters)</li>
</ul><tt><i>17</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;author&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;support.contributor&#39;</span><span class="p">),</span></tt>
</div>
<div id="l18"
class="code sev- "><tt><i>18</i> <span class="p">),</span></tt>
</div>
<div id="l19"
class="code sev- "><tt><i>19</i> <span class="p">]</span></tt>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,73 @@
<!DOCTYPE html>
<html>
<head>
<title>flake8 violations: softdesk/support/migrations/0007_contributor_active_alter_project_author.py</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
<script>
function bindHandler(link) {
var code = link.getAttribute('data-code');
var key = location.pathname + '#' + code;
var ul = link.parentNode.querySelector('.details');
if (sessionStorage[key] != 'open') {
ul.style.display = 'none';
}
link.addEventListener('click', function (event) {
if (!ul.style.display || ul.style.display == 'none') {
ul.style.display = 'block';
sessionStorage[key] = 'open';
} else {
ul.style.display = 'none';
sessionStorage[key] = 'closed';
}
});
}
window.addEventListener('DOMContentLoaded', function () {
var links = document.querySelectorAll('#index > li > a');
for (var i = 0; i < links.length; i++) {
bindHandler(links[i]);
}
});
</script>
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<p id="srclink">
<a title="View full annotated source"
href="softdesk.support.migrations.0007_contributor_active_alter_project_author.source.html">
<img src="file.svg" alt="&#x2261;">
</a></p>
<h1>
<a href="index.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0007_contributor_active_alter_project_author.py
</a>
</h1>
<ul id="index">
<li>
<a data-code="E501">
<span class="count sev-2">
1
</span>
<strong>E501:</strong> line too long (159 > 79 characters)
</a>
<ul class="details">
<li>
<a href="softdesk.support.migrations.0007_contributor_active_alter_project_author.source.html#l24">
<tt><i>24</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;author&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">),</span></tt>
</a>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,110 @@
<!DOCTYPE html>
<html>
<head>
<title>softdesk/support/migrations/0007_contributor_active_alter_project_author.py - flake8 annotated source</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<h1>
<a href="softdesk.support.migrations.0007_contributor_active_alter_project_author.report.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0007_contributor_active_alter_project_author.py source
</a>
</h1>
<div id="doc">
<div id="l1"
class="code sev- "><tt><i>1</i> <span class="c1"># Generated by Django 5.2.1 on 2025-05-25 19:49</span></tt>
</div>
<div id="l2"
class="code sev- "><tt><i>2</i> &nbsp;</tt>
</div>
<div id="l3"
class="code sev- "><tt><i>3</i> <span class="kn">import</span><span class="w"> </span><span class="nn">django.db.models.deletion</span></tt>
</div>
<div id="l4"
class="code sev- "><tt><i>4</i> <span class="kn">from</span><span class="w"> </span><span class="nn">django.conf</span><span class="w"> </span><span class="kn">import</span> <span class="n">settings</span></tt>
</div>
<div id="l5"
class="code sev- "><tt><i>5</i> <span class="kn">from</span><span class="w"> </span><span class="nn">django.db</span><span class="w"> </span><span class="kn">import</span> <span class="n">migrations</span><span class="p">,</span> <span class="n">models</span></tt>
</div>
<div id="l6"
class="code sev- "><tt><i>6</i> &nbsp;</tt>
</div>
<div id="l7"
class="code sev- "><tt><i>7</i> &nbsp;</tt>
</div>
<div id="l8"
class="code sev- "><tt><i>8</i> <span class="k">class</span><span class="w"> </span><span class="nc">Migration</span><span class="p">(</span><span class="n">migrations</span><span class="o">.</span><span class="n">Migration</span><span class="p">):</span></tt>
</div>
<div id="l9"
class="code sev- "><tt><i>9</i> &nbsp;</tt>
</div>
<div id="l10"
class="code sev- "><tt><i>10</i> <span class="n">dependencies</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l11"
class="code sev- "><tt><i>11</i> <span class="p">(</span><span class="s1">&#39;support&#39;</span><span class="p">,</span> <span class="s1">&#39;0006_alter_project_author&#39;</span><span class="p">),</span></tt>
</div>
<div id="l12"
class="code sev- "><tt><i>12</i> <span class="n">migrations</span><span class="o">.</span><span class="n">swappable_dependency</span><span class="p">(</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">),</span></tt>
</div>
<div id="l13"
class="code sev- "><tt><i>13</i> <span class="p">]</span></tt>
</div>
<div id="l14"
class="code sev- "><tt><i>14</i> &nbsp;</tt>
</div>
<div id="l15"
class="code sev- "><tt><i>15</i> <span class="n">operations</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l16"
class="code sev- "><tt><i>16</i> <span class="n">migrations</span><span class="o">.</span><span class="n">AddField</span><span class="p">(</span></tt>
</div>
<div id="l17"
class="code sev- "><tt><i>17</i> <span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;contributor&#39;</span><span class="p">,</span></tt>
</div>
<div id="l18"
class="code sev- "><tt><i>18</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;active&#39;</span><span class="p">,</span></tt>
</div>
<div id="l19"
class="code sev- "><tt><i>19</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">BooleanField</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span></tt>
</div>
<div id="l20"
class="code sev- "><tt><i>20</i> <span class="p">),</span></tt>
</div>
<div id="l21"
class="code sev- "><tt><i>21</i> <span class="n">migrations</span><span class="o">.</span><span class="n">AlterField</span><span class="p">(</span></tt>
</div>
<div id="l22"
class="code sev- "><tt><i>22</i> <span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;project&#39;</span><span class="p">,</span></tt>
</div>
<div id="l23"
class="code sev- "><tt><i>23</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;author&#39;</span><span class="p">,</span></tt>
</div>
<div id="l24"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (159 > 79 characters)</li>
</ul><tt><i>24</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;author&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">),</span></tt>
</div>
<div id="l25"
class="code sev- "><tt><i>25</i> <span class="p">),</span></tt>
</div>
<div id="l26"
class="code sev- "><tt><i>26</i> <span class="p">]</span></tt>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,119 @@
<!DOCTYPE html>
<html>
<head>
<title>flake8 violations: softdesk/support/migrations/0010_alter_comment_author_alter_issue_author_and_more.py</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
<script>
function bindHandler(link) {
var code = link.getAttribute('data-code');
var key = location.pathname + '#' + code;
var ul = link.parentNode.querySelector('.details');
if (sessionStorage[key] != 'open') {
ul.style.display = 'none';
}
link.addEventListener('click', function (event) {
if (!ul.style.display || ul.style.display == 'none') {
ul.style.display = 'block';
sessionStorage[key] = 'open';
} else {
ul.style.display = 'none';
sessionStorage[key] = 'closed';
}
});
}
window.addEventListener('DOMContentLoaded', function () {
var links = document.querySelectorAll('#index > li > a');
for (var i = 0; i < links.length; i++) {
bindHandler(links[i]);
}
});
</script>
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<p id="srclink">
<a title="View full annotated source"
href="softdesk.support.migrations.0010_alter_comment_author_alter_issue_author_and_more.source.html">
<img src="file.svg" alt="&#x2261;">
</a></p>
<h1>
<a href="index.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0010_alter_comment_author_alter_issue_author_and_more.py
</a>
</h1>
<ul id="index">
<li>
<a data-code="E501">
<span class="count sev-2">
7
</span>
<strong>E501:</strong> line too long (155 > 79 characters)
(and 5 similar)
</a>
<ul class="details">
<li>
<p>Line too long (155 > 79 characters):</p>
<a href="softdesk.support.migrations.0010_alter_comment_author_alter_issue_author_and_more.source.html#l19">
<tt><i>19</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;comment_author&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">),</span></tt>
</a>
</li><li>
<p>Line too long (153 > 79 characters):</p>
<a href="softdesk.support.migrations.0010_alter_comment_author_alter_issue_author_and_more.source.html#l24">
<tt><i>24</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;issue_author&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">),</span></tt>
</a>
</li><li>
<p>Line too long (155 > 79 characters):</p>
<a href="softdesk.support.migrations.0010_alter_comment_author_alter_issue_author_and_more.source.html#l29">
<tt><i>29</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;project_author&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">),</span></tt>
</a>
</li><li>
<p>Line too long (117 > 79 characters):</p>
<a href="softdesk.support.migrations.0010_alter_comment_author_alter_issue_author_and_more.source.html#l34">
<tt><i>34</i> <span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">BigAutoField</span><span class="p">(</span><span class="n">auto_created</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">primary_key</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">serialize</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;ID&#39;</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (128 > 79 characters):</p>
<a href="softdesk.support.migrations.0010_alter_comment_author_alter_issue_author_and_more.source.html#l37">
<tt><i>37</i> <span class="p">(</span><span class="s1">&#39;contributor&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (138 > 79 characters):</p>
<a href="softdesk.support.migrations.0010_alter_comment_author_alter_issue_author_and_more.source.html#l38">
<tt><i>38</i> <span class="p">(</span><span class="s1">&#39;project&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">CASCADE</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;project&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;support.project&#39;</span><span class="p">)),</span></tt>
</a>
</li><li>
<p>Line too long (137 > 79 characters):</p>
<a href="softdesk.support.migrations.0010_alter_comment_author_alter_issue_author_and_more.source.html#l47">
<tt><i>47</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ManyToManyField</span><span class="p">(</span><span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;contribution&#39;</span><span class="p">,</span> <span class="n">through</span><span class="o">=</span><span class="s1">&#39;support.ProjectContributor&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">),</span></tt>
</a>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,242 @@
<!DOCTYPE html>
<html>
<head>
<title>softdesk/support/migrations/0010_alter_comment_author_alter_issue_author_and_more.py - flake8 annotated source</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<h1>
<a href="softdesk.support.migrations.0010_alter_comment_author_alter_issue_author_and_more.report.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0010_alter_comment_author_alter_issue_author_and_more.py source
</a>
</h1>
<div id="doc">
<div id="l1"
class="code sev- "><tt><i>1</i> <span class="c1"># Generated by Django 5.2.1 on 2025-05-26 05:53</span></tt>
</div>
<div id="l2"
class="code sev- "><tt><i>2</i> &nbsp;</tt>
</div>
<div id="l3"
class="code sev- "><tt><i>3</i> <span class="kn">import</span><span class="w"> </span><span class="nn">django.db.models.deletion</span></tt>
</div>
<div id="l4"
class="code sev- "><tt><i>4</i> <span class="kn">from</span><span class="w"> </span><span class="nn">django.conf</span><span class="w"> </span><span class="kn">import</span> <span class="n">settings</span></tt>
</div>
<div id="l5"
class="code sev- "><tt><i>5</i> <span class="kn">from</span><span class="w"> </span><span class="nn">django.db</span><span class="w"> </span><span class="kn">import</span> <span class="n">migrations</span><span class="p">,</span> <span class="n">models</span></tt>
</div>
<div id="l6"
class="code sev- "><tt><i>6</i> &nbsp;</tt>
</div>
<div id="l7"
class="code sev- "><tt><i>7</i> &nbsp;</tt>
</div>
<div id="l8"
class="code sev- "><tt><i>8</i> <span class="k">class</span><span class="w"> </span><span class="nc">Migration</span><span class="p">(</span><span class="n">migrations</span><span class="o">.</span><span class="n">Migration</span><span class="p">):</span></tt>
</div>
<div id="l9"
class="code sev- "><tt><i>9</i> &nbsp;</tt>
</div>
<div id="l10"
class="code sev- "><tt><i>10</i> <span class="n">dependencies</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l11"
class="code sev- "><tt><i>11</i> <span class="p">(</span><span class="s1">&#39;support&#39;</span><span class="p">,</span> <span class="s1">&#39;0009_rename_contributor_user_contributor_username&#39;</span><span class="p">),</span></tt>
</div>
<div id="l12"
class="code sev- "><tt><i>12</i> <span class="n">migrations</span><span class="o">.</span><span class="n">swappable_dependency</span><span class="p">(</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">),</span></tt>
</div>
<div id="l13"
class="code sev- "><tt><i>13</i> <span class="p">]</span></tt>
</div>
<div id="l14"
class="code sev- "><tt><i>14</i> &nbsp;</tt>
</div>
<div id="l15"
class="code sev- "><tt><i>15</i> <span class="n">operations</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l16"
class="code sev- "><tt><i>16</i> <span class="n">migrations</span><span class="o">.</span><span class="n">AlterField</span><span class="p">(</span></tt>
</div>
<div id="l17"
class="code sev- "><tt><i>17</i> <span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;comment&#39;</span><span class="p">,</span></tt>
</div>
<div id="l18"
class="code sev- "><tt><i>18</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;author&#39;</span><span class="p">,</span></tt>
</div>
<div id="l19"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (155 > 79 characters)</li>
</ul><tt><i>19</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;comment_author&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">),</span></tt>
</div>
<div id="l20"
class="code sev- "><tt><i>20</i> <span class="p">),</span></tt>
</div>
<div id="l21"
class="code sev- "><tt><i>21</i> <span class="n">migrations</span><span class="o">.</span><span class="n">AlterField</span><span class="p">(</span></tt>
</div>
<div id="l22"
class="code sev- "><tt><i>22</i> <span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;issue&#39;</span><span class="p">,</span></tt>
</div>
<div id="l23"
class="code sev- "><tt><i>23</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;author&#39;</span><span class="p">,</span></tt>
</div>
<div id="l24"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (153 > 79 characters)</li>
</ul><tt><i>24</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;issue_author&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">),</span></tt>
</div>
<div id="l25"
class="code sev- "><tt><i>25</i> <span class="p">),</span></tt>
</div>
<div id="l26"
class="code sev- "><tt><i>26</i> <span class="n">migrations</span><span class="o">.</span><span class="n">AlterField</span><span class="p">(</span></tt>
</div>
<div id="l27"
class="code sev- "><tt><i>27</i> <span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;project&#39;</span><span class="p">,</span></tt>
</div>
<div id="l28"
class="code sev- "><tt><i>28</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;author&#39;</span><span class="p">,</span></tt>
</div>
<div id="l29"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (155 > 79 characters)</li>
</ul><tt><i>29</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;project_author&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">),</span></tt>
</div>
<div id="l30"
class="code sev- "><tt><i>30</i> <span class="p">),</span></tt>
</div>
<div id="l31"
class="code sev- "><tt><i>31</i> <span class="n">migrations</span><span class="o">.</span><span class="n">CreateModel</span><span class="p">(</span></tt>
</div>
<div id="l32"
class="code sev- "><tt><i>32</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;ProjectContributor&#39;</span><span class="p">,</span></tt>
</div>
<div id="l33"
class="code sev- "><tt><i>33</i> <span class="n">fields</span><span class="o">=</span><span class="p">[</span></tt>
</div>
<div id="l34"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (117 > 79 characters)</li>
</ul><tt><i>34</i> <span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">BigAutoField</span><span class="p">(</span><span class="n">auto_created</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">primary_key</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">serialize</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">&#39;ID&#39;</span><span class="p">)),</span></tt>
</div>
<div id="l35"
class="code sev- "><tt><i>35</i> <span class="p">(</span><span class="s1">&#39;active&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">BooleanField</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="kc">True</span><span class="p">)),</span></tt>
</div>
<div id="l36"
class="code sev- "><tt><i>36</i> <span class="p">(</span><span class="s1">&#39;data&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">max_length</span><span class="o">=</span><span class="mi">255</span><span class="p">)),</span></tt>
</div>
<div id="l37"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (128 > 79 characters)</li>
</ul><tt><i>37</i> <span class="p">(</span><span class="s1">&#39;contributor&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">)),</span></tt>
</div>
<div id="l38"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (138 > 79 characters)</li>
</ul><tt><i>38</i> <span class="p">(</span><span class="s1">&#39;project&#39;</span><span class="p">,</span> <span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">CASCADE</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;project&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;support.project&#39;</span><span class="p">)),</span></tt>
</div>
<div id="l39"
class="code sev- "><tt><i>39</i> <span class="p">],</span></tt>
</div>
<div id="l40"
class="code sev- "><tt><i>40</i> <span class="n">options</span><span class="o">=</span><span class="p">{</span></tt>
</div>
<div id="l41"
class="code sev- "><tt><i>41</i> <span class="s1">&#39;unique_together&#39;</span><span class="p">:</span> <span class="p">{(</span><span class="s1">&#39;contributor&#39;</span><span class="p">,</span> <span class="s1">&#39;project&#39;</span><span class="p">)},</span></tt>
</div>
<div id="l42"
class="code sev- "><tt><i>42</i> <span class="p">},</span></tt>
</div>
<div id="l43"
class="code sev- "><tt><i>43</i> <span class="p">),</span></tt>
</div>
<div id="l44"
class="code sev- "><tt><i>44</i> <span class="n">migrations</span><span class="o">.</span><span class="n">AlterField</span><span class="p">(</span></tt>
</div>
<div id="l45"
class="code sev- "><tt><i>45</i> <span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;project&#39;</span><span class="p">,</span></tt>
</div>
<div id="l46"
class="code sev- "><tt><i>46</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;contributors&#39;</span><span class="p">,</span></tt>
</div>
<div id="l47"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (137 > 79 characters)</li>
</ul><tt><i>47</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ManyToManyField</span><span class="p">(</span><span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;contribution&#39;</span><span class="p">,</span> <span class="n">through</span><span class="o">=</span><span class="s1">&#39;support.ProjectContributor&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">),</span></tt>
</div>
<div id="l48"
class="code sev- "><tt><i>48</i> <span class="p">),</span></tt>
</div>
<div id="l49"
class="code sev- "><tt><i>49</i> <span class="n">migrations</span><span class="o">.</span><span class="n">DeleteModel</span><span class="p">(</span></tt>
</div>
<div id="l50"
class="code sev- "><tt><i>50</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;Contributor&#39;</span><span class="p">,</span></tt>
</div>
<div id="l51"
class="code sev- "><tt><i>51</i> <span class="p">),</span></tt>
</div>
<div id="l52"
class="code sev- "><tt><i>52</i> <span class="p">]</span></tt>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,91 @@
<!DOCTYPE html>
<html>
<head>
<title>flake8 violations: softdesk/support/migrations/0011_alter_issue_priority_alter_issue_status_and_more.py</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
<script>
function bindHandler(link) {
var code = link.getAttribute('data-code');
var key = location.pathname + '#' + code;
var ul = link.parentNode.querySelector('.details');
if (sessionStorage[key] != 'open') {
ul.style.display = 'none';
}
link.addEventListener('click', function (event) {
if (!ul.style.display || ul.style.display == 'none') {
ul.style.display = 'block';
sessionStorage[key] = 'open';
} else {
ul.style.display = 'none';
sessionStorage[key] = 'closed';
}
});
}
window.addEventListener('DOMContentLoaded', function () {
var links = document.querySelectorAll('#index > li > a');
for (var i = 0; i < links.length; i++) {
bindHandler(links[i]);
}
});
</script>
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<p id="srclink">
<a title="View full annotated source"
href="softdesk.support.migrations.0011_alter_issue_priority_alter_issue_status_and_more.source.html">
<img src="file.svg" alt="&#x2261;">
</a></p>
<h1>
<a href="index.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0011_alter_issue_priority_alter_issue_status_and_more.py
</a>
</h1>
<ul id="index">
<li>
<a data-code="E501">
<span class="count sev-2">
3
</span>
<strong>E501:</strong> line too long (106 > 79 characters)
(and 2 similar)
</a>
<ul class="details">
<li>
<p>Line too long (106 > 79 characters):</p>
<a href="softdesk.support.migrations.0011_alter_issue_priority_alter_issue_status_and_more.source.html#l16">
<tt><i>16</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">choices</span><span class="o">=</span><span class="p">[(</span><span class="s1">&#39;L&#39;</span><span class="p">,</span> <span class="s1">&#39;Low&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;M&#39;</span><span class="p">,</span> <span class="s1">&#39;Medium&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;H&#39;</span><span class="p">,</span> <span class="s1">&#39;High&#39;</span><span class="p">)],</span> <span class="n">max_length</span><span class="o">=</span><span class="mi">15</span><span class="p">),</span></tt>
</a>
</li><li>
<p>Line too long (134 > 79 characters):</p>
<a href="softdesk.support.migrations.0011_alter_issue_priority_alter_issue_status_and_more.source.html#l21">
<tt><i>21</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">choices</span><span class="o">=</span><span class="p">[(</span><span class="s1">&#39;ToDo&#39;</span><span class="p">,</span> <span class="s1">&#39;Todo&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;InProgress&#39;</span><span class="p">,</span> <span class="s1">&#39;Inprogress&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;Finished&#39;</span><span class="p">,</span> <span class="s1">&#39;Finished&#39;</span><span class="p">)],</span> <span class="n">max_length</span><span class="o">=</span><span class="mi">15</span><span class="p">),</span></tt>
</a>
</li><li>
<p>Line too long (118 > 79 characters):</p>
<a href="softdesk.support.migrations.0011_alter_issue_priority_alter_issue_status_and_more.source.html#l26">
<tt><i>26</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">choices</span><span class="o">=</span><span class="p">[(</span><span class="s1">&#39;Bug&#39;</span><span class="p">,</span> <span class="s1">&#39;Bug&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;Feature&#39;</span><span class="p">,</span> <span class="s1">&#39;Feature&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;Task&#39;</span><span class="p">,</span> <span class="s1">&#39;Task&#39;</span><span class="p">)],</span> <span class="n">max_length</span><span class="o">=</span><span class="mi">15</span><span class="p">),</span></tt>
</a>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,134 @@
<!DOCTYPE html>
<html>
<head>
<title>softdesk/support/migrations/0011_alter_issue_priority_alter_issue_status_and_more.py - flake8 annotated source</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<h1>
<a href="softdesk.support.migrations.0011_alter_issue_priority_alter_issue_status_and_more.report.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0011_alter_issue_priority_alter_issue_status_and_more.py source
</a>
</h1>
<div id="doc">
<div id="l1"
class="code sev- "><tt><i>1</i> <span class="c1"># Generated by Django 5.2.1 on 2025-05-26 18:26</span></tt>
</div>
<div id="l2"
class="code sev- "><tt><i>2</i> &nbsp;</tt>
</div>
<div id="l3"
class="code sev- "><tt><i>3</i> <span class="kn">from</span><span class="w"> </span><span class="nn">django.db</span><span class="w"> </span><span class="kn">import</span> <span class="n">migrations</span><span class="p">,</span> <span class="n">models</span></tt>
</div>
<div id="l4"
class="code sev- "><tt><i>4</i> &nbsp;</tt>
</div>
<div id="l5"
class="code sev- "><tt><i>5</i> &nbsp;</tt>
</div>
<div id="l6"
class="code sev- "><tt><i>6</i> <span class="k">class</span><span class="w"> </span><span class="nc">Migration</span><span class="p">(</span><span class="n">migrations</span><span class="o">.</span><span class="n">Migration</span><span class="p">):</span></tt>
</div>
<div id="l7"
class="code sev- "><tt><i>7</i> &nbsp;</tt>
</div>
<div id="l8"
class="code sev- "><tt><i>8</i> <span class="n">dependencies</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l9"
class="code sev- "><tt><i>9</i> <span class="p">(</span><span class="s1">&#39;support&#39;</span><span class="p">,</span> <span class="s1">&#39;0010_alter_comment_author_alter_issue_author_and_more&#39;</span><span class="p">),</span></tt>
</div>
<div id="l10"
class="code sev- "><tt><i>10</i> <span class="p">]</span></tt>
</div>
<div id="l11"
class="code sev- "><tt><i>11</i> &nbsp;</tt>
</div>
<div id="l12"
class="code sev- "><tt><i>12</i> <span class="n">operations</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l13"
class="code sev- "><tt><i>13</i> <span class="n">migrations</span><span class="o">.</span><span class="n">AlterField</span><span class="p">(</span></tt>
</div>
<div id="l14"
class="code sev- "><tt><i>14</i> <span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;issue&#39;</span><span class="p">,</span></tt>
</div>
<div id="l15"
class="code sev- "><tt><i>15</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;priority&#39;</span><span class="p">,</span></tt>
</div>
<div id="l16"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (106 > 79 characters)</li>
</ul><tt><i>16</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">choices</span><span class="o">=</span><span class="p">[(</span><span class="s1">&#39;L&#39;</span><span class="p">,</span> <span class="s1">&#39;Low&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;M&#39;</span><span class="p">,</span> <span class="s1">&#39;Medium&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;H&#39;</span><span class="p">,</span> <span class="s1">&#39;High&#39;</span><span class="p">)],</span> <span class="n">max_length</span><span class="o">=</span><span class="mi">15</span><span class="p">),</span></tt>
</div>
<div id="l17"
class="code sev- "><tt><i>17</i> <span class="p">),</span></tt>
</div>
<div id="l18"
class="code sev- "><tt><i>18</i> <span class="n">migrations</span><span class="o">.</span><span class="n">AlterField</span><span class="p">(</span></tt>
</div>
<div id="l19"
class="code sev- "><tt><i>19</i> <span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;issue&#39;</span><span class="p">,</span></tt>
</div>
<div id="l20"
class="code sev- "><tt><i>20</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;status&#39;</span><span class="p">,</span></tt>
</div>
<div id="l21"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (134 > 79 characters)</li>
</ul><tt><i>21</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">choices</span><span class="o">=</span><span class="p">[(</span><span class="s1">&#39;ToDo&#39;</span><span class="p">,</span> <span class="s1">&#39;Todo&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;InProgress&#39;</span><span class="p">,</span> <span class="s1">&#39;Inprogress&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;Finished&#39;</span><span class="p">,</span> <span class="s1">&#39;Finished&#39;</span><span class="p">)],</span> <span class="n">max_length</span><span class="o">=</span><span class="mi">15</span><span class="p">),</span></tt>
</div>
<div id="l22"
class="code sev- "><tt><i>22</i> <span class="p">),</span></tt>
</div>
<div id="l23"
class="code sev- "><tt><i>23</i> <span class="n">migrations</span><span class="o">.</span><span class="n">AlterField</span><span class="p">(</span></tt>
</div>
<div id="l24"
class="code sev- "><tt><i>24</i> <span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;issue&#39;</span><span class="p">,</span></tt>
</div>
<div id="l25"
class="code sev- "><tt><i>25</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;tag&#39;</span><span class="p">,</span></tt>
</div>
<div id="l26"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (118 > 79 characters)</li>
</ul><tt><i>26</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">choices</span><span class="o">=</span><span class="p">[(</span><span class="s1">&#39;Bug&#39;</span><span class="p">,</span> <span class="s1">&#39;Bug&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;Feature&#39;</span><span class="p">,</span> <span class="s1">&#39;Feature&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;Task&#39;</span><span class="p">,</span> <span class="s1">&#39;Task&#39;</span><span class="p">)],</span> <span class="n">max_length</span><span class="o">=</span><span class="mi">15</span><span class="p">),</span></tt>
</div>
<div id="l27"
class="code sev- "><tt><i>27</i> <span class="p">),</span></tt>
</div>
<div id="l28"
class="code sev- "><tt><i>28</i> <span class="p">]</span></tt>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,84 @@
<!DOCTYPE html>
<html>
<head>
<title>flake8 violations: softdesk/support/migrations/0012_alter_issue_priority_alter_issue_status.py</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
<script>
function bindHandler(link) {
var code = link.getAttribute('data-code');
var key = location.pathname + '#' + code;
var ul = link.parentNode.querySelector('.details');
if (sessionStorage[key] != 'open') {
ul.style.display = 'none';
}
link.addEventListener('click', function (event) {
if (!ul.style.display || ul.style.display == 'none') {
ul.style.display = 'block';
sessionStorage[key] = 'open';
} else {
ul.style.display = 'none';
sessionStorage[key] = 'closed';
}
});
}
window.addEventListener('DOMContentLoaded', function () {
var links = document.querySelectorAll('#index > li > a');
for (var i = 0; i < links.length; i++) {
bindHandler(links[i]);
}
});
</script>
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<p id="srclink">
<a title="View full annotated source"
href="softdesk.support.migrations.0012_alter_issue_priority_alter_issue_status.source.html">
<img src="file.svg" alt="&#x2261;">
</a></p>
<h1>
<a href="index.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0012_alter_issue_priority_alter_issue_status.py
</a>
</h1>
<ul id="index">
<li>
<a data-code="E501">
<span class="count sev-2">
2
</span>
<strong>E501:</strong> line too long (116 > 79 characters)
(and 1 similar)
</a>
<ul class="details">
<li>
<p>Line too long (116 > 79 characters):</p>
<a href="softdesk.support.migrations.0012_alter_issue_priority_alter_issue_status.source.html#l16">
<tt><i>16</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">choices</span><span class="o">=</span><span class="p">[(</span><span class="s1">&#39;Low&#39;</span><span class="p">,</span> <span class="s1">&#39;Low&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;Medium&#39;</span><span class="p">,</span> <span class="s1">&#39;Medium&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;High&#39;</span><span class="p">,</span> <span class="s1">&#39;High&#39;</span><span class="p">)],</span> <span class="n">max_length</span><span class="o">=</span><span class="mi">15</span><span class="p">),</span></tt>
</a>
</li><li>
<p>Line too long (135 > 79 characters):</p>
<a href="softdesk.support.migrations.0012_alter_issue_priority_alter_issue_status.source.html#l21">
<tt><i>21</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">choices</span><span class="o">=</span><span class="p">[(</span><span class="s1">&#39;ToDo&#39;</span><span class="p">,</span> <span class="s1">&#39;Todo&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;In Progress&#39;</span><span class="p">,</span> <span class="s1">&#39;Inprogress&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;Finished&#39;</span><span class="p">,</span> <span class="s1">&#39;Finished&#39;</span><span class="p">)],</span> <span class="n">max_length</span><span class="o">=</span><span class="mi">15</span><span class="p">),</span></tt>
</a>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,110 @@
<!DOCTYPE html>
<html>
<head>
<title>softdesk/support/migrations/0012_alter_issue_priority_alter_issue_status.py - flake8 annotated source</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<h1>
<a href="softdesk.support.migrations.0012_alter_issue_priority_alter_issue_status.report.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0012_alter_issue_priority_alter_issue_status.py source
</a>
</h1>
<div id="doc">
<div id="l1"
class="code sev- "><tt><i>1</i> <span class="c1"># Generated by Django 5.2.1 on 2025-05-26 18:26</span></tt>
</div>
<div id="l2"
class="code sev- "><tt><i>2</i> &nbsp;</tt>
</div>
<div id="l3"
class="code sev- "><tt><i>3</i> <span class="kn">from</span><span class="w"> </span><span class="nn">django.db</span><span class="w"> </span><span class="kn">import</span> <span class="n">migrations</span><span class="p">,</span> <span class="n">models</span></tt>
</div>
<div id="l4"
class="code sev- "><tt><i>4</i> &nbsp;</tt>
</div>
<div id="l5"
class="code sev- "><tt><i>5</i> &nbsp;</tt>
</div>
<div id="l6"
class="code sev- "><tt><i>6</i> <span class="k">class</span><span class="w"> </span><span class="nc">Migration</span><span class="p">(</span><span class="n">migrations</span><span class="o">.</span><span class="n">Migration</span><span class="p">):</span></tt>
</div>
<div id="l7"
class="code sev- "><tt><i>7</i> &nbsp;</tt>
</div>
<div id="l8"
class="code sev- "><tt><i>8</i> <span class="n">dependencies</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l9"
class="code sev- "><tt><i>9</i> <span class="p">(</span><span class="s1">&#39;support&#39;</span><span class="p">,</span> <span class="s1">&#39;0011_alter_issue_priority_alter_issue_status_and_more&#39;</span><span class="p">),</span></tt>
</div>
<div id="l10"
class="code sev- "><tt><i>10</i> <span class="p">]</span></tt>
</div>
<div id="l11"
class="code sev- "><tt><i>11</i> &nbsp;</tt>
</div>
<div id="l12"
class="code sev- "><tt><i>12</i> <span class="n">operations</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l13"
class="code sev- "><tt><i>13</i> <span class="n">migrations</span><span class="o">.</span><span class="n">AlterField</span><span class="p">(</span></tt>
</div>
<div id="l14"
class="code sev- "><tt><i>14</i> <span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;issue&#39;</span><span class="p">,</span></tt>
</div>
<div id="l15"
class="code sev- "><tt><i>15</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;priority&#39;</span><span class="p">,</span></tt>
</div>
<div id="l16"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (116 > 79 characters)</li>
</ul><tt><i>16</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">choices</span><span class="o">=</span><span class="p">[(</span><span class="s1">&#39;Low&#39;</span><span class="p">,</span> <span class="s1">&#39;Low&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;Medium&#39;</span><span class="p">,</span> <span class="s1">&#39;Medium&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;High&#39;</span><span class="p">,</span> <span class="s1">&#39;High&#39;</span><span class="p">)],</span> <span class="n">max_length</span><span class="o">=</span><span class="mi">15</span><span class="p">),</span></tt>
</div>
<div id="l17"
class="code sev- "><tt><i>17</i> <span class="p">),</span></tt>
</div>
<div id="l18"
class="code sev- "><tt><i>18</i> <span class="n">migrations</span><span class="o">.</span><span class="n">AlterField</span><span class="p">(</span></tt>
</div>
<div id="l19"
class="code sev- "><tt><i>19</i> <span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;issue&#39;</span><span class="p">,</span></tt>
</div>
<div id="l20"
class="code sev- "><tt><i>20</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;status&#39;</span><span class="p">,</span></tt>
</div>
<div id="l21"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (135 > 79 characters)</li>
</ul><tt><i>21</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">choices</span><span class="o">=</span><span class="p">[(</span><span class="s1">&#39;ToDo&#39;</span><span class="p">,</span> <span class="s1">&#39;Todo&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;In Progress&#39;</span><span class="p">,</span> <span class="s1">&#39;Inprogress&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;Finished&#39;</span><span class="p">,</span> <span class="s1">&#39;Finished&#39;</span><span class="p">)],</span> <span class="n">max_length</span><span class="o">=</span><span class="mi">15</span><span class="p">),</span></tt>
</div>
<div id="l22"
class="code sev- "><tt><i>22</i> <span class="p">),</span></tt>
</div>
<div id="l23"
class="code sev- "><tt><i>23</i> <span class="p">]</span></tt>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,73 @@
<!DOCTYPE html>
<html>
<head>
<title>flake8 violations: softdesk/support/migrations/0013_alter_issue_project.py</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
<script>
function bindHandler(link) {
var code = link.getAttribute('data-code');
var key = location.pathname + '#' + code;
var ul = link.parentNode.querySelector('.details');
if (sessionStorage[key] != 'open') {
ul.style.display = 'none';
}
link.addEventListener('click', function (event) {
if (!ul.style.display || ul.style.display == 'none') {
ul.style.display = 'block';
sessionStorage[key] = 'open';
} else {
ul.style.display = 'none';
sessionStorage[key] = 'closed';
}
});
}
window.addEventListener('DOMContentLoaded', function () {
var links = document.querySelectorAll('#index > li > a');
for (var i = 0; i < links.length; i++) {
bindHandler(links[i]);
}
});
</script>
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<p id="srclink">
<a title="View full annotated source"
href="softdesk.support.migrations.0013_alter_issue_project.source.html">
<img src="file.svg" alt="&#x2261;">
</a></p>
<h1>
<a href="index.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0013_alter_issue_project.py
</a>
</h1>
<ul id="index">
<li>
<a data-code="E501">
<span class="count sev-2">
1
</span>
<strong>E501:</strong> line too long (114 > 79 characters)
</a>
<ul class="details">
<li>
<a href="softdesk.support.migrations.0013_alter_issue_project.source.html#l17">
<tt><i>17</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">CASCADE</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;support.project&#39;</span><span class="p">),</span></tt>
</a>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,89 @@
<!DOCTYPE html>
<html>
<head>
<title>softdesk/support/migrations/0013_alter_issue_project.py - flake8 annotated source</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<h1>
<a href="softdesk.support.migrations.0013_alter_issue_project.report.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0013_alter_issue_project.py source
</a>
</h1>
<div id="doc">
<div id="l1"
class="code sev- "><tt><i>1</i> <span class="c1"># Generated by Django 5.2.1 on 2025-05-26 19:06</span></tt>
</div>
<div id="l2"
class="code sev- "><tt><i>2</i> &nbsp;</tt>
</div>
<div id="l3"
class="code sev- "><tt><i>3</i> <span class="kn">import</span><span class="w"> </span><span class="nn">django.db.models.deletion</span></tt>
</div>
<div id="l4"
class="code sev- "><tt><i>4</i> <span class="kn">from</span><span class="w"> </span><span class="nn">django.db</span><span class="w"> </span><span class="kn">import</span> <span class="n">migrations</span><span class="p">,</span> <span class="n">models</span></tt>
</div>
<div id="l5"
class="code sev- "><tt><i>5</i> &nbsp;</tt>
</div>
<div id="l6"
class="code sev- "><tt><i>6</i> &nbsp;</tt>
</div>
<div id="l7"
class="code sev- "><tt><i>7</i> <span class="k">class</span><span class="w"> </span><span class="nc">Migration</span><span class="p">(</span><span class="n">migrations</span><span class="o">.</span><span class="n">Migration</span><span class="p">):</span></tt>
</div>
<div id="l8"
class="code sev- "><tt><i>8</i> &nbsp;</tt>
</div>
<div id="l9"
class="code sev- "><tt><i>9</i> <span class="n">dependencies</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l10"
class="code sev- "><tt><i>10</i> <span class="p">(</span><span class="s1">&#39;support&#39;</span><span class="p">,</span> <span class="s1">&#39;0012_alter_issue_priority_alter_issue_status&#39;</span><span class="p">),</span></tt>
</div>
<div id="l11"
class="code sev- "><tt><i>11</i> <span class="p">]</span></tt>
</div>
<div id="l12"
class="code sev- "><tt><i>12</i> &nbsp;</tt>
</div>
<div id="l13"
class="code sev- "><tt><i>13</i> <span class="n">operations</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l14"
class="code sev- "><tt><i>14</i> <span class="n">migrations</span><span class="o">.</span><span class="n">AlterField</span><span class="p">(</span></tt>
</div>
<div id="l15"
class="code sev- "><tt><i>15</i> <span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;issue&#39;</span><span class="p">,</span></tt>
</div>
<div id="l16"
class="code sev- "><tt><i>16</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;project&#39;</span><span class="p">,</span></tt>
</div>
<div id="l17"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (114 > 79 characters)</li>
</ul><tt><i>17</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">CASCADE</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;support.project&#39;</span><span class="p">),</span></tt>
</div>
<div id="l18"
class="code sev- "><tt><i>18</i> <span class="p">),</span></tt>
</div>
<div id="l19"
class="code sev- "><tt><i>19</i> <span class="p">]</span></tt>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,73 @@
<!DOCTYPE html>
<html>
<head>
<title>flake8 violations: softdesk/support/migrations/0014_alter_issue_project.py</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
<script>
function bindHandler(link) {
var code = link.getAttribute('data-code');
var key = location.pathname + '#' + code;
var ul = link.parentNode.querySelector('.details');
if (sessionStorage[key] != 'open') {
ul.style.display = 'none';
}
link.addEventListener('click', function (event) {
if (!ul.style.display || ul.style.display == 'none') {
ul.style.display = 'block';
sessionStorage[key] = 'open';
} else {
ul.style.display = 'none';
sessionStorage[key] = 'closed';
}
});
}
window.addEventListener('DOMContentLoaded', function () {
var links = document.querySelectorAll('#index > li > a');
for (var i = 0; i < links.length; i++) {
bindHandler(links[i]);
}
});
</script>
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<p id="srclink">
<a title="View full annotated source"
href="softdesk.support.migrations.0014_alter_issue_project.source.html">
<img src="file.svg" alt="&#x2261;">
</a></p>
<h1>
<a href="index.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0014_alter_issue_project.py
</a>
</h1>
<ul id="index">
<li>
<a data-code="E501">
<span class="count sev-2">
1
</span>
<strong>E501:</strong> line too long (103 > 79 characters)
</a>
<ul class="details">
<li>
<a href="softdesk.support.migrations.0014_alter_issue_project.source.html#l17">
<tt><i>17</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">CASCADE</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;support.project&#39;</span><span class="p">),</span></tt>
</a>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,89 @@
<!DOCTYPE html>
<html>
<head>
<title>softdesk/support/migrations/0014_alter_issue_project.py - flake8 annotated source</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<h1>
<a href="softdesk.support.migrations.0014_alter_issue_project.report.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0014_alter_issue_project.py source
</a>
</h1>
<div id="doc">
<div id="l1"
class="code sev- "><tt><i>1</i> <span class="c1"># Generated by Django 5.2.1 on 2025-05-27 09:30</span></tt>
</div>
<div id="l2"
class="code sev- "><tt><i>2</i> &nbsp;</tt>
</div>
<div id="l3"
class="code sev- "><tt><i>3</i> <span class="kn">import</span><span class="w"> </span><span class="nn">django.db.models.deletion</span></tt>
</div>
<div id="l4"
class="code sev- "><tt><i>4</i> <span class="kn">from</span><span class="w"> </span><span class="nn">django.db</span><span class="w"> </span><span class="kn">import</span> <span class="n">migrations</span><span class="p">,</span> <span class="n">models</span></tt>
</div>
<div id="l5"
class="code sev- "><tt><i>5</i> &nbsp;</tt>
</div>
<div id="l6"
class="code sev- "><tt><i>6</i> &nbsp;</tt>
</div>
<div id="l7"
class="code sev- "><tt><i>7</i> <span class="k">class</span><span class="w"> </span><span class="nc">Migration</span><span class="p">(</span><span class="n">migrations</span><span class="o">.</span><span class="n">Migration</span><span class="p">):</span></tt>
</div>
<div id="l8"
class="code sev- "><tt><i>8</i> &nbsp;</tt>
</div>
<div id="l9"
class="code sev- "><tt><i>9</i> <span class="n">dependencies</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l10"
class="code sev- "><tt><i>10</i> <span class="p">(</span><span class="s1">&#39;support&#39;</span><span class="p">,</span> <span class="s1">&#39;0013_alter_issue_project&#39;</span><span class="p">),</span></tt>
</div>
<div id="l11"
class="code sev- "><tt><i>11</i> <span class="p">]</span></tt>
</div>
<div id="l12"
class="code sev- "><tt><i>12</i> &nbsp;</tt>
</div>
<div id="l13"
class="code sev- "><tt><i>13</i> <span class="n">operations</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l14"
class="code sev- "><tt><i>14</i> <span class="n">migrations</span><span class="o">.</span><span class="n">AlterField</span><span class="p">(</span></tt>
</div>
<div id="l15"
class="code sev- "><tt><i>15</i> <span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;issue&#39;</span><span class="p">,</span></tt>
</div>
<div id="l16"
class="code sev- "><tt><i>16</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;project&#39;</span><span class="p">,</span></tt>
</div>
<div id="l17"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (103 > 79 characters)</li>
</ul><tt><i>17</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">CASCADE</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="s1">&#39;support.project&#39;</span><span class="p">),</span></tt>
</div>
<div id="l18"
class="code sev- "><tt><i>18</i> <span class="p">),</span></tt>
</div>
<div id="l19"
class="code sev- "><tt><i>19</i> <span class="p">]</span></tt>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,73 @@
<!DOCTYPE html>
<html>
<head>
<title>flake8 violations: softdesk/support/migrations/0015_alter_project_author.py</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
<script>
function bindHandler(link) {
var code = link.getAttribute('data-code');
var key = location.pathname + '#' + code;
var ul = link.parentNode.querySelector('.details');
if (sessionStorage[key] != 'open') {
ul.style.display = 'none';
}
link.addEventListener('click', function (event) {
if (!ul.style.display || ul.style.display == 'none') {
ul.style.display = 'block';
sessionStorage[key] = 'open';
} else {
ul.style.display = 'none';
sessionStorage[key] = 'closed';
}
});
}
window.addEventListener('DOMContentLoaded', function () {
var links = document.querySelectorAll('#index > li > a');
for (var i = 0; i < links.length; i++) {
bindHandler(links[i]);
}
});
</script>
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<p id="srclink">
<a title="View full annotated source"
href="softdesk.support.migrations.0015_alter_project_author.source.html">
<img src="file.svg" alt="&#x2261;">
</a></p>
<h1>
<a href="index.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0015_alter_project_author.py
</a>
</h1>
<ul id="index">
<li>
<a data-code="E501">
<span class="count sev-2">
1
</span>
<strong>E501:</strong> line too long (167 > 79 characters)
</a>
<ul class="details">
<li>
<a href="softdesk.support.migrations.0015_alter_project_author.source.html#l19">
<tt><i>19</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;project_author&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">),</span></tt>
</a>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,95 @@
<!DOCTYPE html>
<html>
<head>
<title>softdesk/support/migrations/0015_alter_project_author.py - flake8 annotated source</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<h1>
<a href="softdesk.support.migrations.0015_alter_project_author.report.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0015_alter_project_author.py source
</a>
</h1>
<div id="doc">
<div id="l1"
class="code sev- "><tt><i>1</i> <span class="c1"># Generated by Django 5.2.1 on 2025-06-09 09:40</span></tt>
</div>
<div id="l2"
class="code sev- "><tt><i>2</i> &nbsp;</tt>
</div>
<div id="l3"
class="code sev- "><tt><i>3</i> <span class="kn">import</span><span class="w"> </span><span class="nn">django.db.models.deletion</span></tt>
</div>
<div id="l4"
class="code sev- "><tt><i>4</i> <span class="kn">from</span><span class="w"> </span><span class="nn">django.conf</span><span class="w"> </span><span class="kn">import</span> <span class="n">settings</span></tt>
</div>
<div id="l5"
class="code sev- "><tt><i>5</i> <span class="kn">from</span><span class="w"> </span><span class="nn">django.db</span><span class="w"> </span><span class="kn">import</span> <span class="n">migrations</span><span class="p">,</span> <span class="n">models</span></tt>
</div>
<div id="l6"
class="code sev- "><tt><i>6</i> &nbsp;</tt>
</div>
<div id="l7"
class="code sev- "><tt><i>7</i> &nbsp;</tt>
</div>
<div id="l8"
class="code sev- "><tt><i>8</i> <span class="k">class</span><span class="w"> </span><span class="nc">Migration</span><span class="p">(</span><span class="n">migrations</span><span class="o">.</span><span class="n">Migration</span><span class="p">):</span></tt>
</div>
<div id="l9"
class="code sev- "><tt><i>9</i> &nbsp;</tt>
</div>
<div id="l10"
class="code sev- "><tt><i>10</i> <span class="n">dependencies</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l11"
class="code sev- "><tt><i>11</i> <span class="p">(</span><span class="s1">&#39;support&#39;</span><span class="p">,</span> <span class="s1">&#39;0014_alter_issue_project&#39;</span><span class="p">),</span></tt>
</div>
<div id="l12"
class="code sev- "><tt><i>12</i> <span class="n">migrations</span><span class="o">.</span><span class="n">swappable_dependency</span><span class="p">(</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">),</span></tt>
</div>
<div id="l13"
class="code sev- "><tt><i>13</i> <span class="p">]</span></tt>
</div>
<div id="l14"
class="code sev- "><tt><i>14</i> &nbsp;</tt>
</div>
<div id="l15"
class="code sev- "><tt><i>15</i> <span class="n">operations</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l16"
class="code sev- "><tt><i>16</i> <span class="n">migrations</span><span class="o">.</span><span class="n">AlterField</span><span class="p">(</span></tt>
</div>
<div id="l17"
class="code sev- "><tt><i>17</i> <span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;project&#39;</span><span class="p">,</span></tt>
</div>
<div id="l18"
class="code sev- "><tt><i>18</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;author&#39;</span><span class="p">,</span></tt>
</div>
<div id="l19"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (167 > 79 characters)</li>
</ul><tt><i>19</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;project_author&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">),</span></tt>
</div>
<div id="l20"
class="code sev- "><tt><i>20</i> <span class="p">),</span></tt>
</div>
<div id="l21"
class="code sev- "><tt><i>21</i> <span class="p">]</span></tt>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,84 @@
<!DOCTYPE html>
<html>
<head>
<title>flake8 violations: softdesk/support/migrations/0016_alter_issue_author_alter_project_author.py</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
<script>
function bindHandler(link) {
var code = link.getAttribute('data-code');
var key = location.pathname + '#' + code;
var ul = link.parentNode.querySelector('.details');
if (sessionStorage[key] != 'open') {
ul.style.display = 'none';
}
link.addEventListener('click', function (event) {
if (!ul.style.display || ul.style.display == 'none') {
ul.style.display = 'block';
sessionStorage[key] = 'open';
} else {
ul.style.display = 'none';
sessionStorage[key] = 'closed';
}
});
}
window.addEventListener('DOMContentLoaded', function () {
var links = document.querySelectorAll('#index > li > a');
for (var i = 0; i < links.length; i++) {
bindHandler(links[i]);
}
});
</script>
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<p id="srclink">
<a title="View full annotated source"
href="softdesk.support.migrations.0016_alter_issue_author_alter_project_author.source.html">
<img src="file.svg" alt="&#x2261;">
</a></p>
<h1>
<a href="index.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0016_alter_issue_author_alter_project_author.py
</a>
</h1>
<ul id="index">
<li>
<a data-code="E501">
<span class="count sev-2">
2
</span>
<strong>E501:</strong> line too long (165 > 79 characters)
(and 1 similar)
</a>
<ul class="details">
<li>
<p>Line too long (165 > 79 characters):</p>
<a href="softdesk.support.migrations.0016_alter_issue_author_alter_project_author.source.html#l19">
<tt><i>19</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;issue_author&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">),</span></tt>
</a>
</li><li>
<p>Line too long (153 > 79 characters):</p>
<a href="softdesk.support.migrations.0016_alter_issue_author_alter_project_author.source.html#l24">
<tt><i>24</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">SET_NULL</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;project_author&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">),</span></tt>
</a>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,119 @@
<!DOCTYPE html>
<html>
<head>
<title>softdesk/support/migrations/0016_alter_issue_author_alter_project_author.py - flake8 annotated source</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<h1>
<a href="softdesk.support.migrations.0016_alter_issue_author_alter_project_author.report.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0016_alter_issue_author_alter_project_author.py source
</a>
</h1>
<div id="doc">
<div id="l1"
class="code sev- "><tt><i>1</i> <span class="c1"># Generated by Django 5.2.1 on 2025-06-09 15:44</span></tt>
</div>
<div id="l2"
class="code sev- "><tt><i>2</i> &nbsp;</tt>
</div>
<div id="l3"
class="code sev- "><tt><i>3</i> <span class="kn">import</span><span class="w"> </span><span class="nn">django.db.models.deletion</span></tt>
</div>
<div id="l4"
class="code sev- "><tt><i>4</i> <span class="kn">from</span><span class="w"> </span><span class="nn">django.conf</span><span class="w"> </span><span class="kn">import</span> <span class="n">settings</span></tt>
</div>
<div id="l5"
class="code sev- "><tt><i>5</i> <span class="kn">from</span><span class="w"> </span><span class="nn">django.db</span><span class="w"> </span><span class="kn">import</span> <span class="n">migrations</span><span class="p">,</span> <span class="n">models</span></tt>
</div>
<div id="l6"
class="code sev- "><tt><i>6</i> &nbsp;</tt>
</div>
<div id="l7"
class="code sev- "><tt><i>7</i> &nbsp;</tt>
</div>
<div id="l8"
class="code sev- "><tt><i>8</i> <span class="k">class</span><span class="w"> </span><span class="nc">Migration</span><span class="p">(</span><span class="n">migrations</span><span class="o">.</span><span class="n">Migration</span><span class="p">):</span></tt>
</div>
<div id="l9"
class="code sev- "><tt><i>9</i> &nbsp;</tt>
</div>
<div id="l10"
class="code sev- "><tt><i>10</i> <span class="n">dependencies</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l11"
class="code sev- "><tt><i>11</i> <span class="p">(</span><span class="s1">&#39;support&#39;</span><span class="p">,</span> <span class="s1">&#39;0015_alter_project_author&#39;</span><span class="p">),</span></tt>
</div>
<div id="l12"
class="code sev- "><tt><i>12</i> <span class="n">migrations</span><span class="o">.</span><span class="n">swappable_dependency</span><span class="p">(</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">),</span></tt>
</div>
<div id="l13"
class="code sev- "><tt><i>13</i> <span class="p">]</span></tt>
</div>
<div id="l14"
class="code sev- "><tt><i>14</i> &nbsp;</tt>
</div>
<div id="l15"
class="code sev- "><tt><i>15</i> <span class="n">operations</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l16"
class="code sev- "><tt><i>16</i> <span class="n">migrations</span><span class="o">.</span><span class="n">AlterField</span><span class="p">(</span></tt>
</div>
<div id="l17"
class="code sev- "><tt><i>17</i> <span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;issue&#39;</span><span class="p">,</span></tt>
</div>
<div id="l18"
class="code sev- "><tt><i>18</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;author&#39;</span><span class="p">,</span></tt>
</div>
<div id="l19"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (165 > 79 characters)</li>
</ul><tt><i>19</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">DO_NOTHING</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;issue_author&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">),</span></tt>
</div>
<div id="l20"
class="code sev- "><tt><i>20</i> <span class="p">),</span></tt>
</div>
<div id="l21"
class="code sev- "><tt><i>21</i> <span class="n">migrations</span><span class="o">.</span><span class="n">AlterField</span><span class="p">(</span></tt>
</div>
<div id="l22"
class="code sev- "><tt><i>22</i> <span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;project&#39;</span><span class="p">,</span></tt>
</div>
<div id="l23"
class="code sev- "><tt><i>23</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;author&#39;</span><span class="p">,</span></tt>
</div>
<div id="l24"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (153 > 79 characters)</li>
</ul><tt><i>24</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">SET_NULL</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;project_author&#39;</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">),</span></tt>
</div>
<div id="l25"
class="code sev- "><tt><i>25</i> <span class="p">),</span></tt>
</div>
<div id="l26"
class="code sev- "><tt><i>26</i> <span class="p">]</span></tt>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,73 @@
<!DOCTYPE html>
<html>
<head>
<title>flake8 violations: softdesk/support/migrations/0017_alter_projectcontributor_contributor.py</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
<script>
function bindHandler(link) {
var code = link.getAttribute('data-code');
var key = location.pathname + '#' + code;
var ul = link.parentNode.querySelector('.details');
if (sessionStorage[key] != 'open') {
ul.style.display = 'none';
}
link.addEventListener('click', function (event) {
if (!ul.style.display || ul.style.display == 'none') {
ul.style.display = 'block';
sessionStorage[key] = 'open';
} else {
ul.style.display = 'none';
sessionStorage[key] = 'closed';
}
});
}
window.addEventListener('DOMContentLoaded', function () {
var links = document.querySelectorAll('#index > li > a');
for (var i = 0; i < links.length; i++) {
bindHandler(links[i]);
}
});
</script>
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<p id="srclink">
<a title="View full annotated source"
href="softdesk.support.migrations.0017_alter_projectcontributor_contributor.source.html">
<img src="file.svg" alt="&#x2261;">
</a></p>
<h1>
<a href="index.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0017_alter_projectcontributor_contributor.py
</a>
</h1>
<ul id="index">
<li>
<a data-code="E501">
<span class="count sev-2">
1
</span>
<strong>E501:</strong> line too long (110 > 79 characters)
</a>
<ul class="details">
<li>
<a href="softdesk.support.migrations.0017_alter_projectcontributor_contributor.source.html#l19">
<tt><i>19</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">CASCADE</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">),</span></tt>
</a>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,95 @@
<!DOCTYPE html>
<html>
<head>
<title>softdesk/support/migrations/0017_alter_projectcontributor_contributor.py - flake8 annotated source</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<h1>
<a href="softdesk.support.migrations.0017_alter_projectcontributor_contributor.report.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/migrations/0017_alter_projectcontributor_contributor.py source
</a>
</h1>
<div id="doc">
<div id="l1"
class="code sev- "><tt><i>1</i> <span class="c1"># Generated by Django 5.2.1 on 2025-06-09 15:59</span></tt>
</div>
<div id="l2"
class="code sev- "><tt><i>2</i> &nbsp;</tt>
</div>
<div id="l3"
class="code sev- "><tt><i>3</i> <span class="kn">import</span><span class="w"> </span><span class="nn">django.db.models.deletion</span></tt>
</div>
<div id="l4"
class="code sev- "><tt><i>4</i> <span class="kn">from</span><span class="w"> </span><span class="nn">django.conf</span><span class="w"> </span><span class="kn">import</span> <span class="n">settings</span></tt>
</div>
<div id="l5"
class="code sev- "><tt><i>5</i> <span class="kn">from</span><span class="w"> </span><span class="nn">django.db</span><span class="w"> </span><span class="kn">import</span> <span class="n">migrations</span><span class="p">,</span> <span class="n">models</span></tt>
</div>
<div id="l6"
class="code sev- "><tt><i>6</i> &nbsp;</tt>
</div>
<div id="l7"
class="code sev- "><tt><i>7</i> &nbsp;</tt>
</div>
<div id="l8"
class="code sev- "><tt><i>8</i> <span class="k">class</span><span class="w"> </span><span class="nc">Migration</span><span class="p">(</span><span class="n">migrations</span><span class="o">.</span><span class="n">Migration</span><span class="p">):</span></tt>
</div>
<div id="l9"
class="code sev- "><tt><i>9</i> &nbsp;</tt>
</div>
<div id="l10"
class="code sev- "><tt><i>10</i> <span class="n">dependencies</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l11"
class="code sev- "><tt><i>11</i> <span class="p">(</span><span class="s1">&#39;support&#39;</span><span class="p">,</span> <span class="s1">&#39;0016_alter_issue_author_alter_project_author&#39;</span><span class="p">),</span></tt>
</div>
<div id="l12"
class="code sev- "><tt><i>12</i> <span class="n">migrations</span><span class="o">.</span><span class="n">swappable_dependency</span><span class="p">(</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">),</span></tt>
</div>
<div id="l13"
class="code sev- "><tt><i>13</i> <span class="p">]</span></tt>
</div>
<div id="l14"
class="code sev- "><tt><i>14</i> &nbsp;</tt>
</div>
<div id="l15"
class="code sev- "><tt><i>15</i> <span class="n">operations</span> <span class="o">=</span> <span class="p">[</span></tt>
</div>
<div id="l16"
class="code sev- "><tt><i>16</i> <span class="n">migrations</span><span class="o">.</span><span class="n">AlterField</span><span class="p">(</span></tt>
</div>
<div id="l17"
class="code sev- "><tt><i>17</i> <span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;projectcontributor&#39;</span><span class="p">,</span></tt>
</div>
<div id="l18"
class="code sev- "><tt><i>18</i> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;contributor&#39;</span><span class="p">,</span></tt>
</div>
<div id="l19"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E501
</span>
Line too long (110 > 79 characters)</li>
</ul><tt><i>19</i> <span class="n">field</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">on_delete</span><span class="o">=</span><span class="n">django</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">deletion</span><span class="o">.</span><span class="n">CASCADE</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">AUTH_USER_MODEL</span><span class="p">),</span></tt>
</div>
<div id="l20"
class="code sev- "><tt><i>20</i> <span class="p">),</span></tt>
</div>
<div id="l21"
class="code sev- "><tt><i>21</i> <span class="p">]</span></tt>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,73 @@
<!DOCTYPE html>
<html>
<head>
<title>flake8 violations: softdesk/support/permissions.py</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
<script>
function bindHandler(link) {
var code = link.getAttribute('data-code');
var key = location.pathname + '#' + code;
var ul = link.parentNode.querySelector('.details');
if (sessionStorage[key] != 'open') {
ul.style.display = 'none';
}
link.addEventListener('click', function (event) {
if (!ul.style.display || ul.style.display == 'none') {
ul.style.display = 'block';
sessionStorage[key] = 'open';
} else {
ul.style.display = 'none';
sessionStorage[key] = 'closed';
}
});
}
window.addEventListener('DOMContentLoaded', function () {
var links = document.querySelectorAll('#index > li > a');
for (var i = 0; i < links.length; i++) {
bindHandler(links[i]);
}
});
</script>
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<p id="srclink">
<a title="View full annotated source"
href="softdesk.support.permissions.source.html">
<img src="file.svg" alt="&#x2261;">
</a></p>
<h1>
<a href="index.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/permissions.py
</a>
</h1>
<ul id="index">
<li>
<a data-code="E302">
<span class="count sev-2">
1
</span>
<strong>E302:</strong> expected 2 blank lines, found 1
</a>
<ul class="details">
<li>
<a href="softdesk.support.permissions.source.html#l3">
<tt><i>3</i> <span class="k">class</span><span class="w"> </span><span class="nc">IsAuthor</span><span class="p">(</span><span class="n">BasePermission</span><span class="p">):</span></tt>
</a>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,86 @@
<!DOCTYPE html>
<html>
<head>
<title>softdesk/support/permissions.py - flake8 annotated source</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="masthead" class="sev-2"></div>
<div id="page">
<h1>
<a href="softdesk.support.permissions.report.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/permissions.py source
</a>
</h1>
<div id="doc">
<div id="l1"
class="code sev- "><tt><i>1</i> <span class="kn">from</span><span class="w"> </span><span class="nn">rest_framework.permissions</span><span class="w"> </span><span class="kn">import</span> <span class="n">BasePermission</span></tt>
</div>
<div id="l2"
class="code sev- "><tt><i>2</i> &nbsp;</tt>
</div>
<div id="l3"
class="code sev-2 le">
<ul class="violations">
<li>
<span class="count sev-2">
E302
</span>
Expected 2 blank lines, found 1</li>
</ul><tt><i>3</i> <span class="k">class</span><span class="w"> </span><span class="nc">IsAuthor</span><span class="p">(</span><span class="n">BasePermission</span><span class="p">):</span></tt>
</div>
<div id="l4"
class="code sev- "><tt><i>4</i> &nbsp;</tt>
</div>
<div id="l5"
class="code sev- "><tt><i>5</i> <span class="k">def</span><span class="w"> </span><span class="nf">has_object_permission</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="n">view</span><span class="p">,</span> <span class="nb">object</span><span class="p">):</span></tt>
</div>
<div id="l6"
class="code sev- "><tt><i>6</i> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="n">request</span><span class="o">.</span><span class="n">user</span></tt>
</div>
<div id="l7"
class="code sev- "><tt><i>7</i> <span class="ow">and</span> <span class="n">request</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">is_authenticated</span></tt>
</div>
<div id="l8"
class="code sev- "><tt><i>8</i> <span class="ow">and</span> <span class="n">request</span><span class="o">.</span><span class="n">user</span> <span class="o">==</span> <span class="nb">object</span><span class="o">.</span><span class="n">author</span></tt>
</div>
<div id="l9"
class="code sev- "><tt><i>9</i> <span class="p">)</span></tt>
</div>
<div id="l10"
class="code sev- "><tt><i>10</i> &nbsp;</tt>
</div>
<div id="l11"
class="code sev- "><tt><i>11</i> &nbsp;</tt>
</div>
<div id="l12"
class="code sev- "><tt><i>12</i> <span class="k">class</span><span class="w"> </span><span class="nc">IsContributor</span><span class="p">(</span><span class="n">BasePermission</span><span class="p">):</span></tt>
</div>
<div id="l13"
class="code sev- "><tt><i>13</i> &nbsp;</tt>
</div>
<div id="l14"
class="code sev- "><tt><i>14</i> <span class="k">def</span><span class="w"> </span><span class="nf">has_object_permission</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="n">view</span><span class="p">,</span> <span class="nb">object</span><span class="p">):</span></tt>
</div>
<div id="l15"
class="code sev- "><tt><i>15</i> <span class="nb">print</span><span class="p">(</span><span class="nb">object</span><span class="o">.</span><span class="n">contributors</span><span class="o">.</span><span class="n">all</span><span class="p">())</span></tt>
</div>
<div id="l16"
class="code sev- "><tt><i>16</i> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="n">request</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">is_authenticated</span></tt>
</div>
<div id="l17"
class="code sev- "><tt><i>17</i> <span class="ow">and</span> <span class="n">request</span><span class="o">.</span><span class="n">user</span> <span class="ow">in</span> <span class="nb">object</span><span class="o">.</span><span class="n">contributors</span><span class="o">.</span><span class="n">all</span><span class="p">()</span></tt>
</div>
<div id="l18"
class="code sev- "><tt><i>18</i> <span class="p">)</span></tt>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,73 @@
<!DOCTYPE html>
<html>
<head>
<title>flake8 violations: softdesk/support/tests.py</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
<script>
function bindHandler(link) {
var code = link.getAttribute('data-code');
var key = location.pathname + '#' + code;
var ul = link.parentNode.querySelector('.details');
if (sessionStorage[key] != 'open') {
ul.style.display = 'none';
}
link.addEventListener('click', function (event) {
if (!ul.style.display || ul.style.display == 'none') {
ul.style.display = 'block';
sessionStorage[key] = 'open';
} else {
ul.style.display = 'none';
sessionStorage[key] = 'closed';
}
});
}
window.addEventListener('DOMContentLoaded', function () {
var links = document.querySelectorAll('#index > li > a');
for (var i = 0; i < links.length; i++) {
bindHandler(links[i]);
}
});
</script>
</head>
<body>
<div id="masthead" class="sev-1"></div>
<div id="page">
<p id="srclink">
<a title="View full annotated source"
href="softdesk.support.tests.source.html">
<img src="file.svg" alt="&#x2261;">
</a></p>
<h1>
<a href="index.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/tests.py
</a>
</h1>
<ul id="index">
<li>
<a data-code="F401">
<span class="count sev-1">
1
</span>
<strong>F401:</strong> 'django.test.TestCase' imported but unused
</a>
<ul class="details">
<li>
<a href="softdesk.support.tests.source.html#l1">
<tt><i>1</i> <span class="kn">from</span><span class="w"> </span><span class="nn">django.test</span><span class="w"> </span><span class="kn">import</span> <span class="n">TestCase</span></tt>
</a>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,41 @@
<!DOCTYPE html>
<html>
<head>
<title>softdesk/support/tests.py - flake8 annotated source</title>
<meta http-equiv="Content-Type" value="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="masthead" class="sev-1"></div>
<div id="page">
<h1>
<a href="softdesk.support.tests.report.html">
<img src="back.svg" alt="&#x2B05;">
softdesk/support/tests.py source
</a>
</h1>
<div id="doc">
<div id="l1"
class="code sev-1 le">
<ul class="violations">
<li>
<span class="count sev-1">
F401
</span>
'django.test.TestCase' imported but unused</li>
</ul><tt><i>1</i> <span class="kn">from</span><span class="w"> </span><span class="nn">django.test</span><span class="w"> </span><span class="kn">import</span> <span class="n">TestCase</span></tt>
</div>
<div id="l2"
class="code sev- "><tt><i>2</i> &nbsp;</tt>
</div>
<div id="l3"
class="code sev- "><tt><i>3</i> <span class="c1"># Create your tests here.</span></tt>
</div>
</div>
</div>
</body>
</html>

327
flake-report/styles.css Normal file
View File

@@ -0,0 +1,327 @@
html {
font-family: sans-serif;
font-size: 90%;
}
#masthead {
position: fixed;
left: 0;
top: 0;
right: 0;
height: 40%;
}
h1, h2 {
font-family: sans-serif;
font-weight: normal;
}
h1 {
color: white;
font-size: 36px;
margin-top: 1em;
}
h1 img {
margin-right: 0.3em;
}
h2 {
margin-top: 0;
}
h1 a {
color: white;
}
#versions {
color: rgba(255, 255, 255, 0.7);
}
#page {
position: relative;
max-width: 960px;
margin: 0 auto;
}
#index {
background-color: white;
box-shadow: 0 0 4px rgba(0, 0, 0, 0.8);
padding: 0;
margin: 0;
}
#index li {
list-style: none;
margin: 0;
padding: 1px 0;
}
#index li + li {
border-top: solid silver 1px;
}
.details p {
margin-left: 3em;
color: #888;
}
#index a {
display: block;
padding: 0.8em 1em;
cursor: pointer;
}
#index #all-good {
padding: 1.4em 1em 0.8em;
}
#all-good .count .tick {
font-size: 2em;
}
#all-good .count {
float: left;
}
#all-good h2,
#all-good p {
margin-left: 50px;
}
#index a:hover {
background-color: #eee;
}
.count {
display: inline-block;
border-radius: 50%;
text-align: center;
width: 2.5em;
line-height: 2.5em;
height: 2.5em;
color: white;
margin-right: 1em;
}
.sev-1 {
background-color: #a00;
}
.sev-2 {
background-color: #b80;
}
.sev-3 {
background-color: #28c;
}
.sev-4 {
background-color: #383;
}
a {
text-decoration: none;
}
#doc {
background-color: white;
margin: 1em 0;
padding: 1em;
padding-left: 1.2em;
position: relative;
box-shadow: 0 0 4px rgba(0, 0, 0, 0.8);
}
#doc pre {
margin: 0;
padding: 0.07em;
}
.violations {
position: absolute;
margin: 1.2em 0 0 3em;
padding: 0.5em 1em;
font-size: 14px;
background-color: white;
box-shadow: 0 0 4px rgba(0, 0, 0, 0.4);
display: none;
}
.violations .count {
font-size: 70%;
}
.violations li {
padding: 0.1em 0.3em;
list-style: none;
}
.line-violations::before {
display: block;
content: "";
position: absolute;
left: -1em;
width: 14px;
height: 14px;
border-radius: 50%;
background-color: red;
}
.code:hover .violations {
display: block;
}
tt {
white-space: pre-wrap;
font-family: Consolas, monospace;
font-size: 10pt;
}
tt i {
color: silver;
display: inline-block;
text-align: right;
width: 3em;
box-sizing: border-box;
height: 100%;
border-right: solid #eee 1px;
padding-right: 0.2em;
}
.le {
background-color: #ffe8e8;
cursor: pointer;
}
.le:hover {
background-color: #fcc;
}
.details {
clear: both;
}
#index .details {
border-top-style: none;
margin: 1em;
}
ul.details {
margin-left: 0;
padding-left: 0;
}
#index .details li {
list-style: none;
border-top-style: none;
margin: 0.3em 0;
padding: 0;
}
#srclink {
float: right;
font-size: 36px;
margin: 0;
}
#srclink a {
color: white;
}
#index .details a {
padding: 0;
color: inherit;
}
.le {
background-color: #ffe8e8;
cursor: pointer;
}
.le.sev-1 {
background-color: #f88;
}
.le.sev-2 {
background-color: #fda;
}
.le.sev-3 {
background-color: #adf;
}
img {
height: 1.2em;
vertical-align: -0.35em;
}
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.hll { background-color: #ffffcc }
.c { color: #3D7B7B; font-style: italic } /* Comment */
.err { border: 1px solid #F00 } /* Error */
.k { color: #008000; font-weight: bold } /* Keyword */
.o { color: #666 } /* Operator */
.ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */
.cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */
.cp { color: #9C6500 } /* Comment.Preproc */
.cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */
.c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */
.cs { color: #3D7B7B; font-style: italic } /* Comment.Special */
.gd { color: #A00000 } /* Generic.Deleted */
.ge { font-style: italic } /* Generic.Emph */
.ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.gr { color: #E40000 } /* Generic.Error */
.gh { color: #000080; font-weight: bold } /* Generic.Heading */
.gi { color: #008400 } /* Generic.Inserted */
.go { color: #717171 } /* Generic.Output */
.gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.gs { font-weight: bold } /* Generic.Strong */
.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.gt { color: #04D } /* Generic.Traceback */
.kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.kp { color: #008000 } /* Keyword.Pseudo */
.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.kt { color: #B00040 } /* Keyword.Type */
.m { color: #666 } /* Literal.Number */
.s { color: #BA2121 } /* Literal.String */
.na { color: #687822 } /* Name.Attribute */
.nb { color: #008000 } /* Name.Builtin */
.nc { color: #00F; font-weight: bold } /* Name.Class */
.no { color: #800 } /* Name.Constant */
.nd { color: #A2F } /* Name.Decorator */
.ni { color: #717171; font-weight: bold } /* Name.Entity */
.ne { color: #CB3F38; font-weight: bold } /* Name.Exception */
.nf { color: #00F } /* Name.Function */
.nl { color: #767600 } /* Name.Label */
.nn { color: #00F; font-weight: bold } /* Name.Namespace */
.nt { color: #008000; font-weight: bold } /* Name.Tag */
.nv { color: #19177C } /* Name.Variable */
.ow { color: #A2F; font-weight: bold } /* Operator.Word */
.w { color: #BBB } /* Text.Whitespace */
.mb { color: #666 } /* Literal.Number.Bin */
.mf { color: #666 } /* Literal.Number.Float */
.mh { color: #666 } /* Literal.Number.Hex */
.mi { color: #666 } /* Literal.Number.Integer */
.mo { color: #666 } /* Literal.Number.Oct */
.sa { color: #BA2121 } /* Literal.String.Affix */
.sb { color: #BA2121 } /* Literal.String.Backtick */
.sc { color: #BA2121 } /* Literal.String.Char */
.dl { color: #BA2121 } /* Literal.String.Delimiter */
.sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.s2 { color: #BA2121 } /* Literal.String.Double */
.se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */
.sh { color: #BA2121 } /* Literal.String.Heredoc */
.si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */
.sx { color: #008000 } /* Literal.String.Other */
.sr { color: #A45A77 } /* Literal.String.Regex */
.s1 { color: #BA2121 } /* Literal.String.Single */
.ss { color: #19177C } /* Literal.String.Symbol */
.bp { color: #008000 } /* Name.Builtin.Pseudo */
.fm { color: #00F } /* Name.Function.Magic */
.vc { color: #19177C } /* Name.Variable.Class */
.vg { color: #19177C } /* Name.Variable.Global */
.vi { color: #19177C } /* Name.Variable.Instance */
.vm { color: #19177C } /* Name.Variable.Magic */
.il { color: #666 } /* Literal.Number.Integer.Long */

View File

@@ -4,8 +4,17 @@ charset-normalizer==3.4.2
Django==5.2.1
djangorestframework==3.16.0
djangorestframework_simplejwt==5.5.0
flake8==7.2.0
flake8-html==0.4.3
idna==3.10
Jinja2==3.1.6
MarkupSafe==3.0.2
mccabe==0.7.0
pycodestyle==2.13.0
pyflakes==3.3.2
Pygments==2.19.1
PyJWT==2.9.0
requests==2.32.3
sqlparse==0.5.3
typing_extensions==4.13.2
urllib3==2.4.0

View File

@@ -1,5 +1,5 @@
from django.db import models
from django.contrib.auth.models import AbstractUser, Group
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
@@ -9,4 +9,3 @@ class User(AbstractUser):
def __str__(self):
return self.username

View File

@@ -15,6 +15,13 @@ class UserSerializer(ModelSerializer):
'can_data_be_shared']
class UserListSerializer(ModelSerializer):
class Meta:
model = User
fields = ['id', 'username']
class UserUpdateSerializer(ModelSerializer):
class Meta:
@@ -68,6 +75,3 @@ class PasswordUpdateSerializer(ModelSerializer):
class Meta:
model = User
fields = ['old_password', 'new_password']

View File

@@ -1,13 +1,9 @@
from django.contrib.auth import update_session_auth_hash
from django.shortcuts import render
from django.utils.autoreload import raise_last_exception
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.viewsets import ModelViewSet, ReadOnlyModelViewSet
from rest_framework import status
from rest_framework.permissions import IsAuthenticated
from authentication.models import User
from django.core.exceptions import PermissionDenied
from authentication.serializers import (UserSerializer,
UserUpdateSerializer,
UserRegisterSerializer,
@@ -18,29 +14,22 @@ class UserCreateView(APIView):
"""
Allow user registration for anyone
"""
#TODELETE : for testing purpose
def get(self, request, *args, **kwargs):
user = User.objects.all()
serializer = UserSerializer(user, many=True)
return Response(serializer.data)
def post(self, request):
"""
User subscription
Args:
Creates a new user
Requires :
username->str, email->str, password->str, password2->str, age->int,
can_be_contacted->bool, can_data_be_shared->bool
"""
serializer = UserRegisterSerializer(data=request.data)
if serializer.is_valid(raise_exception=True):
serializer.save()
response = {
"message": "User created successfully",
"detail": "User created successfully",
"data": serializer.data
}
return Response(data=response,
status=status.HTTP_201_CREATED)
return Response(serializer.errors,
status=status.HTTP_400_BAD_REQUEST)
return Response(data=response, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
class PasswordUpdateView(APIView):
@@ -56,10 +45,12 @@ class PasswordUpdateView(APIView):
user.set_password(serializer.data.get('new_password'))
user.save()
update_session_auth_hash(request, user)
return Response(serializer.errors,
status=status.HTTP_204_NO_CONTENT)
return Response(serializer.errors,
status=status.HTTP_400_BAD_REQUEST)
response = {
"detail": "Password updated successfully."
}
return Response(response, status=status.HTTP_204_NO_CONTENT)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
class UserView(APIView):
permission_classes = [IsAuthenticated]
@@ -67,16 +58,18 @@ class UserView(APIView):
def get(self, request, *args, **kwargs):
return Response(UserSerializer(request.user).data)
def put(self, request):
def patch(self, request):
user = request.user
serializer = UserUpdateSerializer(user, data=request.data)
print(serializer.initial_data)
if serializer.is_valid():
serializer.save()
return Response("Data updated",
status=status.HTTP_201_CREATED)
return Response("Error",
status=status.HTTP_400_BAD_REQUEST)
response = {
"detail": "Data updated",
"data": serializer.data
}
return Response(response, status=status.HTTP_201_CREATED)
response = {"detail": "Data error"}
return Response(response, status=status.HTTP_400_BAD_REQUEST)
def delete(self, request):
user = request.user
@@ -84,13 +77,8 @@ class UserView(APIView):
if 'user' in request.data:
if username == request.data['user']:
user.delete()
return Response(f"User {username} deleted.",
status=status.HTTP_204_NO_CONTENT)
return Response("Token's owner and user provided don't match",
status=status.HTTP_400_BAD_REQUEST)
return Response("Username to delete must be given in data",
status=status.HTTP_400_BAD_REQUEST)
response = {"detail": f"User {username} deleted."}
return Response(response, status=status.HTTP_204_NO_CONTENT)
raise PermissionDenied()
response = {"detail": "Username to delete must be given in data"}
return Response(response, status=status.HTTP_400_BAD_REQUEST)

View File

@@ -129,7 +129,9 @@ DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
AUTH_USER_MODEL = 'authentication.User'
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework_simplejwt.authentication.JWTAuthentication',)
'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework_simplejwt.authentication.JWTAuthentication',),
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination',
'PAGE_SIZE': 5
}
SIMPLE_JWT = {

View File

@@ -17,17 +17,16 @@ Including another URLconf
from django.contrib import admin
from django.urls import path, include
from authentication.views import (UserView, UserCreateView, PasswordUpdateView)
from support.views import ProjectViewSet, IssueViewSet, CommentViewSet, ContributorViewSet
from support.views import ProjectViewSet, IssueViewSet, CommentViewSet
from rest_framework import routers
from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView
from rest_framework_simplejwt.views import (TokenObtainPairView,
TokenRefreshView)
router = routers.SimpleRouter()
#router.register('user', UserViewSet, basename='user')
router.register('project', ProjectViewSet, basename='project')
router.register('issue', IssueViewSet, basename='issue')
router.register('comment', CommentViewSet, basename='comment')
router.register('contributors', ContributorViewSet)
urlpatterns = [
path('admin/', admin.site.urls),
@@ -35,7 +34,13 @@ urlpatterns = [
path('api/', include(router.urls)),
path('api/user/', UserView.as_view(), name='user'),
path('api/user/create/', UserCreateView.as_view(), name='user_create'),
path('api/user/password-update/', PasswordUpdateView.as_view(), name='password_update'),
path('api/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
path('api/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
path('api/user/password-update/',
PasswordUpdateView.as_view(),
name='password_update'),
path('api/token/',
TokenObtainPairView.as_view(),
name='token_obtain_pair'),
path('api/token/refresh/',
TokenRefreshView.as_view(),
name='token_refresh'),
]

View File

@@ -2,12 +2,14 @@ from django.contrib import admin
from support.models import Project, Issue, Comment, ProjectContributor
from authentication.models import User
class AdminProject(admin.ModelAdmin):
list_display = ('id', 'title', 'author', 'contributors')
@admin.display(description='contributors')
def contributors(self, obj):
return obj.contributor
return obj.contributors
class AdminIssue(admin.ModelAdmin):
list_display = ('id', 'title', 'author', 'project')
@@ -18,4 +20,3 @@ admin.site.register(Project, AdminProject)
admin.site.register(Issue, AdminIssue)
admin.site.register(Comment)
admin.site.register(ProjectContributor)

View File

@@ -0,0 +1,21 @@
# Generated by Django 5.2.1 on 2025-06-09 09:40
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('support', '0014_alter_issue_project'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.AlterField(
model_name='project',
name='author',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='project_author', to=settings.AUTH_USER_MODEL),
),
]

View File

@@ -0,0 +1,26 @@
# Generated by Django 5.2.1 on 2025-06-09 15:44
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('support', '0015_alter_project_author'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.AlterField(
model_name='issue',
name='author',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='issue_author', to=settings.AUTH_USER_MODEL),
),
migrations.AlterField(
model_name='project',
name='author',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='project_author', to=settings.AUTH_USER_MODEL),
),
]

View File

@@ -0,0 +1,21 @@
# Generated by Django 5.2.1 on 2025-06-09 15:59
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('support', '0016_alter_issue_author_alter_project_author'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.AlterField(
model_name='projectcontributor',
name='contributor',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
]

View File

@@ -10,16 +10,14 @@ class Project(models.Model):
IOS = 'iOS'
ANDROID = 'Android'
title = models.CharField(max_length=255)
date_created = models.DateTimeField(auto_now_add=True)
type = models.CharField(choices=Type.choices, max_length=10)
active = models.BooleanField(default=True)
description = models.CharField(max_length=4000)
author = models.ForeignKey(settings.AUTH_USER_MODEL,
on_delete=models.DO_NOTHING,
on_delete=models.SET_NULL,
related_name='project_author', null=True)
contributors = models.ManyToManyField(settings.AUTH_USER_MODEL,
through='ProjectContributor',
related_name='contribution')
@@ -27,9 +25,10 @@ class Project(models.Model):
def __str__(self):
return self.title
class ProjectContributor(models.Model):
contributor = models.ForeignKey(settings.AUTH_USER_MODEL,
on_delete=models.DO_NOTHING)
on_delete=models.CASCADE)
active = models.BooleanField(default=True)
project = models.ForeignKey('Project',
on_delete=models.CASCADE,
@@ -39,9 +38,13 @@ class ProjectContributor(models.Model):
class Meta:
unique_together = ('contributor', 'project')
def get_user(self):
return self.contributor
def __str__(self):
return self.contributor.username
class Issue(models.Model):
class Priority(models.TextChoices):
@@ -49,19 +52,16 @@ class Issue(models.Model):
MEDIUM = 'Medium'
HIGH = 'High'
class Status(models.TextChoices):
TODO = 'ToDo'
INPROGRESS = 'In Progress'
FINISHED = 'Finished'
class Tag(models.TextChoices):
BUG = 'Bug'
FEATURE = 'Feature'
TASK = 'Task'
title = models.CharField(max_length=255, verbose_name='title')
date_created = models.DateTimeField(auto_now_add=True)
description = models.TextField()
@@ -72,7 +72,8 @@ class Issue(models.Model):
on_delete=models.CASCADE)
author = models.ForeignKey(settings.AUTH_USER_MODEL,
on_delete=models.DO_NOTHING,
related_name='issue_author', null=True)
related_name='issue_author',
blank=True, null=True)
class Comment(models.Model):
@@ -83,4 +84,3 @@ class Comment(models.Model):
author = models.ForeignKey(settings.AUTH_USER_MODEL,
on_delete=models.DO_NOTHING,
related_name='comment_author', null=True)

View File

@@ -1,5 +1,4 @@
from rest_framework.permissions import BasePermission
from support.models import Project
class IsAuthor(BasePermission):
@@ -13,7 +12,7 @@ class IsAuthor(BasePermission):
class IsContributor(BasePermission):
def has_object_permission(self, request, view, object):
return bool(request.user
and request.user.is_authenticated
print(object.contributors.all())
return bool(request.user.is_authenticated
and request.user in object.contributors.all()
)

View File

@@ -15,27 +15,35 @@ class ContributorSerializer(ModelSerializer):
class ContributorListSerializer(ModelSerializer):
contributor = StringRelatedField(many=False)
class Meta:
model = ProjectContributor
fields = ['contributor']
class ProjectSerializer(ModelSerializer):
author = StringRelatedField(many=False)
contributors = SlugRelatedField(many=True,
read_only='True',
slug_field='username')
class Meta:
model = Project
fields = ['id', 'author', 'contributors', 'title', 'type', 'date_created']
fields = ['id',
'author',
'contributors',
'title',
'type',
'date_created']
def validate_title(self, value):
if Project.objects.filter(title=value).exists():
raise ValidationError("Project already exists.")
return value
class ProjectDetailSerializer(ModelSerializer):
contributors = SlugRelatedField(many=True,
@@ -56,42 +64,49 @@ class ProjectDetailSerializer(ModelSerializer):
return serializer.data
class IssueListSerializer(ModelSerializer):
class Meta:
model = Issue
fields = ['id', 'title']
class IssueSerializer(ModelSerializer):
author = StringRelatedField(many=False)
class Meta:
model = Issue
fields = ['id', 'title', 'project', 'date_created', 'priority',
'tag', 'status', 'author']
read_only_field = ['author']
def validate_author(self, data):
if Project.objects.filter(contributors=data.author).exists():
raise ValidationError("Requestor isn't contributor")
return data
class IssueDetailSerializer(ModelSerializer):
comments = SerializerMethodField()
author = StringRelatedField(many=False)
def validate_project(self, data):
# if data['user'] not in data['project'].contributors:
# raise ValidationError("User must be a contributor to the project")
#print(data.project)
#if self.context['request'].user not in data.contributors:
# raise ValidationError("User must be a contributor to the project")
#print(self.get_contributors(data))
class Meta:
model = Issue
fields = ['title', 'project', 'date_created', 'priority',
'tag', 'status', 'author', 'comments']
return data
def get_comments(self, instance):
queryset = Comment.objects.filter(issue=instance.id)
serializer = CommentListSerializer(queryset, many=True)
return serializer.data
class CommentListSerializer(ModelSerializer):
issue = IssueListSerializer(many=False)
author = StringRelatedField(many=False)
class Meta:
model = Comment
fields = ['title', 'date_created', 'author']
fields = ['id', 'title', 'date_created', 'author', 'issue']
class CommentDetailSerializer(ModelSerializer):
author = StringRelatedField(many=False)
class Meta:
model = Comment
fields = ['title', 'date_created', 'author', 'description']
fields = ['title', 'date_created', 'description', 'issue', 'author']

View File

@@ -1,5 +1,3 @@
from django.shortcuts import render
from rest_framework.serializers import raise_errors_on_nested_writes
from rest_framework.viewsets import ModelViewSet
from support.models import Project, ProjectContributor, Issue, Comment
from authentication.models import User
@@ -7,28 +5,68 @@ from support.serializers import (ProjectSerializer,
ProjectDetailSerializer,
ContributorSerializer,
IssueSerializer,
IssueDetailSerializer,
CommentListSerializer,
CommentDetailSerializer)
from authentication.serializers import UserListSerializer
from rest_framework.response import Response
from rest_framework import status
from rest_framework.permissions import (IsAuthenticated,
IsAuthenticatedOrReadOnly)
from support.permissions import IsAuthor, IsContributor
from support.permissions import IsContributor
from rest_framework.decorators import action
from django.core.exceptions import PermissionDenied
class ProjectViewSet(ModelViewSet):
permission_classes = [IsAuthenticatedOrReadOnly]
serializer_class = ProjectSerializer
detail_serializer_class = ProjectDetailSerializer
queryset = Project.objects.filter(active=True)
def get_queryset(self):
"""
add a filter on contributor or author in querystring
"""
if self.request.GET.get('contributor'):
requested_contributor = self.request.GET.get('contributor')
try:
user = User.objects.get(username=requested_contributor)
return Project.objects.filter(contributors=user)
except User.DoesNotExist:
return User.objects.filter(username=requested_contributor)
if self.request.GET.get('author'):
requested_author = self.request.GET.get('author')
try:
user = User.objects.get(username=requested_author)
return Project.objects.filter(author=user)
except User.DoesNotExist:
return User.objects.filter(username=requested_author)
return Project.objects.filter(active=True)
def get_serializer_class(self):
if self.action == 'retrieve':
return self.detail_serializer_class
return super().get_serializer_class()
def retrieve(self, request, *args, **kwargs):
"""
check if requestor is in the project's contributor
Raises exception or returns project detail
"""
project = self.get_object()
if request.user not in project.contributors.all():
raise PermissionDenied()
return Response(ProjectDetailSerializer(project).data)
def partial_update(self, request, *args, **kwargs):
"""
check if requestor is author
then save changes and returns project details
"""
project = self.get_object()
if request.user != project.author:
raise PermissionDenied()
serialized = ProjectDetailSerializer(project,
data=request.data,
partial=True)
if serialized.is_valid(raise_exception=True):
serialized.save()
return Response(serialized.data)
def perform_create(self, serializer):
"""set authenticated user as author and contributor on creation"""
@@ -38,81 +76,177 @@ class ProjectViewSet(ModelViewSet):
if contributor_serializer.is_valid():
contributor_serializer.save()
@action(detail=True, methods=['patch'],
permission_classes=[IsContributor],
basename='add_contributor')
def add_contributor(self, request, pk):
"""Create the user/project contributor's relation"""
if 'contributor' in request.data:
contributor = User.objects.get(username=request.data['contributor'])
data = {'contributor': contributor.id, 'project': pk}
@action(detail=True, methods=['patch'], permission_classes=[IsContributor])
def contributor(self, request, pk):
"""
Add a contributor to a project
by creating a ProjectContributor's instance
"""
# check if requestor is contributor
if request.user not in Project.objects.get(id=pk).contributors.all():
raise PermissionDenied()
if request.data is None or 'contributor' not in request.data:
response = {"detail": "Key error;`contributor` is expected"}
return Response(response, status=status.HTTP_400_BAD_REQUEST)
requested_contributor = request.data['contributor']
# get the user's instance
try:
user = User.objects.get(username=requested_contributor)
data = {'contributor': user.id, 'project': int(pk)}
serializer = ContributorSerializer(data=data)
project = Project.objects.get(id=pk)
if serializer.is_valid():
serializer.save()
return Response(f"User {contributor} added",
status=status.HTTP_202_ACCEPTED)
return Response("This user is already contributing",
status=status.HTTP_226_IM_USED)
return Response(f"Key error;`contributor` is expected, "
f"not `{list(request.data)[0]}`",
status=status.HTTP_400_BAD_REQUEST)
response = {"detail": f"User {user} "
f"added to project '{project}'"}
return Response(response, status=status.HTTP_202_ACCEPTED)
response = {"detail": "This user is already contributing"}
return Response(response, status=status.HTTP_226_IM_USED)
except User.DoesNotExist:
response = {"detail": "User doesn't exist"}
return Response(response, status=status.HTTP_404_NOT_FOUND)
class IssueViewSet(ModelViewSet):
permission_classes = [IsContributor]
permission_classes = [IsAuthenticatedOrReadOnly]
serializer_class = IssueSerializer
def get_queryset(self):
project_id = int(self.request.GET.get('project'))
project = Project.objects.get(id=project_id)
self.check_object_permissions(self.request, project)
return Issue.objects.filter(project=project_id)
def get_contributors(self, project):
queryset = ProjectContributor.objects.filter(project=project)
contributors_serializer = ContributorSerializer(queryset, many=True)
return contributors_serializer.data
def create(self, request, *args, **kwargs):
print(request.data['project'])
project = Project.objects.get(id=request.data['project'])
serializer = IssueSerializer(data=request.data)
print(request.data['project'], type(request.data['project']))
print(self.get_contributors(request.data['project']))
if self.request.user in project.contributors:
if serializer.is_valid(raise_exception=True):
serializer.author = self.request.user
serializer.save()
response = {
"message": f"Issue created for project {project}",
"data": serializer.data
}
return Response(response, status = status.HTTP_201_CREATED)
#def perform_create(self, serializer):
# """set authenticated user as author and contributor on creation"""
# serializer.save(author=self.request.user)
class ContributorViewSet(ModelViewSet):
serializer_class = ContributorSerializer
queryset = ProjectContributor.objects.all()
class CommentViewSet(ModelViewSet):
serializer_class = CommentListSerializer
detail_serializer_class = CommentDetailSerializer
queryset = Comment.objects.all()
detail_serializer_class = IssueDetailSerializer
def get_serializer_class(self):
if self.action == 'retrieve':
return self.detail_serializer_class
return super().get_serializer_class()
def get_queryset(self):
"""
returns only the issues related to projects
where requestor is contributor or empty list
"""
if self.request.GET.get('project'):
project_id = int(self.request.GET.get('project'))
if self.request.user not in Project.objects.get(
id=project_id).contributors.all():
raise PermissionDenied()
return Issue.objects.filter(project=project_id)
projects = Project.objects.filter(
contributors=self.request.user).values('id')
# query on a list
return Issue.objects.filter(project__in=projects)
def partial_update(self, request, *args, **kwargs):
"""
Check if requestor is author allows him to partial update
change the author to assign issue
"""
issue = self.get_object()
if self.request.user != issue.author:
raise PermissionDenied()
serializer = IssueSerializer(issue,
data=request.data,
partial=True)
if serializer.is_valid():
if 'author' in request.data:
try:
author = User.objects.get(username=request.data['author'])
serializer.save(author=author)
except User.DoesNotExist:
response = {
"detail": "Requested author isn't a valid user"}
return Response(response, status=status.HTTP_404_NOT_FOUND)
serializer.save()
return Response(serializer.data)
response = {"detail": "Data error"}
return Response(response, status=status.HTTP_400_BAD_REQUEST)
@action(detail=True, methods=['get'])
def contributors(self, request, pk):
"""
Check if requestor is contributor then returns the list
of the contributors to the issue's project or raise unauthorized
"""
issue = Issue.objects.get(id=pk)
if (ProjectContributor.objects.
filter(project=issue.project).
filter(contributor=request.user)):
return Response(UserListSerializer(
issue.project.contributors.all(), many=True).data)
else:
raise PermissionDenied()
def create(self, request, *args, **kwargs):
if 'project' not in request.data:
return Response("A project id is required",
status=status.HTTP_400_BAD_REQUEST)
project = Project.objects.get(id=request.data['project'])
serializer = IssueSerializer(data=request.data)
if self.request.user not in project.contributors.all():
response = {
"detail": "Requestor isn't contributor for this project"
}
return Response(response, status=status.HTTP_403_FORBIDDEN)
if serializer.is_valid(raise_exception=True):
issue = serializer.save(author=self.request.user)
response = {
"detail": f"Issue {issue.id} created for project {project}",
"data": serializer.data
}
return Response(response, status=status.HTTP_201_CREATED)
class CommentViewSet(ModelViewSet):
permission_classes = [IsAuthenticated]
serializer_class = CommentListSerializer
detail_serializer_class = CommentDetailSerializer
queryset = Comment.objects.all()
def get_queryset(self):
"""
Returns only comments associated with issue where the requestor
is project's contributor
"""
if self.request.GET.get('issue'):
issue_id = int(self.request.GET.get('issue'))
project = Issue.objects.get(id=issue_id).project
if self.request.user not in project.contributors.all():
raise PermissionDenied()
return Comment.objects.filter(issue=issue_id)
# or returns those from projects where requestor is contributing
projects = Project.objects.filter(
contributors=self.request.user).values('id')
issues = Issue.objects.filter(project__in=projects)
return Comment.objects.filter(issue__in=issues)
def get_serializer_class(self):
if self.action == 'retrieve':
return self.detail_serializer_class
return super().get_serializer_class()
def create(self, request, *args, **kwargs):
user = User.objects.get(username=request.user)
issue = Issue.objects.get(id=request.data['issue'])
project = issue.project
if issue.project.contributors.filter(username=request.user.username):
serializer = CommentDetailSerializer(data=request.data)
if serializer.is_valid(raise_exception=True):
serializer.save(author=user)
response = {"detail": "comment created",
"data": serializer.data}
return Response(response, status=status.HTTP_201_CREATED)
response = {"detail": f"{user} isn't contributor for '{project}'"}
return Response(response, status=status.HTTP_403_FORBIDDEN)
def partial_update(self, request, *args, **kwargs):
"""
check if requestor is author
then save changes and returns project details
"""
comment = self.get_object()
if request.user != comment.author:
raise PermissionDenied()
serialized = CommentDetailSerializer(comment,
data=request.data,
partial=True)
if serialized.is_valid(raise_exception=True):
serialized.save()
return Response(serialized.data)