Compare commits

..

No commits in common. "e083b1139466ab8444b6448dc95f24401b78b32e" and "6d780e9296d95b11dfdcb198693b822c292664bf" have entirely different histories.

2 changed files with 44 additions and 33 deletions

View File

@ -34,18 +34,6 @@ from accounting import db
from accounting.locale import gettext
from accounting.utils.user import user_cls, user_pk_column
timestamp: t.Type[dt.datetime] \
= t.Annotated[dt.datetime, mapped_column(db.DateTime(timezone=True),
server_default=db.func.now())]
"""The timestamp."""
user_pk: t.Type[int] \
= t.Annotated[int, mapped_column(db.ForeignKey(user_pk_column,
onupdate="CASCADE"))]
"""The user primary key."""
random_pk: t.Type[int] \
= t.Annotated[int, mapped_column(primary_key=True, autoincrement=False)]
"""The random primary key."""
class BaseAccount(db.Model):
"""A base account."""
@ -126,15 +114,21 @@ class Account(db.Model):
"""The title."""
is_need_offset: Mapped[bool] = mapped_column(default=False)
"""Whether the journal entry line items of this account need offset."""
created_at: Mapped[timestamp]
created_at: Mapped[dt.datetime] \
= mapped_column(db.DateTime(timezone=True),
server_default=db.func.now())
"""The time of creation."""
created_by_id: Mapped[user_pk] = mapped_column()
created_by_id: Mapped[int] \
= mapped_column(db.ForeignKey(user_pk_column, onupdate="CASCADE"))
"""The ID of the creator."""
created_by: Mapped[user_cls] = db.relationship(foreign_keys=created_by_id)
"""The creator."""
updated_at: Mapped[timestamp]
updated_at: Mapped[dt.datetime] \
= mapped_column(db.DateTime(timezone=True),
server_default=db.func.now())
"""The time of last update."""
updated_by_id: Mapped[user_pk] = mapped_column()
updated_by_id: Mapped[int] \
= mapped_column(db.ForeignKey(user_pk_column, onupdate="CASCADE"))
"""The ID of the updator."""
updated_by: Mapped[user_cls] = db.relationship(foreign_keys=updated_by_id)
"""The updator."""
@ -376,15 +370,21 @@ class Currency(db.Model):
"""The code."""
name_l10n: Mapped[str] = mapped_column("name")
"""The name."""
created_at: Mapped[timestamp]
created_at: Mapped[dt.datetime] \
= mapped_column(db.DateTime(timezone=True),
server_default=db.func.now())
"""The time of creation."""
created_by_id: Mapped[user_pk] = mapped_column()
created_by_id: Mapped[int] \
= mapped_column(db.ForeignKey(user_pk_column, onupdate="CASCADE"))
"""The ID of the creator."""
created_by: Mapped[user_cls] = db.relationship(foreign_keys=created_by_id)
"""The creator."""
updated_at: Mapped[timestamp]
updated_at: Mapped[dt.datetime] \
= mapped_column(db.DateTime(timezone=True),
server_default=db.func.now())
"""The time of last update."""
updated_by_id: Mapped[user_pk] = mapped_column()
updated_by_id: Mapped[int] \
= mapped_column(db.ForeignKey(user_pk_column, onupdate="CASCADE"))
"""The ID of the updator."""
updated_by: Mapped[user_cls] \
= db.relationship(foreign_keys=updated_by_id)
@ -543,15 +543,21 @@ class JournalEntry(db.Model):
"""The account number under the date."""
note: Mapped[str | None]
"""The note."""
created_at: Mapped[timestamp]
created_at: Mapped[dt.datetime] \
= mapped_column(db.DateTime(timezone=True),
server_default=db.func.now())
"""The time of creation."""
created_by_id: Mapped[user_pk] = mapped_column()
created_by_id: Mapped[int] \
= mapped_column(db.ForeignKey(user_pk_column, onupdate="CASCADE"))
"""The ID of the creator."""
created_by: Mapped[user_cls] = db.relationship(foreign_keys=created_by_id)
"""The creator."""
updated_at: Mapped[timestamp]
updated_at: Mapped[dt.datetime] \
= mapped_column(db.DateTime(timezone=True),
server_default=db.func.now())
"""The time of last update."""
updated_by_id: Mapped[user_pk] = mapped_column()
updated_by_id: Mapped[int] \
= mapped_column(db.ForeignKey(user_pk_column, onupdate="CASCADE"))
"""The ID of the updator."""
updated_by: Mapped[user_cls] = db.relationship(foreign_keys=updated_by_id)
"""The updator."""
@ -877,15 +883,21 @@ class Option(db.Model):
"""The name."""
value: Mapped[str] = mapped_column(db.Text)
"""The option value."""
created_at: Mapped[timestamp]
created_at: Mapped[dt.datetime] \
= mapped_column(db.DateTime(timezone=True),
server_default=db.func.now())
"""The time of creation."""
created_by_id: Mapped[user_pk] = mapped_column()
created_by_id: Mapped[int] \
= mapped_column(db.ForeignKey(user_pk_column, onupdate="CASCADE"))
"""The ID of the creator."""
created_by: Mapped[user_cls] = db.relationship(foreign_keys=created_by_id)
"""The creator."""
updated_at: Mapped[timestamp]
updated_at: Mapped[dt.datetime] \
= mapped_column(db.DateTime(timezone=True),
server_default=db.func.now())
"""The time of last update."""
updated_by_id: Mapped[user_pk] = mapped_column()
updated_by_id: Mapped[int] \
= mapped_column(db.ForeignKey(user_pk_column, onupdate="CASCADE"))
"""The ID of the updator."""
updated_by: Mapped[user_cls] = db.relationship(foreign_keys=updated_by_id)
"""The updator."""

View File

@ -21,21 +21,20 @@ import typing as t
from flask import Blueprint, render_template, Flask, redirect, url_for, \
session, request, g, Response, abort
from sqlalchemy.orm import Mapped, mapped_column
from . import db
bp: Blueprint = Blueprint("auth", __name__, url_prefix="/")
"""The authentication blueprint."""
class User(db.Model):
"""A user."""
__tablename__ = "users"
"""The table name."""
id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
"""The ID."""
username: Mapped[str] = mapped_column(unique=True)
id = db.Column(db.Integer, nullable=False, primary_key=True,
autoincrement=True)
"""The ID"""
username = db.Column(db.String, nullable=False, unique=True)
"""The username."""
def __str__(self) -> str: