35 lines
723 B
Python
35 lines
723 B
Python
from peewee import *
|
|
from pathlib import Path
|
|
|
|
db = DatabaseProxy()
|
|
|
|
class BaseModel(Model):
|
|
class Meta:
|
|
database = db
|
|
db_table = 'journal'
|
|
|
|
|
|
# model for a single journal entry
|
|
class JournalEntry(BaseModel):
|
|
# the date of the entry
|
|
date = DateField()
|
|
# the text of the entry
|
|
text = TextField()
|
|
media_path = TextField()
|
|
author = TextField()
|
|
|
|
|
|
@property
|
|
def media(self):
|
|
return Path(self.media_path).open('rb')
|
|
|
|
@media.setter
|
|
def media(self, media):
|
|
self.media_path = Path(media).absolute()
|
|
self.save()
|
|
|
|
|
|
def set_db(db_path):
|
|
db.initialize(SqliteDatabase(db_path))
|
|
db.connect()
|
|
db.create_tables([JournalEntry], safe=True) |