Skip to content
Snippets Groups Projects
Commit fe229e7e authored by Tomáš Valenta's avatar Tomáš Valenta
Browse files

Merge branch 'test' into 'master'

Release

See merge request !4
parents dacd02e4 cfa66e1a
No related branches found
No related tags found
1 merge request!4Release
Pipeline #12676 passed
......@@ -74,11 +74,20 @@ class Command(BaseCommand):
help="Purge all previous contracts, types and filing areas before the import.",
)
def use_issue(self, contract, name: str) -> None:
try:
issue = ContractIssue.objects.get(name=name)
except ContractIssue.DoesNotExist:
def use_issue(self, name: str) -> None:
issues = ContractIssue.objects.filter(name=name).all()
if len(issues) != 0:
issue = issues[0]
elif len(issues) > 1:
for issue in issues[1:]:
for contract in issue.contracts:
contract.issues.add(issue)
issue.delete()
else:
issue = ContractIssue(name=name)
issue.save()
return issue
......@@ -385,7 +394,7 @@ class Command(BaseCommand):
contract.notes += (
f"Nepojmenovaná smluvní strana, zdrojová data: {signing_party}\n"
)
issues.append(self.use_issue(contract, "Špatně pojmenovaná smluvní strana"))
issues.append(self.use_issue("Špatně pojmenovaná smluvní strana"))
if self.verbosity >= 2:
self.stderr.write(
......@@ -473,9 +482,7 @@ class Command(BaseCommand):
issue_count += 1
contract.notes += f"Špatně zadané sídlo smluvní strany: {signing_party_value}\n"
issues.append(
self.use_issue(
contract, "Špatně zadané sídlo smluvní strany"
)
self.use_issue("Špatně zadané sídlo smluvní strany")
)
if self.verbosity >= 2:
......@@ -537,7 +544,7 @@ class Command(BaseCommand):
f"Špatně zadané IČO smluvní strany: {signing_party_value}\n"
)
issues.append(
self.use_issue(contract, "Špatně zadané IČO smluvní strany")
self.use_issue("Špatně zadané IČO smluvní strany")
)
if self.verbosity >= 2:
......@@ -555,9 +562,7 @@ class Command(BaseCommand):
issue_count += 1
contract.notes += f"Špatně zadaný zástupce smluvní strany: {signing_party_value}\n"
issues.append(
self.use_issue(
contract, "Špatně zadaný zástupce smluvní strany"
)
self.use_issue("Špatně zadaný zástupce smluvní strany")
)
if self.verbosity >= 2:
......@@ -583,10 +588,7 @@ class Command(BaseCommand):
issue_count += 1
contract.notes += f"Špatně zadaná funkce zástupce smluvní strany: {signing_party['funkce']}\n"
issues.append(
self.use_issue(
contract,
"Špatně zadaná funkce zástupce smluvní strany",
)
self.use_issue("Špatně zadaná funkce zástupce smluvní strany")
)
if self.verbosity >= 2:
......@@ -606,10 +608,7 @@ class Command(BaseCommand):
issue_count += 1
contract.notes += f"Špatně zadaný jeden ze zástupců smluvní strany: {representative_name}\n"
issues.append(
self.use_issue(
contract,
"Špatně zadaný zástupce smluvní strany",
)
self.use_issue("Špatně zadaný zástupce smluvní strany")
)
if self.verbosity >= 2:
......@@ -633,9 +632,7 @@ class Command(BaseCommand):
issue_count += 1
contract.notes += f"Špatně zadaný orgán smluvní strany: {signing_party_value}\n"
issues.append(
self.use_issue(
contract, "Špatně zadaný orgán smluvní strany"
)
self.use_issue("Špatně zadaný orgán smluvní strany")
)
if self.verbosity >= 2:
......@@ -783,7 +780,7 @@ class Command(BaseCommand):
observed_issues_count += 1
contract.notes += f"Špatně zadaný začátek platnosti: {value}\n"
issues.append(
self.use_issue(contract, "Špatně zadaný začátek platnosti")
self.use_issue("Špatně zadaný začátek platnosti")
)
if self.verbosity >= 2:
......@@ -802,7 +799,7 @@ class Command(BaseCommand):
observed_issues_count += 1
contract.notes += f"Špatně zadaný konec platnosti: {value}\n"
issues.append(
self.use_issue(contract, "Špatně zadaný konec platnosti")
self.use_issue("Špatně zadaný konec platnosti")
)
if self.verbosity >= 2:
......@@ -839,7 +836,7 @@ class Command(BaseCommand):
elif not isinstance(value, list):
observed_issues_count += 1
contract.notes += f"Špatně zadané typy: {value}\n"
issues.append(self.use_issue(contract, "Špatně zadané typy"))
issues.append(self.use_issue("Špatně zadané typy"))
if self.verbosity >= 2:
self.stderr.write(
......@@ -854,7 +851,7 @@ class Command(BaseCommand):
if not isinstance(type_name, str):
observed_issues_count += 1
contract.notes += f"Špatně zadaný typ: {type_name}\n"
issues.append(self.use_issue(contract, "Špatně zadaný typ"))
issues.append(self.use_issue("Špatně zadaný typ"))
if self.verbosity >= 2:
self.stderr.write(
......@@ -896,7 +893,7 @@ class Command(BaseCommand):
else:
observed_issues_count += 1
contract.notes += f"Neznámý stav: {value}\n"
issues.append(self.use_issue(contract, "Neznámý právní stav"))
issues.append(self.use_issue("Neznámý právní stav"))
if self.verbosity >= 2:
self.stderr.write(
......@@ -918,7 +915,7 @@ class Command(BaseCommand):
f"Původní, špatně zadané náklady: {value}\n"
)
issues.append(
self.use_issue(contract, "Špatně zadané náklady")
self.use_issue("Špatně zadané náklady")
)
if self.verbosity >= 2:
......@@ -948,7 +945,7 @@ class Command(BaseCommand):
observed_issues_count += 1
contract.notes += f"Původní, neropoznané náklady: {value}\n"
issues.append(
self.use_issue(contract, "Špatně zadané náklady")
self.use_issue("Špatně zadané náklady")
)
if self.verbosity >= 2:
......@@ -965,7 +962,7 @@ class Command(BaseCommand):
elif value not in (None, "0"):
observed_issues_count += 1
contract.notes += f"Původní, neropoznané náklady: {value}\n"
issues.append(self.use_issue(contract, "Špatně zadané náklady"))
issues.append(self.use_issue("Špatně zadané náklady"))
if self.verbosity >= 2:
self.stderr.write(
......@@ -991,7 +988,7 @@ class Command(BaseCommand):
observed_issues_count += 1
contract.notes += f"Špatně zadaná spisovna: {value}\n"
issues.append(
self.use_issue(contract, "Špatně zadaná spisovna")
self.use_issue("Špatně zadaná spisovna")
)
if self.verbosity >= 2:
......@@ -1007,7 +1004,7 @@ class Command(BaseCommand):
f"Špatně zadané smluvní strany, nejsou seznam: {value}\n"
)
issues.append(
self.use_issue(contract, "Špatně zadaný smluvní strany")
self.use_issue("Špatně zadaný smluvní strany")
)
if self.verbosity >= 2:
......@@ -1026,7 +1023,7 @@ class Command(BaseCommand):
f"Špatně zadaná smluvní strana: {signing_party}\n"
)
issues.append(
self.use_issue(contract, "Špatně zadaná smluvní strana")
self.use_issue("Špatně zadaná smluvní strana")
)
if self.verbosity >= 2:
......@@ -1062,7 +1059,7 @@ class Command(BaseCommand):
if not isinstance(value, list):
observed_issues_count += 1
contract.notes += f"Špatně zadané soubory.\n"
issues.append(self.use_issue(contract, "Špatně zadané soubory"))
issues.append(self.use_issue("Špatně zadané soubory"))
if self.verbosity >= 2:
self.stderr.write(
......@@ -1073,6 +1070,8 @@ class Command(BaseCommand):
continue
at_least_one_incorrect_filename = False
for file_data in value:
if not isinstance(file_data, dict):
observed_issues_count += 1
......@@ -1080,9 +1079,7 @@ class Command(BaseCommand):
f"Špatně zadané informace o souboru: {file_data}.\n"
)
issues.append(
self.use_issue(
contract, "Špatně zadané informace o souboru"
)
self.use_issue("Špatně zadané informace o souboru")
)
if self.verbosity >= 2:
......@@ -1103,8 +1100,10 @@ class Command(BaseCommand):
if not isinstance(file_value, str):
observed_issues_count += 1
contract.notes += f"Špatně zadaný název souboru {file_key}: {file_value}.\n"
if not at_least_one_incorrect_filename:
issues.append(
self.use_issue(contract, "Neplatný název souboru")
self.use_issue("Neplatný název souboru")
)
if self.verbosity >= 2:
......@@ -1114,6 +1113,8 @@ class Command(BaseCommand):
)
)
at_least_one_incorrect_filename = True
continue
file_path = os.path.join(contract_root, file_value)
......@@ -1124,7 +1125,7 @@ class Command(BaseCommand):
f"Neexistující soubor: {file_value}.\n"
)
issues.append(
self.use_issue(contract, "Neexistující soubor")
self.use_issue("Neexistující soubor")
)
if self.verbosity >= 2:
......@@ -1215,9 +1216,6 @@ class Command(BaseCommand):
for file in files:
file.save()
for issue in issues:
issue.save()
contract.filing_area = filing_area
contract.types.set(types)
contract.issues.set(issues)
......@@ -1385,6 +1383,7 @@ class Command(BaseCommand):
Contract,
ContractType,
ContractFilingArea,
ContractIssue,
ContractFile,
Contractee,
ContracteeSignature,
......
......@@ -29,3 +29,19 @@
{{ block.super }}
{% endblock %}
{% block sidebar %}
{{ block.super }}
<div style="width:100%;float:left;padding-top:0.5rem;margin-top:0.5rem;border-top:1px solid var(--hairline-color)">
<h2>Tvá oprávnění</h2>
<ul>
{% for permission in request.user.get_all_permissions_ordered %}
<li>{{ permission }}</li>
{% endfor %}
</ul>
</div>
{% endblock %}
from django.conf import settings
from django.contrib.auth.models import Group as AuthGroup
from django.contrib.auth.models import Permission
from django.db import models
from pirates import models as pirates_models
......@@ -86,6 +87,28 @@ class User(pirates_models.AbstractUser):
return f"{first_name}{self.last_name}"
def get_all_permissions_ordered(self, obj=None) -> list:
#permissions_set = self.get_all_permissions(obj)
#print(permissions_set)
if not self.is_superuser:
permissions = (
Permission.
objects.
filter(
models.Q(content_type__name=self.groups.all()) |
models.Q(user=self)
).
order_by("content_type__app_label").
distinct().
all()
)
else:
permissions = Permission.objects.order_by("content_type__app_label").all()
return permissions
def save(self, *args, saved_by_auth: bool = False, **kwargs):
if (
not self._state.adding
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment