Compare commits

...

2 Commits

Author SHA1 Message Date
84879b89d1 django server settings 2022-01-02 16:55:40 +01:00
df31c1aa49 more models 2022-01-02 16:23:47 +01:00
6 changed files with 119 additions and 4 deletions

1
.gitignore vendored
View File

@ -9,3 +9,4 @@
__pycache__/
# Tests:
.coverage
*.sqlite3

View File

@ -0,0 +1,12 @@
"""
For more information on this file, see
https://docs.djangoproject.com/en/4.0/howto/deployment/asgi/
"""
import os
from django.core.asgi import get_asgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django_project.settings')
application = get_asgi_application()

View File

@ -31,6 +31,7 @@ ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = [
'django_stockfin_db',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',

View File

@ -0,0 +1,12 @@
"""
For more information on this file, see
https://docs.djangoproject.com/en/4.0/howto/deployment/wsgi/
"""
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django_project.settings')
application = get_wsgi_application()

View File

@ -1,3 +1,8 @@
from django.contrib import admin
# Register your models here.
from django_stockfin_db.models import FinancialPosition
@admin.register(FinancialPosition)
class FinancialPositionAdmin(admin.ModelAdmin):
pass

View File

@ -1,8 +1,28 @@
from django.db.models import Model, CharField, ForeignKey, TextChoices, PROTECT
from django.db.models import Model
from django.db.models.fields import CharField, FloatField, BooleanField, DateField, DateTimeField
from django.db.models.fields.related import ForeignKey
from django.db.models.deletion import PROTECT, CASCADE
from django.db.models.enums import TextChoices
from django.utils.translation import gettext_lazy as _
class FinancialPosition(Model):
class AbstractBaseModel(Model):
date_created = DateTimeField(
auto_now_add=True,
verbose_name=_("Time of creation")
)
date_modified = DateTimeField(
auto_now=True,
verbose_name=_("Time of last modification")
)
class Meta:
abstract = True
class FinancialPosition(AbstractBaseModel):
class FinStmt(TextChoices):
BS = 'BS', _("Balance Sheet")
@ -27,3 +47,67 @@ class FinancialPosition(Model):
blank=True,
verbose_name=_("Parent position")
)
class ReportingPeriod(AbstractBaseModel):
date_end = DateField(
db_index=True,
verbose_name=_("Period end date")
)
date_start = DateField(
db_index=True,
verbose_name=_("Period start date")
)
verified = BooleanField(
default=False,
verbose_name=_("Exact dates verified")
)
class Company(AbstractBaseModel):
symbol = CharField(
max_length=16,
unique=True,
verbose_name=_("Stock ticker symbol")
)
class Meta:
verbose_name_plural = _("Companies")
class CompanyName(AbstractBaseModel):
company = ForeignKey(
to=Company,
on_delete=CASCADE
)
name = CharField(
max_length=1024,
db_index=True,
verbose_name=_("Name")
)
name_since = DateField(
db_index=True,
verbose_name=_("Has this name since")
)
class Figure(AbstractBaseModel):
position = ForeignKey(
to=FinancialPosition,
on_delete=PROTECT
)
period = ForeignKey(
to=ReportingPeriod,
on_delete=PROTECT
)
company = ForeignKey(
to=Company,
on_delete=PROTECT
)
value = FloatField(
verbose_name=_("Figure on financial statement")
)