make commit optional
This commit is contained in:
parent
c82efdaff1
commit
3cde05b9ba
1 changed files with 17 additions and 13 deletions
|
@ -148,9 +148,9 @@ class Item(db.Model):
|
|||
f = self.files.first()
|
||||
return f.fullpath() if f else None
|
||||
|
||||
def update_sort(self):
|
||||
def update_sort(self, commit=True):
|
||||
update = False
|
||||
s = Sort.get_or_create(self.id)
|
||||
s = Sort.get_or_create(self.id, commit=commit)
|
||||
for key in config['itemKeys']:
|
||||
if key.get('sort'):
|
||||
value = self.json().get(key['id'], None)
|
||||
|
@ -191,7 +191,7 @@ class Item(db.Model):
|
|||
if update:
|
||||
state.db.session.add(s)
|
||||
|
||||
def update_find(self):
|
||||
def update_find(self, commit=True):
|
||||
|
||||
def add(k, v):
|
||||
f = Find.query.filter_by(item_id=self.id, key=k, value=v).first()
|
||||
|
@ -242,26 +242,28 @@ class Item(db.Model):
|
|||
for f in Find.query.filter_by(item_id=self.id).filter(Find.key.notin_(keys)):
|
||||
state.db.session.delete(f)
|
||||
|
||||
def update(self, modified=None):
|
||||
def update(self, modified=None, commit=True):
|
||||
for key in ('mediastate', 'coverRatio', 'previewRatio'):
|
||||
if key in self.meta:
|
||||
if key not in self.info:
|
||||
self.info[key] = self.meta[key]
|
||||
del self.meta[key]
|
||||
users = list(map(str, list(self.users)))
|
||||
self.info['mediastate'] = 'available' # available, unavailable, transferring
|
||||
t = Transfer.get(self.id)
|
||||
if t and t.added and t.progress < 1:
|
||||
self.info['mediastate'] = 'transferring'
|
||||
else:
|
||||
self.info['mediastate'] = 'available' if settings.USER_ID in users else 'unavailable'
|
||||
self.info['mediastate'] = 'available' if self.files.count() else 'unavailable'
|
||||
if modified:
|
||||
self.modified = modified
|
||||
else:
|
||||
self.modified = datetime.utcnow()
|
||||
self.update_sort()
|
||||
self.update_find()
|
||||
self.save()
|
||||
self.update_sort(commit=commit)
|
||||
self.update_find(commit=commit)
|
||||
if commit:
|
||||
self.save()
|
||||
else:
|
||||
state.db.session.add(self)
|
||||
|
||||
def save(self):
|
||||
state.db.session.add(self)
|
||||
|
@ -555,12 +557,13 @@ class Sort(db.Model):
|
|||
return cls.query.filter_by(item_id=item_id).first()
|
||||
|
||||
@classmethod
|
||||
def get_or_create(cls, item_id):
|
||||
def get_or_create(cls, item_id, commit=True):
|
||||
f = cls.get(item_id)
|
||||
if not f:
|
||||
f = cls(item_id=item_id)
|
||||
state.db.session.add(f)
|
||||
state.db.session.commit()
|
||||
if commit:
|
||||
state.db.session.commit()
|
||||
return f
|
||||
|
||||
Item.sort_keys = []
|
||||
|
@ -604,12 +607,13 @@ class Find(db.Model):
|
|||
return cls.query.filter_by(item_id=item, key=key).first()
|
||||
|
||||
@classmethod
|
||||
def get_or_create(cls, item, key):
|
||||
def get_or_create(cls, item, key, commit=True):
|
||||
f = cls.get(item, key)
|
||||
if not f:
|
||||
f = cls(item_id=item, key=key)
|
||||
state.db.session.add(f)
|
||||
state.db.session.commit()
|
||||
if commit:
|
||||
state.db.session.commit()
|
||||
return f
|
||||
|
||||
class File(db.Model):
|
||||
|
|
Loading…
Reference in a new issue