Compare commits
5 Commits
6d780e9296
...
e083b11394
Author | SHA1 | Date | |
---|---|---|---|
e083b11394 | |||
167990fc4c | |||
d5c1be3d80 | |||
f6567794e0 | |||
ded85d88f7 |
@ -34,6 +34,18 @@ from accounting import db
|
|||||||
from accounting.locale import gettext
|
from accounting.locale import gettext
|
||||||
from accounting.utils.user import user_cls, user_pk_column
|
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):
|
class BaseAccount(db.Model):
|
||||||
"""A base account."""
|
"""A base account."""
|
||||||
@ -114,21 +126,15 @@ class Account(db.Model):
|
|||||||
"""The title."""
|
"""The title."""
|
||||||
is_need_offset: Mapped[bool] = mapped_column(default=False)
|
is_need_offset: Mapped[bool] = mapped_column(default=False)
|
||||||
"""Whether the journal entry line items of this account need offset."""
|
"""Whether the journal entry line items of this account need offset."""
|
||||||
created_at: Mapped[dt.datetime] \
|
created_at: Mapped[timestamp]
|
||||||
= mapped_column(db.DateTime(timezone=True),
|
|
||||||
server_default=db.func.now())
|
|
||||||
"""The time of creation."""
|
"""The time of creation."""
|
||||||
created_by_id: Mapped[int] \
|
created_by_id: Mapped[user_pk] = mapped_column()
|
||||||
= mapped_column(db.ForeignKey(user_pk_column, onupdate="CASCADE"))
|
|
||||||
"""The ID of the creator."""
|
"""The ID of the creator."""
|
||||||
created_by: Mapped[user_cls] = db.relationship(foreign_keys=created_by_id)
|
created_by: Mapped[user_cls] = db.relationship(foreign_keys=created_by_id)
|
||||||
"""The creator."""
|
"""The creator."""
|
||||||
updated_at: Mapped[dt.datetime] \
|
updated_at: Mapped[timestamp]
|
||||||
= mapped_column(db.DateTime(timezone=True),
|
|
||||||
server_default=db.func.now())
|
|
||||||
"""The time of last update."""
|
"""The time of last update."""
|
||||||
updated_by_id: Mapped[int] \
|
updated_by_id: Mapped[user_pk] = mapped_column()
|
||||||
= mapped_column(db.ForeignKey(user_pk_column, onupdate="CASCADE"))
|
|
||||||
"""The ID of the updator."""
|
"""The ID of the updator."""
|
||||||
updated_by: Mapped[user_cls] = db.relationship(foreign_keys=updated_by_id)
|
updated_by: Mapped[user_cls] = db.relationship(foreign_keys=updated_by_id)
|
||||||
"""The updator."""
|
"""The updator."""
|
||||||
@ -370,21 +376,15 @@ class Currency(db.Model):
|
|||||||
"""The code."""
|
"""The code."""
|
||||||
name_l10n: Mapped[str] = mapped_column("name")
|
name_l10n: Mapped[str] = mapped_column("name")
|
||||||
"""The name."""
|
"""The name."""
|
||||||
created_at: Mapped[dt.datetime] \
|
created_at: Mapped[timestamp]
|
||||||
= mapped_column(db.DateTime(timezone=True),
|
|
||||||
server_default=db.func.now())
|
|
||||||
"""The time of creation."""
|
"""The time of creation."""
|
||||||
created_by_id: Mapped[int] \
|
created_by_id: Mapped[user_pk] = mapped_column()
|
||||||
= mapped_column(db.ForeignKey(user_pk_column, onupdate="CASCADE"))
|
|
||||||
"""The ID of the creator."""
|
"""The ID of the creator."""
|
||||||
created_by: Mapped[user_cls] = db.relationship(foreign_keys=created_by_id)
|
created_by: Mapped[user_cls] = db.relationship(foreign_keys=created_by_id)
|
||||||
"""The creator."""
|
"""The creator."""
|
||||||
updated_at: Mapped[dt.datetime] \
|
updated_at: Mapped[timestamp]
|
||||||
= mapped_column(db.DateTime(timezone=True),
|
|
||||||
server_default=db.func.now())
|
|
||||||
"""The time of last update."""
|
"""The time of last update."""
|
||||||
updated_by_id: Mapped[int] \
|
updated_by_id: Mapped[user_pk] = mapped_column()
|
||||||
= mapped_column(db.ForeignKey(user_pk_column, onupdate="CASCADE"))
|
|
||||||
"""The ID of the updator."""
|
"""The ID of the updator."""
|
||||||
updated_by: Mapped[user_cls] \
|
updated_by: Mapped[user_cls] \
|
||||||
= db.relationship(foreign_keys=updated_by_id)
|
= db.relationship(foreign_keys=updated_by_id)
|
||||||
@ -543,21 +543,15 @@ class JournalEntry(db.Model):
|
|||||||
"""The account number under the date."""
|
"""The account number under the date."""
|
||||||
note: Mapped[str | None]
|
note: Mapped[str | None]
|
||||||
"""The note."""
|
"""The note."""
|
||||||
created_at: Mapped[dt.datetime] \
|
created_at: Mapped[timestamp]
|
||||||
= mapped_column(db.DateTime(timezone=True),
|
|
||||||
server_default=db.func.now())
|
|
||||||
"""The time of creation."""
|
"""The time of creation."""
|
||||||
created_by_id: Mapped[int] \
|
created_by_id: Mapped[user_pk] = mapped_column()
|
||||||
= mapped_column(db.ForeignKey(user_pk_column, onupdate="CASCADE"))
|
|
||||||
"""The ID of the creator."""
|
"""The ID of the creator."""
|
||||||
created_by: Mapped[user_cls] = db.relationship(foreign_keys=created_by_id)
|
created_by: Mapped[user_cls] = db.relationship(foreign_keys=created_by_id)
|
||||||
"""The creator."""
|
"""The creator."""
|
||||||
updated_at: Mapped[dt.datetime] \
|
updated_at: Mapped[timestamp]
|
||||||
= mapped_column(db.DateTime(timezone=True),
|
|
||||||
server_default=db.func.now())
|
|
||||||
"""The time of last update."""
|
"""The time of last update."""
|
||||||
updated_by_id: Mapped[int] \
|
updated_by_id: Mapped[user_pk] = mapped_column()
|
||||||
= mapped_column(db.ForeignKey(user_pk_column, onupdate="CASCADE"))
|
|
||||||
"""The ID of the updator."""
|
"""The ID of the updator."""
|
||||||
updated_by: Mapped[user_cls] = db.relationship(foreign_keys=updated_by_id)
|
updated_by: Mapped[user_cls] = db.relationship(foreign_keys=updated_by_id)
|
||||||
"""The updator."""
|
"""The updator."""
|
||||||
@ -883,21 +877,15 @@ class Option(db.Model):
|
|||||||
"""The name."""
|
"""The name."""
|
||||||
value: Mapped[str] = mapped_column(db.Text)
|
value: Mapped[str] = mapped_column(db.Text)
|
||||||
"""The option value."""
|
"""The option value."""
|
||||||
created_at: Mapped[dt.datetime] \
|
created_at: Mapped[timestamp]
|
||||||
= mapped_column(db.DateTime(timezone=True),
|
|
||||||
server_default=db.func.now())
|
|
||||||
"""The time of creation."""
|
"""The time of creation."""
|
||||||
created_by_id: Mapped[int] \
|
created_by_id: Mapped[user_pk] = mapped_column()
|
||||||
= mapped_column(db.ForeignKey(user_pk_column, onupdate="CASCADE"))
|
|
||||||
"""The ID of the creator."""
|
"""The ID of the creator."""
|
||||||
created_by: Mapped[user_cls] = db.relationship(foreign_keys=created_by_id)
|
created_by: Mapped[user_cls] = db.relationship(foreign_keys=created_by_id)
|
||||||
"""The creator."""
|
"""The creator."""
|
||||||
updated_at: Mapped[dt.datetime] \
|
updated_at: Mapped[timestamp]
|
||||||
= mapped_column(db.DateTime(timezone=True),
|
|
||||||
server_default=db.func.now())
|
|
||||||
"""The time of last update."""
|
"""The time of last update."""
|
||||||
updated_by_id: Mapped[int] \
|
updated_by_id: Mapped[user_pk] = mapped_column()
|
||||||
= mapped_column(db.ForeignKey(user_pk_column, onupdate="CASCADE"))
|
|
||||||
"""The ID of the updator."""
|
"""The ID of the updator."""
|
||||||
updated_by: Mapped[user_cls] = db.relationship(foreign_keys=updated_by_id)
|
updated_by: Mapped[user_cls] = db.relationship(foreign_keys=updated_by_id)
|
||||||
"""The updator."""
|
"""The updator."""
|
||||||
|
@ -21,20 +21,21 @@ import typing as t
|
|||||||
|
|
||||||
from flask import Blueprint, render_template, Flask, redirect, url_for, \
|
from flask import Blueprint, render_template, Flask, redirect, url_for, \
|
||||||
session, request, g, Response, abort
|
session, request, g, Response, abort
|
||||||
|
from sqlalchemy.orm import Mapped, mapped_column
|
||||||
|
|
||||||
from . import db
|
from . import db
|
||||||
|
|
||||||
bp: Blueprint = Blueprint("auth", __name__, url_prefix="/")
|
bp: Blueprint = Blueprint("auth", __name__, url_prefix="/")
|
||||||
|
"""The authentication blueprint."""
|
||||||
|
|
||||||
|
|
||||||
class User(db.Model):
|
class User(db.Model):
|
||||||
"""A user."""
|
"""A user."""
|
||||||
__tablename__ = "users"
|
__tablename__ = "users"
|
||||||
"""The table name."""
|
"""The table name."""
|
||||||
id = db.Column(db.Integer, nullable=False, primary_key=True,
|
id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
|
||||||
autoincrement=True)
|
"""The ID."""
|
||||||
"""The ID"""
|
username: Mapped[str] = mapped_column(unique=True)
|
||||||
username = db.Column(db.String, nullable=False, unique=True)
|
|
||||||
"""The username."""
|
"""The username."""
|
||||||
|
|
||||||
def __str__(self) -> str:
|
def __str__(self) -> str:
|
||||||
|
Loading…
Reference in New Issue
Block a user