Merge branch 'bugfix/dates' into develop
This commit is contained in:
56
rowers/management/commands/getemail_list.py
Normal file
56
rowers/management/commands/getemail_list.py
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
#!/srv/venv/bin/python
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
# If you find a solution that does not need the two paths, please comment!
|
||||||
|
sys.path.append('$path_to_root_of_project$')
|
||||||
|
sys.path.append('$path_to_root_of_project$/$project_name$')
|
||||||
|
|
||||||
|
os.environ['DJANGO_SETTINGS_MODULE'] = '$project_name$.settings'
|
||||||
|
|
||||||
|
from django.core.management.base import BaseCommand, CommandError
|
||||||
|
from django.conf import settings
|
||||||
|
from django.core.mail import send_mail, BadHeaderError,EmailMessage
|
||||||
|
|
||||||
|
import datetime
|
||||||
|
from rowers.models import *
|
||||||
|
from rowsandall_app.settings import BASE_DIR
|
||||||
|
|
||||||
|
import pandas as pd
|
||||||
|
|
||||||
|
def getemails():
|
||||||
|
rs = Rower.objects.all()
|
||||||
|
firstnames = [r.user.first_name for r in rs]
|
||||||
|
lastnames = [r.user.last_name for r in rs]
|
||||||
|
emails = [r.user.email for r in rs]
|
||||||
|
is_actives = [r.user.is_active for r in rs]
|
||||||
|
df = pd.DataFrame({
|
||||||
|
'first_name':firstnames,
|
||||||
|
'last_name':lastnames,
|
||||||
|
'email':emails,
|
||||||
|
'is_active':is_actives
|
||||||
|
})
|
||||||
|
|
||||||
|
return df
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class Command(BaseCommand):
|
||||||
|
def handle(self, *args, **options):
|
||||||
|
email_list = getemails()
|
||||||
|
email_list.to_csv('email_list.csv')
|
||||||
|
|
||||||
|
fullemail = 'roosendaalsander@gmail.com'
|
||||||
|
subject = "Rowsandall users list"
|
||||||
|
message = "Dear Sander,\n\n"
|
||||||
|
message += "Best Regards, the Rowsandall Team"
|
||||||
|
message += "Users list attached \n\n"
|
||||||
|
|
||||||
|
email = EmailMessage(subject, message,
|
||||||
|
'Rowsandall <info@rowsandall.com>',
|
||||||
|
[fullemail])
|
||||||
|
|
||||||
|
email.attach_file('email_list.csv')
|
||||||
|
|
||||||
|
os.remove('email_list.csv')
|
||||||
|
|
||||||
|
res = email.send()
|
||||||
@@ -4194,10 +4194,23 @@ def otwrankings_view(request,theuser=0,
|
|||||||
startdate = enddate-datetime.timedelta(days=int(deltadays))
|
startdate = enddate-datetime.timedelta(days=int(deltadays))
|
||||||
|
|
||||||
if startdatestring != "":
|
if startdatestring != "":
|
||||||
startdate = iso8601.parse_date(startdatestring)
|
try:
|
||||||
|
startdate = iso8601.parse_date(startdatestring)
|
||||||
|
except ParseError:
|
||||||
|
pass
|
||||||
|
|
||||||
if enddatestring != "":
|
if enddatestring != "":
|
||||||
enddate = iso8601.parse_date(enddatestring)
|
try:
|
||||||
|
enddate = iso8601.parse_date(enddatestring)
|
||||||
|
except ParseError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
if 'startdate' in request.session:
|
||||||
|
startdate = iso8601.parse_date(request.session['startdate'])
|
||||||
|
|
||||||
|
|
||||||
|
if 'enddate' in request.session:
|
||||||
|
enddate = iso8601.parse_date(request.session['enddate'])
|
||||||
|
|
||||||
if enddate < startdate:
|
if enddate < startdate:
|
||||||
s = enddate
|
s = enddate
|
||||||
@@ -4243,7 +4256,10 @@ def otwrankings_view(request,theuser=0,
|
|||||||
'enddate': enddate,
|
'enddate': enddate,
|
||||||
})
|
})
|
||||||
else:
|
else:
|
||||||
dateform = DateRangeForm()
|
dateform = DateRangeForm(initial={
|
||||||
|
'startdate': startdate,
|
||||||
|
'enddate': enddate,
|
||||||
|
})
|
||||||
deltaform = DeltaDaysForm()
|
deltaform = DeltaDaysForm()
|
||||||
|
|
||||||
else:
|
else:
|
||||||
@@ -4418,6 +4434,11 @@ def otwrankings_view(request,theuser=0,
|
|||||||
|
|
||||||
del form.fields["pieceunit"]
|
del form.fields["pieceunit"]
|
||||||
|
|
||||||
|
startdatestring = startdate.strftime('%Y-%m-%d')
|
||||||
|
enddatestring = enddate.strftime('%Y-%m-%d')
|
||||||
|
request.session['startdate'] = startdatestring
|
||||||
|
request.session['enddate'] = enddatestring
|
||||||
|
|
||||||
messages.error(request,message)
|
messages.error(request,message)
|
||||||
return render(request, 'otwrankings.html',
|
return render(request, 'otwrankings.html',
|
||||||
{'rankingworkouts':theworkouts,
|
{'rankingworkouts':theworkouts,
|
||||||
@@ -4435,6 +4456,7 @@ def otwrankings_view(request,theuser=0,
|
|||||||
'teams':get_my_teams(request.user),
|
'teams':get_my_teams(request.user),
|
||||||
'workouttype':'water',
|
'workouttype':'water',
|
||||||
})
|
})
|
||||||
|
|
||||||
# Show ranking distances including predicted paces
|
# Show ranking distances including predicted paces
|
||||||
@user_passes_test(ispromember,login_url="/",redirect_field_name=None)
|
@user_passes_test(ispromember,login_url="/",redirect_field_name=None)
|
||||||
def oterankings_view(request,theuser=0,
|
def oterankings_view(request,theuser=0,
|
||||||
@@ -4448,10 +4470,23 @@ def oterankings_view(request,theuser=0,
|
|||||||
startdate = enddate-datetime.timedelta(days=int(deltadays))
|
startdate = enddate-datetime.timedelta(days=int(deltadays))
|
||||||
|
|
||||||
if startdatestring != "":
|
if startdatestring != "":
|
||||||
startdate = iso8601.parse_date(startdatestring)
|
try:
|
||||||
|
startdate = iso8601.parse_date(startdatestring)
|
||||||
|
except ParseError:
|
||||||
|
pass
|
||||||
|
|
||||||
if enddatestring != "":
|
if enddatestring != "":
|
||||||
enddate = iso8601.parse_date(enddatestring)
|
try:
|
||||||
|
enddate = iso8601.parse_date(enddatestring)
|
||||||
|
except ParseError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
if 'startdate' in request.session:
|
||||||
|
startdate = iso8601.parse_date(request.session['startdate'])
|
||||||
|
|
||||||
|
|
||||||
|
if 'enddate' in request.session:
|
||||||
|
enddate = iso8601.parse_date(request.session['enddate'])
|
||||||
|
|
||||||
if enddate < startdate:
|
if enddate < startdate:
|
||||||
s = enddate
|
s = enddate
|
||||||
@@ -4497,7 +4532,10 @@ def oterankings_view(request,theuser=0,
|
|||||||
'enddate': enddate,
|
'enddate': enddate,
|
||||||
})
|
})
|
||||||
else:
|
else:
|
||||||
dateform = DateRangeForm()
|
dateform = DateRangeForm(initial={
|
||||||
|
'startdate': startdate,
|
||||||
|
'enddate': enddate,
|
||||||
|
})
|
||||||
deltaform = DeltaDaysForm()
|
deltaform = DeltaDaysForm()
|
||||||
|
|
||||||
else:
|
else:
|
||||||
@@ -4751,6 +4789,13 @@ def oterankings_view(request,theuser=0,
|
|||||||
|
|
||||||
# del form.fields["pieceunit"]
|
# del form.fields["pieceunit"]
|
||||||
|
|
||||||
|
startdatestring = startdate.strftime('%Y-%m-%d')
|
||||||
|
enddatestring = enddate.strftime('%Y-%m-%d')
|
||||||
|
request.session['startdate'] = startdatestring
|
||||||
|
request.session['enddate'] = enddatestring
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
messages.error(request,message)
|
messages.error(request,message)
|
||||||
return render(request, 'oterankings.html',
|
return render(request, 'oterankings.html',
|
||||||
{'rankingworkouts':theworkouts,
|
{'rankingworkouts':theworkouts,
|
||||||
|
|||||||
Reference in New Issue
Block a user