Properly update release dates
This commit is contained in:
1 parent
b1942678b4
commit
93346b0c63
3 files changed
+34
-3
No files matched your search
@@ -3,6 +3,7 @@ from elixir.entity import Entity
|
||||
from elixir.fields import Field
|
||||
from elixir.options import options_defaults, using_options
|
||||
from elixir.relationships import ManyToMany, OneToMany, ManyToOne
|
||||
from sqlalchemy.ext.mutable import Mutable
|
||||
from sqlalchemy.types import Integer, Unicode, UnicodeText, Boolean, String, \
|
||||
TypeDecorator
|
||||
import json
|
||||
@@ -39,6 +40,37 @@ class JsonType(TypeDecorator):
|
||||
def process_result_value(self, value, dialect):
|
||||
return json.loads(value if value else '{}')
|
||||
|
||||
class MutableDict(Mutable, dict):
|
||||
|
||||
@classmethod
|
||||
def coerce(cls, key, value):
|
||||
if not isinstance(value, MutableDict):
|
||||
if isinstance(value, dict):
|
||||
return MutableDict(value)
|
||||
return Mutable.coerce(key, value)
|
||||
else:
|
||||
return value
|
||||
|
||||
def __delitem(self, key):
|
||||
dict.__delitem__(self, key)
|
||||
self.changed()
|
||||
|
||||
def __setitem__(self, key, value):
|
||||
dict.__setitem__(self, key, value)
|
||||
self.changed()
|
||||
|
||||
def __getstate__(self):
|
||||
return dict(self)
|
||||
|
||||
def __setstate__(self, state):
|
||||
self.update(self)
|
||||
|
||||
def update(self, *args, **kwargs):
|
||||
super(MutableDict, self).update(*args, **kwargs)
|
||||
self.changed()
|
||||
|
||||
MutableDict.associate_with(JsonType)
|
||||
|
||||
|
||||
class Movie(Entity):
|
||||
"""Movie Resource a movie could have multiple releases
|
||||
|
||||
Reference in new issue
Block a user