This commit is contained in:
parent
9d700a8cfd
commit
24065171f7
@ -14,10 +14,11 @@ class JournalHandler(BaseHandler):
|
|||||||
entry_points=[CommandHandler(entry_string, self.entry_point)],
|
entry_points=[CommandHandler(entry_string, self.entry_point)],
|
||||||
states={
|
states={
|
||||||
DATE_CHOICE: [
|
DATE_CHOICE: [
|
||||||
CallbackQueryHandler(self.date_choice),
|
CallbackQueryHandler(self.date_choice, pattern="today|yesterday"),
|
||||||
|
CallbackQueryHandler(self.date_custom, pattern="custom"),
|
||||||
],
|
],
|
||||||
DATE_ENTRY: [
|
DATE_ENTRY: [
|
||||||
MessageHandler(filters.TEXT, self.date_entry),
|
MessageHandler(filters.ALL, self.date_entry),
|
||||||
],
|
],
|
||||||
CONTENT: [
|
CONTENT: [
|
||||||
MessageHandler(filters.ALL, self.content_save),
|
MessageHandler(filters.ALL, self.content_save),
|
||||||
@ -49,22 +50,34 @@ class JournalHandler(BaseHandler):
|
|||||||
async def date_choice(self, update, context):
|
async def date_choice(self, update, context):
|
||||||
query = update.callback_query
|
query = update.callback_query
|
||||||
await query.answer()
|
await query.answer()
|
||||||
if query.data == "today" or query.data == "yesterday":
|
if query.data == "today":
|
||||||
date = datetime.datetime.now().date() if query.data == "today" else datetime.datetime.now().date() - datetime.timedelta(days=1)
|
date = datetime.datetime.now().date()
|
||||||
with self.models.db:
|
elif query.data == "yesterday":
|
||||||
self.current_model, new = self.models.JournalEntry.get_or_create(
|
date = datetime.datetime.now().date() - datetime.timedelta(days=1)
|
||||||
date = date
|
else:
|
||||||
)
|
raise ValueError("Invalid date choice")
|
||||||
if not new:
|
|
||||||
await query.edit_message_text(text="An entry already exists for this date")
|
with self.models.db:
|
||||||
return ConversationHandler.END
|
self.current_model, new = self.models.JournalEntry.get_or_create(
|
||||||
|
date = date
|
||||||
|
)
|
||||||
|
if new:
|
||||||
await query.edit_message_text(
|
await query.edit_message_text(
|
||||||
text="Please enter the content for the entry"
|
text="Please enter the content for the entry"
|
||||||
)
|
)
|
||||||
return CONTENT
|
|
||||||
else:
|
else:
|
||||||
await query.edit_message_text(text="Please enter the date in the format DDMMYYYY")
|
await query.edit_message_text(text="An entry already exists for this date")
|
||||||
return DATE_ENTRY
|
return ConversationHandler.END
|
||||||
|
|
||||||
|
return CONTENT
|
||||||
|
|
||||||
|
|
||||||
|
async def date_custom(self, update, context):
|
||||||
|
query = update.callback_query
|
||||||
|
await query.answer()
|
||||||
|
await query.edit_message_text(text="Please enter the date in the format DDMMYYYY")
|
||||||
|
return DATE_ENTRY
|
||||||
|
|
||||||
|
|
||||||
async def date_entry(self, update, context):
|
async def date_entry(self, update, context):
|
||||||
date = update.message.text
|
date = update.message.text
|
||||||
@ -73,7 +86,6 @@ class JournalHandler(BaseHandler):
|
|||||||
except ValueError:
|
except ValueError:
|
||||||
await update.message.reply_text("Please enter the date in the format DDMMYYYY")
|
await update.message.reply_text("Please enter the date in the format DDMMYYYY")
|
||||||
return DATE_ENTRY
|
return DATE_ENTRY
|
||||||
self.logger.info(f"Date: {date}")
|
|
||||||
|
|
||||||
with self.models.db:
|
with self.models.db:
|
||||||
self.current_model, new = self.models.JournalEntry.get_or_create(
|
self.current_model, new = self.models.JournalEntry.get_or_create(
|
||||||
|
@ -6,7 +6,7 @@ db = DatabaseProxy()
|
|||||||
class BaseModel(Model):
|
class BaseModel(Model):
|
||||||
class Meta:
|
class Meta:
|
||||||
database = db
|
database = db
|
||||||
db_table = 'journal'
|
db_table = 'lists'
|
||||||
|
|
||||||
class ListModel(BaseModel):
|
class ListModel(BaseModel):
|
||||||
name = CharField(unique=True)
|
name = CharField(unique=True)
|
||||||
@ -25,6 +25,6 @@ class ListModel(BaseModel):
|
|||||||
|
|
||||||
|
|
||||||
def set_db(db_path):
|
def set_db(db_path):
|
||||||
db.initialize(SqliteDatabase(db_path, pragmas={'journal_mode': 'wal'}))
|
db.initialize(SqliteDatabase(db_path))
|
||||||
db.connect()
|
with db:
|
||||||
db.create_tables([ListModel], safe=True)
|
db.create_tables([ListModel], safe=True)
|
||||||
|
@ -54,6 +54,6 @@ class JournalEntry(BaseModel):
|
|||||||
|
|
||||||
|
|
||||||
def set_db(db_path):
|
def set_db(db_path):
|
||||||
db.initialize(SqliteDatabase(db_path, pragmas={'journal_mode': 'wal'}))
|
db.initialize(SqliteDatabase(db_path))
|
||||||
db.connect()
|
with db:
|
||||||
db.create_tables([JournalEntry], safe=True)
|
db.create_tables([JournalEntry], safe=True)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user