Private
Public Access
1
0

messages view

This commit is contained in:
2023-11-01 11:22:14 +01:00
parent ec769ecef4
commit 6f1f426c69
8 changed files with 54 additions and 2 deletions

View File

@@ -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)

View File

@@ -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

View File

@@ -0,0 +1 @@
sander@rowsandall-2.6250:1697974899

View File

@@ -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>&nbsp;Messages
</a>
</li>
<li id="manage-prefs-simple">
<a href="/rowers/me/prefs/">
<i class="fas fa-sliders-v-square fa-fw"></i>&nbsp;Threshold

View 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 %}

View File

@@ -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/?/$',

View File

@@ -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,

View File

@@ -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()