Skip to content
Snippets Groups Projects
Commit e4d9fdfa authored by jarmil's avatar jarmil
Browse files

Napojeni na medailonky

parent 92379087
No related branches found
No related tags found
2 merge requests!173Release,!134Weby pro MS
# Generated by Django 3.1.1 on 2020-10-20 03:14
import django.core.validators
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("shared", "0010_article_author"),
]
operations = [
migrations.AddField(
model_name="personpage",
name="profile_id",
field=models.IntegerField(
blank=True,
default=0,
validators=[
django.core.validators.MinValueValidator(0),
django.core.validators.MaxValueValidator(2),
],
verbose_name="Číslo medailonku (0..2) z lide.pirati.cz",
),
),
]
......@@ -2,6 +2,7 @@ import random
import requests
import requests_cache
from django.core.validators import MaxValueValidator, MinValueValidator
from django.db import models
from modelcluster.contrib.taggit import ClusterTaggableManager
from modelcluster.fields import ParentalKey
......@@ -81,11 +82,18 @@ class PersonPage(SharedSubpageMixin, MetadataPageMixin, Page):
# ve formatu iapi: https://iapi.pirati.cz/v1/user?username=john.doe
pirate_id = models.TextField("Pirate ID osoby", blank=False)
profile_id = models.IntegerField(
"Číslo medailonku (0..2) z lide.pirati.cz",
blank=True,
default=0,
validators=[MinValueValidator(0), MaxValueValidator(2)],
)
perex = models.TextField("Perex osoby", blank=True)
content_panels = Page.content_panels + [
FieldPanel("pirate_id"),
FieldPanel("profile_id"),
FieldPanel("perex"),
]
......@@ -95,33 +103,38 @@ class PersonPage(SharedSubpageMixin, MetadataPageMixin, Page):
"https://iapi.pirati.cz/v1/user?username=%s" % self.pirate_id
).json()
def _graph(self):
""" Vrati data o osobe z graph.pirati.cz (forum) jako json. Cached via requests_cache """
return requests.get("https://graph.pirati.cz/user/%s" % self.pirate_id).json()
@property
def name(self):
return self._iapi().get("displayname")
@property
def email(self):
return self._graph().get("email")
try:
return self._iapi()["profiles"][self.profile_id]["email"]
except (IndexError, KeyError):
return None
@property
def phone(self):
return None # TODO
try:
return self._iapi()["profiles"][self.profile_id]["phone"]
except (IndexError, KeyError):
return None
@property
def longtext(self): # medailonek
return "Lorem ipsum dolor amet" # TODO
return "" # TODO
@property
def portrait(self): # profilova fotka
return "https://lide.pirati.cz/media/person/61/profile/1312/2.jpg" # TODO
try:
return self._iapi()["profiles"][self.profile_id]["photo"]
except (IndexError, KeyError):
return None
@property
def facebook(self):
return "https://www.facebook.com/ales.fuksa.9" # TODO
return None # TODO
class Meta:
verbose_name = "Člověk" # to zni hrde
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment