Skip to content

Commit fb551a6

Browse files
authored
Merge pull request #45 from eguaio/export_by_month
New `exportar_mes` command
2 parents 6e1ca99 + bcb0a6e commit fb551a6

3 files changed

Lines changed: 25 additions & 4 deletions

File tree

bot/handlers.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
get_month_expenses,
1212
get_month_and_year,
1313
is_group,
14+
get_month_filters,
1415
new_expense,
1516
new_payment,
1617
show_expenses,
@@ -97,6 +98,18 @@ async def export(update, context, user, group):
9798
)
9899

99100

101+
@user_and_group
102+
async def export_month(update, context, user, group):
103+
month, year = get_month_and_year(context.args)
104+
expense_filters = get_month_filters(year, month)
105+
extra_name = f"{year}-{month}"
106+
exporter = ExportExpenses(user, group, extra_name, expense_filters)
107+
text = await exporter.run()
108+
await context.bot.send_message(
109+
chat_id=update.message.chat_id, text=text, parse_mode=ParseMode.MARKDOWN
110+
)
111+
112+
100113
async def vianda(update, context):
101114
vianda_message = ViandaMessage(*context.args)
102115

@@ -125,6 +138,7 @@ async def unknown(update, context):
125138
CommandHandler('asado', calc_asado),
126139
CommandHandler('a', calc_asado),
127140
CommandHandler('exportar', export),
141+
CommandHandler('exportar_mes', export_month),
128142
CommandHandler('vianda', vianda),
129143
MessageHandler(filters.COMMAND, unknown),
130144
]

bot/utils.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,7 @@ async def show_expenses(group, **expense_filters):
329329
return text
330330

331331

332-
async def get_month_expenses(group, year, month):
332+
def get_month_filters(year, month):
333333
first_day_of_month = dt.date(year, month, 1)
334334
if month == 12:
335335
next_month = 1
@@ -342,6 +342,11 @@ async def get_month_expenses(group, year, month):
342342
'date__gte': first_day_of_month,
343343
'date__lt': first_day_of_next_month,
344344
}
345+
return expense_filters
346+
347+
348+
async def get_month_expenses(group, year, month):
349+
expense_filters = get_month_filters(year, month)
345350
text = "Gastos del mes {} del año {}\n\n".format(month, year)
346351
text += await show_expenses(group, **expense_filters)
347352
return text

use_cases/export.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,11 @@ def only_beta_users(username):
2020

2121
class ExportExpenses:
2222

23-
def __init__(self, user, group, **expense_filters):
23+
def __init__(self, user, group, extra_name=None, expense_filters=None):
2424
self.user = user
2525
self.group = group
26-
self.expense_filters = expense_filters
26+
self.expense_filters = expense_filters if expense_filters is not None else {}
27+
self.extra_name = extra_name
2728

2829
async def get_expenses(self):
2930
"""
@@ -95,6 +96,8 @@ def get_sheet_url_and_name(self):
9596
url = settings.GOOGLE_SHEET_URL
9697

9798
name = self.group.name
99+
if self.extra_name:
100+
name += f"@{self.extra_name}"
98101

99102
return url, name
100103

@@ -124,4 +127,3 @@ async def run(self):
124127
text += f"- Nombre de la nueva pestaña: *\"{worksheet_name}\"*."
125128

126129
return text
127-

0 commit comments

Comments
 (0)