Blob Blame Raw


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)