Compare commits
2 Commits
5c6bfd8b49
...
61fd1849ed
Author | SHA1 | Date | |
---|---|---|---|
61fd1849ed | |||
a67158f8f6 |
@ -17,8 +17,6 @@
|
|||||||
"""The forms for the currency management.
|
"""The forms for the currency management.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
from __future__ import annotations
|
|
||||||
|
|
||||||
from flask_wtf import FlaskForm
|
from flask_wtf import FlaskForm
|
||||||
from wtforms import StringField, ValidationError
|
from wtforms import StringField, ValidationError
|
||||||
from wtforms.validators import DataRequired, Regexp, NoneOf
|
from wtforms.validators import DataRequired, Regexp, NoneOf
|
||||||
@ -30,22 +28,25 @@ from accounting.utils.strip_text import strip_text
|
|||||||
from accounting.utils.user import get_current_user_pk
|
from accounting.utils.user import get_current_user_pk
|
||||||
|
|
||||||
|
|
||||||
|
class CodeUnique:
|
||||||
|
"""The validator to check if the code is unique."""
|
||||||
|
|
||||||
|
def __call__(self, form: FlaskForm, field: StringField) -> None:
|
||||||
|
if field.data == "":
|
||||||
|
return
|
||||||
|
if not isinstance(form, CurrencyForm):
|
||||||
|
return
|
||||||
|
if form.obj_code is not None and form.obj_code == field.data:
|
||||||
|
return
|
||||||
|
if db.session.get(Currency, field.data) is not None:
|
||||||
|
raise ValidationError(lazy_gettext(
|
||||||
|
"Code conflicts with another currency."))
|
||||||
|
|
||||||
|
|
||||||
class CurrencyForm(FlaskForm):
|
class CurrencyForm(FlaskForm):
|
||||||
"""The form to create or edit a currency."""
|
"""The form to create or edit a currency."""
|
||||||
CODE_BLOCKLIST: list[str] = ["create", "store", "exists-code"]
|
CODE_BLOCKLIST: list[str] = ["create", "store", "exists-code"]
|
||||||
"""The reserved codes that are not available."""
|
"""The reserved codes that are not available."""
|
||||||
|
|
||||||
class CodeUnique:
|
|
||||||
"""The validator to check if the code is unique."""
|
|
||||||
def __call__(self, form: CurrencyForm, field: StringField) -> None:
|
|
||||||
if field.data == "":
|
|
||||||
return
|
|
||||||
if form.obj_code is not None and form.obj_code == field.data:
|
|
||||||
return
|
|
||||||
if db.session.get(Currency, field.data) is not None:
|
|
||||||
raise ValidationError(lazy_gettext(
|
|
||||||
"Code conflicts with another currency."))
|
|
||||||
|
|
||||||
code = StringField(
|
code = StringField(
|
||||||
filters=[strip_text],
|
filters=[strip_text],
|
||||||
validators=[DataRequired(lazy_gettext("Please fill in the code.")),
|
validators=[DataRequired(lazy_gettext("Please fill in the code.")),
|
||||||
|
@ -17,8 +17,6 @@
|
|||||||
"""The journal entry sub-forms for the transaction management.
|
"""The journal entry sub-forms for the transaction management.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
from __future__ import annotations
|
|
||||||
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
from flask_babel import LazyString
|
from flask_babel import LazyString
|
||||||
|
@ -17,8 +17,6 @@
|
|||||||
"""The reorder forms for the transaction management.
|
"""The reorder forms for the transaction management.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
from __future__ import annotations
|
|
||||||
|
|
||||||
from datetime import date
|
from datetime import date
|
||||||
|
|
||||||
from flask import request
|
from flask import request
|
||||||
|
@ -17,8 +17,6 @@
|
|||||||
"""The account option for the transaction management.
|
"""The account option for the transaction management.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
from __future__ import annotations
|
|
||||||
|
|
||||||
from accounting.models import Account
|
from accounting.models import Account
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user