messages view
This commit is contained in:
@@ -8,7 +8,7 @@ from .models import (
|
||||
WorkoutComment, C2WorldClassAgePerformance, PlannedSession,
|
||||
GeoCourse, GeoPolygon, GeoPoint, VirtualRace, VirtualRaceResult,
|
||||
PaidPlan, IndoorVirtualRaceResult, ShareKey,
|
||||
CourseStandard, StandardCollection, InstantPlan,
|
||||
CourseStandard, StandardCollection, InstantPlan, UserMessage
|
||||
)
|
||||
|
||||
# Register your models here so you can use them in the Admin module
|
||||
@@ -170,6 +170,9 @@ class CourseStandardAdmin(admin.ModelAdmin):
|
||||
class InstantPlanAdmin(admin.ModelAdmin):
|
||||
list_display = ('name','duration','price')
|
||||
|
||||
class UserMessageAdmin(admin.ModelAdmin):
|
||||
list_display = ('receiver','datetime','subject')
|
||||
|
||||
admin.site.unregister(User)
|
||||
admin.site.register(User, UserAdmin)
|
||||
admin.site.register(Workout, WorkoutAdmin)
|
||||
@@ -192,3 +195,4 @@ admin.site.register(ShareKey, ShareKeyAdmin)
|
||||
admin.site.register(CourseStandard, CourseStandardAdmin)
|
||||
admin.site.register(StandardCollection, StandardCollectionAdmin)
|
||||
admin.site.register(InstantPlan, InstantPlanAdmin)
|
||||
admin.site.register(UserMessage, UserMessageAdmin)
|
||||
|
||||
@@ -1247,6 +1247,14 @@ class UserMessage(models.Model):
|
||||
isread = models.BooleanField(default=False)
|
||||
text = models.CharField(max_length=1000)
|
||||
subject = models.CharField(max_length=100,default='Message')
|
||||
|
||||
def __str__(self):
|
||||
return '{r1} {r2} {d} {subject}'.format(
|
||||
r1 = self.receiver.user.first_name,
|
||||
r2 = self.receiver.user.last_name,
|
||||
d = self.datetime,
|
||||
subject = self.subject
|
||||
)
|
||||
|
||||
# requestor is user
|
||||
|
||||
|
||||
1
rowers/templates/.#analysis.html
Symbolic link
1
rowers/templates/.#analysis.html
Symbolic link
@@ -0,0 +1 @@
|
||||
sander@rowsandall-2.6250:1697974899
|
||||
@@ -2,6 +2,11 @@
|
||||
{% load rowerfilters %}
|
||||
<h1><a href="/rowers/me/edit/">Profile</a></h1>
|
||||
<ul class="cd-accordion-menu animated">
|
||||
<li id="manage-messgs">
|
||||
<a href="/rowers/me/messages/">
|
||||
<i class="fas fa-envelope fa-fw"></i> Messages
|
||||
</a>
|
||||
</li>
|
||||
<li id="manage-prefs-simple">
|
||||
<a href="/rowers/me/prefs/">
|
||||
<i class="fas fa-sliders-v-square fa-fw"></i> Threshold
|
||||
|
||||
24
rowers/templates/user_messages.html
Normal file
24
rowers/templates/user_messages.html
Normal file
@@ -0,0 +1,24 @@
|
||||
{% extends "newbase.html" %}
|
||||
|
||||
{% block title %}Messages{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
<h1>{{ rower.user.first_name }}'s Messages</h1>
|
||||
|
||||
<ul class="main-content">
|
||||
{% for usermessage in usermessages %}
|
||||
<li class="rounder">
|
||||
<h2>{{ usermessage.subject }}</h2>
|
||||
<p><em>{{ usermessage.datetime }}</em></p>
|
||||
<p>
|
||||
{{ usermessage.text }}
|
||||
</p>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block sidebar %}
|
||||
{% include 'menu_profile.html' %}
|
||||
{% endblock %}
|
||||
@@ -650,6 +650,7 @@ urlpatterns = [
|
||||
re_path(r'^alerts/(?P<id>\d+)/report/$',
|
||||
views.alert_report_view, name='alert_report_view'),
|
||||
re_path(r'^me/deactivate/$', views.deactivate_user, name='deactivate_user'),
|
||||
re_path(r'^me/messages/$', views.user_messages, name='user_messages'),
|
||||
re_path(r'^me/delete/$', views.remove_user, name='remove_user'),
|
||||
re_path(r'^survey/$', views.survey, name='survey'),
|
||||
re_path(r'^me/gdpr-optin-confirm/?/$',
|
||||
|
||||
@@ -158,7 +158,8 @@ from rowers.models import (
|
||||
VideoAnalysis, ShareKey,
|
||||
StandardCollection, CourseStandard,
|
||||
VirtualRaceFollower, TombStone, InstantPlan,
|
||||
PlannedSessionStep,InStrokeAnalysis, ForceCurveAnalysis, SyncRecord
|
||||
PlannedSessionStep,InStrokeAnalysis, ForceCurveAnalysis, SyncRecord,
|
||||
UserMessage,
|
||||
)
|
||||
from rowers.models import ( RowerPowerForm, RowerHRZonesForm, SimpleRowerPowerForm,
|
||||
RowerForm, RowerCPForm, GraphImage, AdvancedWorkoutForm,
|
||||
|
||||
@@ -248,6 +248,14 @@ def start_plantrial_view(request):
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
@login_required()
|
||||
@permission_required('rower.is_coach', fn=get_user_by_userid, raise_exception=True)
|
||||
def user_messages(request,userid=0):
|
||||
r = getrequestrowercoachee(request, userid=userid, notpermanent=True)
|
||||
usermessages = UserMessage.objects.filter(receiver=r).order_by('-datetime')
|
||||
return render(request,'user_messages.html',
|
||||
{'usermessages':usermessages,
|
||||
'rower':r})
|
||||
|
||||
# Page where user can manage his favorite charts
|
||||
@login_required()
|
||||
|
||||
Reference in New Issue
Block a user