|
@@ -39,20 +39,13 @@ class VideoGameLogData(BaseLogData, LongPlayLogData, WithPeopleLogData):
|
|
|
|
|
|
@classmethod
|
|
|
def override_fields(cls) -> dict:
|
|
|
- fields = {}
|
|
|
- for base in cls.mro()[1:]:
|
|
|
- if hasattr(base, "override_fields"):
|
|
|
- base_fields = base.override_fields()
|
|
|
- fields.update(base_fields)
|
|
|
- custom_fields = {
|
|
|
+ return {
|
|
|
"platform_id": forms.ModelChoiceField(
|
|
|
queryset=VideoGamePlatform.objects.all(),
|
|
|
required=False,
|
|
|
widget=forms.Select(),
|
|
|
)
|
|
|
}
|
|
|
- fields.update(custom_fields)
|
|
|
- return fields
|
|
|
|
|
|
|
|
|
class VideoGamePlatform(TimeStampedModel):
|
|
@@ -70,19 +63,6 @@ class VideoGamePlatform(TimeStampedModel):
|
|
|
)
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
-class VideoGameLogData(BaseLogData, LongPlayLogData, WithPeopleLogData):
|
|
|
- platform_id: Optional[int] = None
|
|
|
- emulated: Optional[bool] = False
|
|
|
- emulator: Optional[str] = None
|
|
|
-
|
|
|
- @property
|
|
|
- def platform(self) -> VideoGamePlatform | None:
|
|
|
- if not self.platform_id:
|
|
|
- return
|
|
|
- return VideoGamePlatform.objects.filter(id=self.platform_id).first()
|
|
|
-
|
|
|
-
|
|
|
class VideoGameCollection(TimeStampedModel):
|
|
|
name = models.CharField(max_length=255)
|
|
|
uuid = models.UUIDField(default=uuid4, editable=False, **BNULL)
|