diff --git a/logos/logofornk.gif b/logos/logofornk.gif new file mode 100644 index 00000000..6e03addf Binary files /dev/null and b/logos/logofornk.gif differ diff --git a/logos/logofornk.jpg b/logos/logofornk.jpg new file mode 100644 index 00000000..5b2e864e Binary files /dev/null and b/logos/logofornk.jpg differ diff --git a/logos/logofornk.png b/logos/logofornk.png new file mode 100644 index 00000000..01d4c64f Binary files /dev/null and b/logos/logofornk.png differ diff --git a/logos/logofornk.xcf b/logos/logofornk.xcf new file mode 100644 index 00000000..e9a1041f Binary files /dev/null and b/logos/logofornk.xcf differ diff --git a/rowers/admin.py b/rowers/admin.py index ae1d32f4..0a5eaa14 100644 --- a/rowers/admin.py +++ b/rowers/admin.py @@ -2,7 +2,7 @@ from django.contrib import admin from django.contrib.auth.admin import UserAdmin from django.contrib.auth.models import User -from .models import Rower, Workout,GraphImage,FavoriteChart +from .models import Rower, Workout,GraphImage,FavoriteChart,SiteAnnouncement # Register your models here. @@ -19,9 +19,13 @@ class WorkoutAdmin(admin.ModelAdmin): class FavoriteChartAdmin(admin.ModelAdmin): list_display = ('user','xparam','yparam1','yparam2','plottype','workouttype','reststrokes') + +class SiteAnnouncementAdmin(admin.ModelAdmin): + list_display = ('announcement','created','modified','expires') admin.site.unregister(User) admin.site.register(User,UserAdmin) admin.site.register(Workout,WorkoutAdmin) admin.site.register(GraphImage) admin.site.register(FavoriteChart,FavoriteChartAdmin) +admin.site.register(SiteAnnouncement,SiteAnnouncementAdmin) diff --git a/rowers/models.py b/rowers/models.py index dedacd62..87585c37 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -14,6 +14,8 @@ from django.conf import settings from sqlalchemy import create_engine import sqlalchemy as sa from sqlite3 import OperationalError +from django.utils import timezone +import datetime user = settings.DATABASES['default']['USER'] password = settings.DATABASES['default']['PASSWORD'] @@ -499,3 +501,16 @@ class RowerForm(ModelForm): raise forms.ValidationError("TR should be lower than AN") if an>=max: raise forms.ValidationError("AN should be lower than Max") + +class SiteAnnouncement(models.Model): + created = models.DateField(default=timezone.now) + announcement = models.TextField(max_length=140) + expires = models.DateField(default=timezone.now) + modified = models.DateField(default=timezone.now) + + 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() + return super(SiteAnnouncement,self).save(*args, **kwargs) diff --git a/rowers/templates/list_workouts.html b/rowers/templates/list_workouts.html index aaf47bdf..f26799fc 100644 --- a/rowers/templates/list_workouts.html +++ b/rowers/templates/list_workouts.html @@ -22,36 +22,37 @@ - -
| Date | -Time | -Name | -Type | -Distance | -Duration | -Avg HR | -Max HR | -Delete | -Export | -|||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ workout.date }} | -{{ workout.starttime }} | -- {% if user.rower.rowerplan == 'pro' %} - {{ workout.name }} | - {% else %} - {{ workout.name }} -{% endif %} +
| Date | +Time | +Name | +Type | +Distance | +Duration | +Avg HR | +Max HR | +Delete | +Export | +
|---|---|---|---|---|---|---|---|---|---|
| {{ workout.date }} | +{{ workout.starttime }} | ++ {% if user.rower.rowerplan == 'pro' %} + {{ workout.name }} | + {% else %} + {{ workout.name }} + {% endif %}{{ workout.workouttype }} | {{ workout.distance }}m | {{ workout.duration |durationprint:"%H:%M:%S.%f" }} | @@ -71,6 +72,17 @@