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

fix max_lengths, dir structure, settings, foreign key ondelete & verbose names

parent cd81b514
Branches
No related tags found
No related merge requests found
.env
__pycache__/
node_modules/*
shared/static/*
SECRET_KEY=supersecret
DEFAULT_SIGNING_PARTY_REPRESENTATIVE="Česká pirátská strana\nNa Moráni 360/3\n128 00 Praha 2\nIČ: 71339698\nDIČ: CZ71339698"
File moved
File moved
File moved
from .base import *
......@@ -10,11 +10,18 @@ For the full list of settings and their values, see
https://docs.djangoproject.com/en/4.0/ref/settings/
"""
from pathlib import Path
import os
import pathlib
import environ
import dj_database_url
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
BASE_DIR = pathlib.Path(__file__).parents[2]
env = environ.Env()
environ.Env.read_env(os.path.join(BASE_DIR, ".env"))
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/4.0/howto/deployment/checklist/
......
from .base import *
DEBUG = True
from .base import *
File moved
File moved
......@@ -5,7 +5,9 @@ from django_countries.fields import CountryField
from markdownx.models import MarkdownxField
from pirates import models as pirates_models
# Create your models here.
class User(pirates_models.AbstractUser):
pass
class ContractExternalSigner(models.Model):
......@@ -129,7 +131,7 @@ class ContractLocalSigner(models.Model):
verbose_name_plural = "Naše smlouvní strany"
class ContractSubtypes(models.Model):
class ContractSubtype(models.Model):
name = models.CharField(
max_length=32,
verbose_name="Jméno",
......@@ -172,12 +174,13 @@ class ContractFilingArea(models.Model):
class Contract(models.Model):
class ContractTypes(models.TextChoices):
PRIMARY = "Hlavní"
AMENDMENT = "Dodatek"
FRAMEWORK_ORDER = "Objednávka u rámcové smlouvy"
PRIMARY = "primary", "Hlavní"
AMENDMENT = "amendment", "Dodatek"
FRAMEWORK_ORDER = "framework_order", "Objednávka u rámcové smlouvy"
type_ = models.CharField(
max_length=len(ContractTypes.FRAMEWORK_ORDER),
max_length=15,
choices=ContractTypes.choices,
default=ContractTypes.PRIMARY,
verbose_name="Typ",
)
......@@ -200,14 +203,20 @@ class Contract(models.Model):
) # WARNING: Seems to only be used for amendments
external_signer = models.ForeignKey(ContractExternalSigner)
external_signer = models.ForeignKey(
ContractExternalSigner,
on_delete=models.CASCADE,
)
# NOTE: Should we allow these to be null, if a contract is logged before it is signed?
external_signer_signature_date = models.DateField(
verbose_name="Datum podpisu druhé strany",
)
local_signer = models.ForeignKey(ContractLocalSigner)
local_signer = models.ForeignKey(
ContractLocalSigner,
on_delete=models.CASCADE,
)
local_signer_signature_date = models.DateField(
verbose_name="Datum podpisu naší strany",
......@@ -227,50 +236,50 @@ class Contract(models.Model):
uploaded_by = models.ForeignKey(
pirates_models.User,
User,
on_delete=models.CASCADE,
verbose_name="Nahráno uživatelem",
)
class LegalStates(models.TextChoices):
VALID = "Platná"
EFFECTIVE = "Účinná"
NOT_EFFECTIVE = "Neúčinná"
INVALID = "Neplatná"
VALID = "valid", "Platná"
EFFECTIVE = "effective", "Účinná"
NOT_EFFECTIVE = "not_effective", "Neúčinná"
INVALID = "invalid", "Neplatná"
class PublicStates(models.TextChoices):
WAITING = "Nová"
YES = "Zveřejněná"
NO = "Neveřejná"
UNKNOWN = "unknown", "Nová"
YES = "yes", "Zveřejněná"
NO = "no", "Neveřejná"
class PaperFormStates(models.TextChoices):
SENT = "Odeslaná"
STORED = "Uložená"
TO_SHRED = "Ke skartaci"
SHREDDED = "Skartovaná"
SENT = "sent", "Odeslaná"
STORED = "stored", "Uložená"
TO_SHRED = "to_shred", "Ke skartaci"
SHREDDED = "shredded", "Skartovaná"
legal_state = models.CharField(
max_length=len(LegalStates.NOT_EFFECTIVE), # longest choice
choices=LegalStates,
max_length=13,
choices=LegalStates.choices,
verbose_name="Stav právního ujednání",
)
public_state = models.CharField(
max_length=len(PublicStates.YES), # longest choice
choices=PublicStates,
max_length=7,
choices=PublicStates.choices,
verbose_name="Veřejnost smlouvy",
)
paper_form_state = models.CharField(
max_length=len(PaperFormStates.TO_SHRED), # longest choice
choices=PaperFormStates,
max_length=8,
choices=PaperFormStates.choices,
verbose_name="Stav papírové formy",
)
public_status_set_by = models.ForeignKey(
pirates_models.User,
User,
on_delete=models.CASCADE,
verbose_name="Zveřejněno / nezveřejněno uživatelem",
)
......@@ -298,7 +307,7 @@ class Contract(models.Model):
)
issues = modles.ManyToManyField(ContractIssue)
issues = models.ManyToManyField(ContractIssue)
summary = models.CharField(
......@@ -314,7 +323,8 @@ class Contract(models.Model):
)
primary_contract = models.ForeignKey(
Contract,
"Contract",
on_delete=models.CASCADE,
blank=True,
null=True,
verbose_name="Hlavní smlouva",
......@@ -355,6 +365,7 @@ class Contract(models.Model):
filing_area = models.ForeignKey(
ContractFilingArea,
on_delete=models.CASCADE,
blank=True,
null=True,
) # WARNING: Dependent on the type!
......@@ -366,11 +377,15 @@ class Contract(models.Model):
class ContractNote(models.Model):
contract = models.ForeignKey(Contract)
contract = models.ForeignKey(
Contract,
on_delete=models.CASCADE,
)
author = models.ForeignKey(
pirates_models.User,
User,
on_delete=models.CASCADE,
verbose_name="Autor",
)
......@@ -378,7 +393,7 @@ class ContractNote(models.Model):
verbose_name="Datum vytvoření",
)
content = models.MarkdownxField(
content = MarkdownxField(
verbose_name="Obsah",
)
......
{
"status": "done",
"assets": {
"base-1150289fada5f20f5bd0.js": {
"name": "base-1150289fada5f20f5bd0.js",
"path": "/home/user/Projects/contract-registry/shared/static/shared/base-1150289fada5f20f5bd0.js"
},
"runtime-1150289fada5f20f5bd0.js": {
"name": "runtime-1150289fada5f20f5bd0.js",
"path": "/home/user/Projects/contract-registry/shared/static/shared/runtime-1150289fada5f20f5bd0.js"
},
"shared-1150289fada5f20f5bd0.js": {
"name": "shared-1150289fada5f20f5bd0.js",
"path": "/home/user/Projects/contract-registry/shared/static/shared/shared-1150289fada5f20f5bd0.js"
},
"shared-1150289fada5f20f5bd0.js.LICENSE.txt": {
"name": "shared-1150289fada5f20f5bd0.js.LICENSE.txt",
"path": "/home/user/Projects/contract-registry/shared/static/shared/shared-1150289fada5f20f5bd0.js.LICENSE.txt"
}
},
"chunks": {
"base": [
"base-1150289fada5f20f5bd0.js"
],
"shared": [
"runtime-1150289fada5f20f5bd0.js",
"shared-1150289fada5f20f5bd0.js"
]
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment