class ModelBase:
def __init__(self, model):
self.model = model
self.server = self.model.server
self.connection = self.model.connection
self.rights = self.model.internal_rights
self.translator = self.model.translator
def translate(self, text):
return self.translator.translate(text)
def t(self, text):
return self.translate(text)
class ModelItemBase(ModelBase):
def __init__(self, manager, row):
self.manager = manager
super().__init__(self.manager.model)
assert(self.manager.itemtype() == type(self))
self.id = int(row['id'])
assert(self.id)
def reset_cache(self):
self.manager.cache.reset_row(self.table(), self.id)
def table(self):
return self.manager.table()
class ModelManagerBase(ModelBase):
def __init__(self, model):
super().__init__(model)
def table(self):
raise Exception()
def itemtype(self):
raise Exception()
def item(self, *args, **kvargs):
raise self.itemtype()(self, *args, **kvargs)
def reset_cache(self, id):
self.connection.cache.reset_row(self.table(), id)