diff --git a/rowers/admin.py b/rowers/admin.py index 0a5eaa14..4f1f9aee 100644 --- a/rowers/admin.py +++ b/rowers/admin.py @@ -21,7 +21,7 @@ class FavoriteChartAdmin(admin.ModelAdmin): list_display = ('user','xparam','yparam1','yparam2','plottype','workouttype','reststrokes') class SiteAnnouncementAdmin(admin.ModelAdmin): - list_display = ('announcement','created','modified','expires') + list_display = ('announcement','created','modified','expires','dotweet') admin.site.unregister(User) admin.site.register(User,UserAdmin) diff --git a/rowers/models.py b/rowers/models.py index 37177144..878929b4 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -9,6 +9,7 @@ from django.forms.widgets import SplitDateTimeWidget from django.forms.formsets import BaseFormSet from datetimewidget.widgets import DateTimeWidget import os +import twitter from django.conf import settings from sqlalchemy import create_engine @@ -17,6 +18,18 @@ from sqlite3 import OperationalError from django.utils import timezone import datetime +from rowsandall_app.settings import ( + TWEET_ACCESS_TOKEN_KEY, + TWEET_ACCESS_TOKEN_SECRET, + TWEET_CONSUMER_KEY, + TWEET_CONSUMER_SECRET, + ) + +tweetapi = twitter.Api(consumer_key=TWEET_CONSUMER_KEY, + consumer_secret=TWEET_CONSUMER_SECRET, + access_token_key=TWEET_ACCESS_TOKEN_KEY, + access_token_secret=TWEET_ACCESS_TOKEN_SECRET) + user = settings.DATABASES['default']['USER'] password = settings.DATABASES['default']['PASSWORD'] database_name = settings.DATABASES['default']['NAME'] @@ -39,7 +52,6 @@ if settings.DEBUG or user=='': class Team(models.Model): name = models.CharField(max_length=150) notes = models.CharField(blank=True,max_length=200) - class Rower(models.Model): weightcategories = ( @@ -512,10 +524,13 @@ class SiteAnnouncement(models.Model): announcement = models.TextField(max_length=140) expires = models.DateField(default=timezone.now) modified = models.DateField(default=timezone.now) + dotweet = models.BooleanField(default=False) def save(self, *args, **kwargs): if not self.id: self.created = timezone.now() self.expires = timezone.now()+datetime.timedelta(days=10) self.modified = timezone.now() + if self.dotweet: + status = tweetapi.PostUpdate(self.announcement) return super(SiteAnnouncement,self).save(*args, **kwargs) diff --git a/rowers/views.py b/rowers/views.py index c0d4b14c..2db45afa 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -37,6 +37,7 @@ import ownapistuff from ownapistuff import TEST_CLIENT_ID, TEST_CLIENT_SECRET, TEST_REDIRECT_URI from rowsandall_app.settings import C2_CLIENT_ID, C2_REDIRECT_URI, C2_CLIENT_SECRET, STRAVA_CLIENT_ID, STRAVA_REDIRECT_URI, STRAVA_CLIENT_SECRET from rowsandall_app.settings import SPORTTRACKS_CLIENT_ID, SPORTTRACKS_REDIRECT_URI, SPORTTRACKS_CLIENT_SECRET + import requests import json from rest_framework.renderers import JSONRenderer @@ -1219,6 +1220,9 @@ def test_reverse_view(request): return imports_view(request,successmessage=successmessage) +@login_required() +def rower_process_twittercallback(request): + return "dummy" @login_required() def rower_process_stravacallback(request): diff --git a/rowsandall_app/settings.py b/rowsandall_app/settings.py index 9063f62b..ef1aa01d 100644 --- a/rowsandall_app/settings.py +++ b/rowsandall_app/settings.py @@ -284,3 +284,8 @@ REST_FRAMEWORK = { CLICKY_SITE_ID = '101011008' +TWEET_ACCESS_TOKEN_KEY = "792366179780268032-tlk7QofNsx7GlNzefmHUzmxcpTITzyO" +TWEET_ACCESS_TOKEN_SECRET = "sOhEZ1GyQ9ROzgmAKoNfQIjWaOKMMSgP03EIJuuIvLGRc" +TWEET_CONSUMER_KEY = "gtXQGCMN98dnF6eut2F5xtDET" +TWEET_CONSUMER_SECRET = "rS78fNy1E075bssAoZl45QJN27X7XoYhnhSFgvqpJ5V7d5R8Wp" + diff --git a/rowsandall_app/urls.py b/rowsandall_app/urls.py index 44abff93..6db8318d 100644 --- a/rowsandall_app/urls.py +++ b/rowsandall_app/urls.py @@ -52,6 +52,7 @@ urlpatterns = [ url(r'^call\_back',rowersviews.rower_process_callback), url(r'^stravacall\_back',rowersviews.rower_process_stravacallback), url(r'^sporttracks\_callback',rowersviews.rower_process_sporttrackscallback), + url(r'^twitter\_callback',rowersviews.rower_process_twittercallback), url(r'^interactiveplot',interactiveplot), url(r'^i18n/', include('django.conf.urls.i18n')), ]