mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-07 01:14:15 +02:00
45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
from enum import Enum
|
|
|
|
from bauh.api.abstract.model import SoftwarePackage, PackageStatus
|
|
from bauh.view.util.translation import I18n
|
|
|
|
|
|
class PackageViewStatus(Enum):
|
|
LOADING = 0
|
|
READY = 1
|
|
|
|
|
|
def get_type_label(type_: str, gem: str, i18n: I18n) -> str:
|
|
type_label = 'gem.{}.type.{}.label'.format(gem, type_.lower())
|
|
return i18n.get(type_label, type_.capitalize()).strip()
|
|
|
|
|
|
class PackageView:
|
|
|
|
def __init__(self, model: SoftwarePackage, i18n: I18n):
|
|
self.model = None
|
|
self.update_checked = None
|
|
self.status = None
|
|
self.update_model(model)
|
|
self.table_index = -1
|
|
self.i18n = i18n
|
|
|
|
def get_type_label(self) -> str:
|
|
return get_type_label(self.model.get_type(), self.model.gem_name, self.i18n)
|
|
|
|
def update_model(self, model: SoftwarePackage):
|
|
self.model = model
|
|
self.update_checked = model.update
|
|
self.status = PackageViewStatus.LOADING if model.status == PackageStatus.LOADING_DATA else PackageViewStatus.READY
|
|
|
|
@property
|
|
def name(self) -> str:
|
|
return self.model.name
|
|
|
|
def __repr__(self):
|
|
return '{} ({})'.format(self.model.name, self.get_type_label())
|
|
|
|
def __eq__(self, other):
|
|
if isinstance(other, PackageView):
|
|
return self.model == other.model
|