# -*- coding: utf-8 -*-
from dataclasses import asdict
from pathlib import Path
from django.conf import settings
from django.db import models
from django.utils.translation import gettext_lazy as _
from swdata import SWPeople
from django.conf import settings
[docs]class PeopleReport(models.Model):
name = models.CharField(max_length=150, verbose_name=_('name'))
path = models.CharField(max_length=150, verbose_name=_('path'))
when_saved = models.DateTimeField(verbose_name=_('created at'))
class Meta:
default_related_name = "people_report"
verbose_name = _('people report')
verbose_name_plural = _('people reports')
[docs] @classmethod
def create_new_report(cls):
report = SWPeople().create_collection(directory=settings.STAR_WARS_EXPLORER_REPORTS_DIR)
return cls.objects.create(
name=Path(report.path).stem,
path=report.path,
when_saved=report.when_saved,
)
[docs] def exists(self):
return Path(self.path).exists()
[docs] def data(self, start: 0, stop=10):
return SWPeople().get_people_data(
path=self.path,
start=start,
stop=stop,
)
[docs] def distinct(self, columns):
return SWPeople().get_distinct(self.path, *columns)