Skip to content

Commit 78efb91

Browse files
committed
Fixed issue with montly exenses.
1 parent 7e8cc73 commit 78efb91

File tree

4 files changed

+54
-3
lines changed

4 files changed

+54
-3
lines changed

app/handlers/books.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -647,6 +647,10 @@ async def _categories(
647647
text=__(messages.BUTTON_TITLE, lang=from_user.language_code),
648648
callback_data='/update_title'
649649
),
650+
# InlineKeyboardButton(
651+
# text=__(messages.BUTTON_LIMIT, lang=from_user.language_code),
652+
# callback_data='/set_limits'
653+
# ),
650654
InlineKeyboardButton(
651655
text=__(messages.BUTTON_REMOVE, lang=from_user.language_code),
652656
callback_data='/delete'
@@ -707,6 +711,10 @@ async def categories_callback(self, call: CallbackQuery, state: FSMContext) -> N
707711
await state.update_data(category=data['parent_category'])
708712
await self.category_title(call.message, state, call.from_user)
709713
return
714+
# if call.data == '/set_limits':
715+
# await state.update_data(category=data['parent_category'])
716+
# await self.category_limits(call.message, state, call.from_user)
717+
# return
710718
if call.data == '/delete':
711719
category = self.db.get_category_by(
712720
book_id=book.id,
@@ -756,6 +764,22 @@ async def categories_callback(self, call: CallbackQuery, state: FSMContext) -> N
756764
await state.update_data(parent_category=category_id)
757765
await self._categories(call.message, state, call.from_user)
758766

767+
# async def category_limits(
768+
# self,
769+
# message: Message,
770+
# state: FSMContext,
771+
# from_user: Optional[User] = None
772+
# ) -> None:
773+
# """Displays message to request category limits."""
774+
# await state.set_state(BooksState.category_title)
775+
# from_user = from_user or message.from_user
776+
# await message.answer(
777+
# text=__(
778+
# text_dict=messages.CATEGORIES_SET_LIMITS,
779+
# lang=from_user.language_code
780+
# ).format(title=title),
781+
# )
782+
759783
async def category_title(
760784
self,
761785
message: Message,

app/handlers/expenses.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,6 @@ async def selector_categories_callback(
215215
category_id=(0 if not category else category.id),
216216
year=created.year,
217217
month=created.month,
218-
day=created.day,
219218
)
220219
await state.clear()
221220
if category:

app/utils/messages.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,17 @@
249249
'ru': 'Введите название категории.',
250250
}
251251

252+
CATEGORIES_SET_LIMITS = {
253+
'default': (
254+
'Please send monthly limit for category <strong>{title}</strong>. '
255+
'Current limit: <strong>{limit}</strong>.'
256+
),
257+
'ru': (
258+
'Введите месячный лимит для категории <strong>{title}</strong>. '
259+
'Текущий лимит: <strong>{limit}</strong>.'
260+
),
261+
}
262+
252263
EXPENSES_ADD_AMOUNT = {
253264
'default': (
254265
'Add <strong>{amount} {currency}</strong> to the book '
@@ -433,6 +444,11 @@
433444
'ru': '✎ Название',
434445
}
435446

447+
BUTTON_LIMIT = {
448+
'default': '✎ Limits',
449+
'ru': '✎ Лимиты',
450+
}
451+
436452
BUTTON_CURRENCY = {
437453
'default': '✎ Currency',
438454
'ru': '✎ Валюта',

app/utils/models.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from typing import Any, Optional
55

66
from sqlalchemy import Table, Index, Column
7-
from sqlalchemy import Integer, String, DateTime, Boolean, Text, Float, Enum
7+
from sqlalchemy import Integer, String, DateTime, Boolean, Text, Float, Enum, Text
88
from sqlalchemy import MetaData, DDL
99
from sqlalchemy import create_engine, Engine
1010
from sqlalchemy import select, insert, update, func, asc
@@ -46,7 +46,6 @@ def _define_db_tables(self) -> None:
4646
Index("idx_log_username", "username"),
4747
Index("idx_log_created", "created"),
4848
)
49-
5049
self.user_table = Table(
5150
"users",
5251
self.metadata_obj,
@@ -78,6 +77,7 @@ def _define_db_tables(self) -> None:
7877
Column("book_id", Integer),
7978
Column("category_type", Enum(CategoryType), default=CategoryType.EXPENSE),
8079
Column("title", String(255)),
80+
Column("options", Text, default=''),
8181
Column("deleted", Boolean, default=False),
8282
Index("idx_categories_parent_id", "parent_id"),
8383
Index("idx_categories_book_title", "book_id", "title"),
@@ -116,6 +116,18 @@ def _define_db_tables(self) -> None:
116116

117117
def _alter_schema(self) -> None:
118118
"""Alter database schema, if necessary."""
119+
column = Column("options", Text, default='')
120+
column_name = column.compile(dialect=self.engine.dialect)
121+
column_type = column.type.compile(self.engine.dialect)
122+
try:
123+
with self.engine.connect() as connection:
124+
connection.execute(DDL(
125+
f"ALTER TABLE categories ADD COLUMN {column_name} "
126+
f"{column_type} DEFAULT('')"
127+
))
128+
connection.commit()
129+
except OperationalError:
130+
pass
119131
column = Column("category_type", Enum(CategoryType), default=CategoryType.EXPENSE)
120132
column_name = column.compile(dialect=self.engine.dialect)
121133
column_type = column.type.compile(self.engine.dialect)

0 commit comments

Comments
 (0)