Source code for star_wars_explorer.models

# -*- 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)