storage backend reworked
This commit is contained in:
@ -1,6 +1,36 @@
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Storage(models.Model):
|
||||
DROPBOX = 'DB'
|
||||
STORAGE_TYPES = ((DROPBOX, 'Dropbox'),)
|
||||
|
||||
name = models.CharField(max_length=128)
|
||||
method = models.CharField(choices=STORAGE_TYPES, max_length=128, default=DROPBOX)
|
||||
username = models.CharField(max_length=128, blank=True, null=True)
|
||||
password = models.CharField(max_length=128, blank=True, null=True)
|
||||
token = models.CharField(max_length=512, blank=True, null=True)
|
||||
url = models.URLField(blank=True, null=True)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
class Sync(models.Model):
|
||||
storage = models.ForeignKey(Storage, on_delete=models.PROTECT)
|
||||
path = models.CharField(max_length=512, default="")
|
||||
last_checked = models.DateTimeField()
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
|
||||
|
||||
class SyncLog(models.Model):
|
||||
sync = models.ForeignKey(Sync, on_delete=models.CASCADE)
|
||||
status = models.CharField(max_length=32)
|
||||
msg = models.TextField(default="")
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
|
||||
|
||||
class Keyword(models.Model):
|
||||
name = models.CharField(max_length=64, unique=True)
|
||||
icon = models.CharField(max_length=1, blank=True, null=True)
|
||||
@ -28,6 +58,7 @@ class Category(models.Model):
|
||||
class Recipe(models.Model):
|
||||
name = models.CharField(max_length=128)
|
||||
path = models.CharField(max_length=512, default="")
|
||||
storage = models.ForeignKey(Storage, on_delete=models.PROTECT)
|
||||
link = models.CharField(max_length=512, default="")
|
||||
category = models.ForeignKey(Category, blank=True, on_delete=models.SET_NULL, null=True)
|
||||
keywords = models.ManyToManyField(Keyword, blank=True)
|
||||
@ -45,19 +76,6 @@ class Recipe(models.Model):
|
||||
|
||||
class RecipeImport(models.Model):
|
||||
name = models.CharField(max_length=128)
|
||||
storage = models.ForeignKey(Storage, on_delete=models.PROTECT)
|
||||
path = models.CharField(max_length=512, default="")
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
|
||||
|
||||
class Sync(models.Model):
|
||||
path = models.CharField(max_length=512, default="")
|
||||
last_checked = models.DateTimeField()
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
|
||||
|
||||
class SyncLog(models.Model):
|
||||
monitor = models.ForeignKey(Sync, on_delete=models.CASCADE)
|
||||
status = models.CharField(max_length=32)
|
||||
msg = models.TextField(default="")
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
|
Reference in New Issue
Block a user