diff --git a/rowers/management/commands/getblogposts.py b/rowers/management/commands/getblogposts.py new file mode 100644 index 00000000..35dca13a --- /dev/null +++ b/rowers/management/commands/getblogposts.py @@ -0,0 +1,49 @@ +#!/srv/venv/bin/python + +import sys +import os + +import requests +import datetime +import arrow + +PY3K = sys.version_info >= (3,0) + +from django.core.management.base import BaseCommand +from rowers.models import BlogPost + +class Command(BaseCommand): + def handle(self, *args, **options): + blogs_json = [] + try: + response = requests.get( + 'https://analytics.rowsandall.com/wp-json/wp/v2/posts?per_page=3') + if response.status_code == 200: + blogs_json = response.json() + else: + blogs_json = [] + except ConnectionError: + pass + + if blogs_json: + result = BlogPost.objects.all().delete() + + for postdata in blogs_json[0:3]: + title = postdata['title']['rendered'] + link = postdata['link'] + datetime = postdata['date'] + datetime = arrow.get(datetime).datetime + date = datetime.date() + + + blogpost = BlogPost( + link=link, + date=date, + title=title + ) + + blogpost.save() + + self.stdout.write(self.style.SUCCESS( + 'Successfully processed blog posts')) + diff --git a/rowers/models.py b/rowers/models.py index 0c69aecc..666671ef 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -3707,3 +3707,7 @@ class PlannedSessionCommentForm(ModelForm): } +class BlogPost(models.Model): + title = models.TextField(max_length=300) + link = models.TextField(max_length=300) + date = models.DateField() diff --git a/rowers/views/statements.py b/rowers/views/statements.py index ca7674ac..85df6cb6 100644 --- a/rowers/views/statements.py +++ b/rowers/views/statements.py @@ -103,7 +103,7 @@ from rowers.models import ( Team,TeamForm,TeamInviteForm,TeamInvite,TeamRequest, WorkoutComment,WorkoutCommentForm,RowerExportForm, CalcAgePerformance, - PowerTimeFitnessMetric, + PowerTimeFitnessMetric,BlogPost, PlannedSessionForm, PlannedSessionFormSmall,GeoCourseEditForm,VirtualRace, VirtualRaceForm,VirtualRaceResultForm,RowerImportExportForm, @@ -801,8 +801,23 @@ def get_thumbnails(request,id): return JSONResponse(charts) - def get_blog_posts(request): + blogposts = BlogPost.objects.all().order_by("-date") + + jsondata = [] + + if blogposts: + for blogpost in blogposts[0:3]: + thedict = { + 'title':blogpost.title, + 'link':blogpost.link, + } + + jsondata.append(thedict) + + return JSONResponse(jsondata) + +def get_blog_posts_old(request): try: response = requests.get( 'https://analytics.rowsandall.com/wp-json/wp/v2/posts?per_page=3')