@ -19,251 +19,251 @@ from .models import User, Contest, Frequency, Reference, QSO, ShadowCall
from . forms import UpdateRefForm , QSOForm , QSOFormWithTime , CustomUserCreationForm , ShadowCallAddForm , UpdateCategoryForm
def index ( request ) :
if request . user . is_authenticated ( ) :
return HttpResponseRedirect ( reverse ( " contest:index " ) )
if request . user . is_authenticated ( ) :
return HttpResponseRedirect ( reverse ( " contest:index " ) )
return render ( request , " index.html " , { " loginForm " : AuthenticationForm ( ) } )
return render ( request , " index.html " , { " loginForm " : AuthenticationForm ( ) } )
@login_required
def contestIndex ( request ) :
qsoform = QSOForm ( request . user )
contest = Contest . objects . get ( id = 1 )
qrgs = Frequency . objects . filter ( band__contest = contest ) . order_by ( " channel " )
qsoform = QSOForm ( request . user )
contest = Contest . objects . get ( id = 1 )
qrgs = Frequency . objects . filter ( band__contest = contest ) . order_by ( " channel " )
return render ( request , ' contest/index.html ' , { " qsoform " : qsoform , " contest " : contest , " qrgs " : qrgs } )
return render ( request , ' contest/index.html ' , { " qsoform " : qsoform , " contest " : contest , " qrgs " : qrgs } )
@login_required
def log ( request ) :
if not request . user . ref :
return HttpResponseRedirect ( reverse ( " contest:index " ) )
if not request . user . ref :
return HttpResponseRedirect ( reverse ( " contest:index " ) )
form = None
form = None
qsos = QSO . objects . filter ( owner = request . user ) . order_by ( " -ownNo " )
qsos = QSO . objects . filter ( owner = request . user ) . order_by ( " -ownNo " )
if request . method == ' POST ' :
form = QSOForm ( user = request . user , data = request . POST )
form . helper . form_tag = False
if form . is_valid ( ) :
l = form . instance
if not l . time :
# set current time
l . time = datetime . datetime . now ( )
if request . method == ' POST ' :
form = QSOForm ( user = request . user , data = request . POST )
form . helper . form_tag = False
if form . is_valid ( ) :
l = form . instance
if not l . time :
# set current time
l . time = datetime . datetime . now ( )
l . owner = request . user
l . save ( )
l . owner = request . user
l . save ( )
messages . success ( request , " QSO saved! " )
messages . success ( request , " QSO saved! " )
return HttpResponseRedirect ( reverse ( " contest:log " ) )
else :
data = {
" ownNo " : qsos [ 0 ] . ownNo + 1 if len ( qsos ) > 0 else 1 ,
" reportRX " : " 59 " ,
" reportTX " : " 59 " ,
}
if qsos . count ( ) > 0 :
data [ " band " ] = qsos [ 0 ] . band
return HttpResponseRedirect ( reverse ( " contest:log " ) )
else :
data = {
" ownNo " : qsos [ 0 ] . ownNo + 1 if len ( qsos ) > 0 else 1 ,
" reportRX " : " 59 " ,
" reportTX " : " 59 " ,
}
if qsos . count ( ) > 0 :
data [ " band " ] = qsos [ 0 ] . band
form = QSOForm ( request . user , initial = data )
form . helper . form_tag = False
form = QSOForm ( request . user , initial = data )
form . helper . form_tag = False
return render ( request , ' contest/log.html ' , { ' form ' : form , ' qsos ' : qsos } )
return render ( request , ' contest/log.html ' , { ' form ' : form , ' qsos ' : qsos } )
@login_required
def logEdit ( request , qsoid ) :
if not request . user . ref :
return HttpResponseRedirect ( reverse ( " contest:index " ) )
if not request . user . ref :
return HttpResponseRedirect ( reverse ( " contest:index " ) )
qso = QSO . objects . get ( id = qsoid , owner = request . user )
form = None
qso = QSO . objects . get ( id = qsoid , owner = request . user )
form = None
if request . method == ' POST ' :
form = QSOFormWithTime ( user = request . user , instance = qso , data = request . POST )
if form . is_valid ( ) :
form . instance . save ( )
if request . method == ' POST ' :
form = QSOFormWithTime ( user = request . user , instance = qso , data = request . POST )
if form . is_valid ( ) :
form . instance . save ( )
messages . info ( request , " QSO has been edited " )
return HttpResponseRedirect ( reverse ( " contest:log " ) )
else :
form = QSOFormWithTime ( user = request . user , instance = qso )
messages . info ( request , " QSO has been edited " )
return HttpResponseRedirect ( reverse ( " contest:log " ) )
else :
form = QSOFormWithTime ( user = request . user , instance = qso )
return render ( request , ' contest/logEdit.html ' , { ' form ' : form , " qso " : qso } )
return render ( request , ' contest/logEdit.html ' , { ' form ' : form , " qso " : qso } )
def logDelete ( request , qsoid ) :
if not request . user . ref :
return HttpResponseRedirect ( reverse ( " contest:index " ) )
if not request . user . ref :
return HttpResponseRedirect ( reverse ( " contest:index " ) )
qso = QSO . objects . get ( id = qsoid , owner = request . user )
qso = QSO . objects . get ( id = qsoid , owner = request . user )
if request . method == ' POST ' :
if " delete " in request . POST :
if request . POST [ " delete " ] . lower ( ) == " yes " :
qso . delete ( )
messages . info ( request , " QSO has been deleted " )
return HttpResponseRedirect ( reverse ( " contest:log " ) )
elif request . POST [ " delete " ] . lower ( ) == " no " :
return HttpResponseRedirect ( reverse ( " contest:log " ) )
if request . method == ' POST ' :
if " delete " in request . POST :
if request . POST [ " delete " ] . lower ( ) == " yes " :
qso . delete ( )
messages . info ( request , " QSO has been deleted " )
return HttpResponseRedirect ( reverse ( " contest:log " ) )
elif request . POST [ " delete " ] . lower ( ) == " no " :
return HttpResponseRedirect ( reverse ( " contest:log " ) )
return render ( request , ' contest/logDelete.html ' , { " qso " : qso } )
return render ( request , ' contest/logDelete.html ' , { " qso " : qso } )
@staff_member_required
def registerRefs ( request ) :
allUser = User . objects . all ( )
shadows = ShadowCall . objects . all ( )
allUser = User . objects . all ( )
shadows = ShadowCall . objects . all ( )
qsos = QSO . objects . all ( ) . order_by ( " -time " ) [ 0 : 10 ]
qsos = QSO . objects . all ( ) . order_by ( " -time " ) [ 0 : 10 ]
shadowForm = None
if request . method == ' POST ' :
shadowForm = ShadowCallAddForm ( data = request . POST )
if shadowForm . is_valid ( ) :
shadowForm . instance . save ( )
messages . success ( request , " Successfully added shadow user %s " % ( shadowForm . instance . username , ) )
return HttpResponseRedirect ( reverse ( " contest:registerRefs " ) )
else :
shadowForm = ShadowCallAddForm ( )
shadowForm = None
if request . method == ' POST ' :
shadowForm = ShadowCallAddForm ( data = request . POST )
if shadowForm . is_valid ( ) :
shadowForm . instance . save ( )
messages . success ( request , " Successfully added shadow user %s " % ( shadowForm . instance . username , ) )
return HttpResponseRedirect ( reverse ( " contest:registerRefs " ) )
else :
shadowForm = ShadowCallAddForm ( )
return render ( request , ' contest/registerRefs.html ' , { ' alluser ' : allUser , " qsos " : qsos , " shadowForm " : shadowForm , " shadows " : shadows } )
return render ( request , ' contest/registerRefs.html ' , { ' alluser ' : allUser , " qsos " : qsos , " shadowForm " : shadowForm , " shadows " : shadows } )
def getPage ( paginator , pageNo ) :
try :
return paginator . page ( pageNo )
except PageNotAnInteger :
return paginator . page ( 1 )
except EmptyPage :
return paginator . page ( paginator . num_pages )
try :
return paginator . page ( pageNo )
except PageNotAnInteger :
return paginator . page ( 1 )
except EmptyPage :
return paginator . page ( paginator . num_pages )
@staff_member_required
def recheckAllQSOs ( request ) :
if request . method == " POST " :
cnt = 0
for qso in QSO . objects . all ( ) :
if qso . checkQSOData ( ) :
print ( qso )
qso . save ( )
cnt + = 1
if request . method == " POST " :
cnt = 0
for qso in QSO . objects . all ( ) :
if qso . checkQSOData ( ) :
print ( qso )
qso . save ( )
cnt + = 1
messages . success ( request , " Allo QSO have been checked against each other ( %d QSOs modified) " % ( cnt , ) )
return HttpResponseRedirect ( reverse ( " contest:registerRefs " ) )
messages . success ( request , " Allo QSO have been checked against each other ( %d QSOs modified) " % ( cnt , ) )
return HttpResponseRedirect ( reverse ( " contest:registerRefs " ) )
return render ( request , " contest/checkAllQSOs.html " , { } )
return render ( request , " contest/checkAllQSOs.html " , { } )
@staff_member_required
def viewUserQSOs ( request , uid , page = 1 ) :
user = get_object_or_404 ( User , id = uid )
qsos = QSO . objects . filter ( owner = user ) . order_by ( " -time " )
qsoPager = Paginator ( qsos , 50 )
qsoPage = getPage ( qsoPager , request . GET . get ( ' page ' ) )
user = get_object_or_404 ( User , id = uid )
qsos = QSO . objects . filter ( owner = user ) . order_by ( " -time " )
qsoPager = Paginator ( qsos , 50 )
qsoPage = getPage ( qsoPager , request . GET . get ( ' page ' ) )
userRefs = set ( map ( lambda _x : _x [ " refStr " ] , user . qso_set . filter ( ref__isnull = False ) . values ( " ref " , " refStr " ) ) )
userRefs = set ( map ( lambda _x : _x [ " refStr " ] , user . qso_set . filter ( ref__isnull = False ) . values ( " ref " , " refStr " ) ) )
return render ( request , " contest/viewUserQSOs.html " , { ' owner ' : user , ' qsos ' : qsos , ' qsoPage ' : qsoPage , ' userRefs ' : userRefs } )
return render ( request , " contest/viewUserQSOs.html " , { ' owner ' : user , ' qsos ' : qsos , ' qsoPage ' : qsoPage , ' userRefs ' : userRefs } )
@staff_member_required
def updateRef ( request , shadow , uid ) :
user = None
form = None
if shadow :
user = get_object_or_404 ( ShadowCall , id = uid )
else :
user = get_object_or_404 ( User , id = uid )
if request . method == ' POST ' :
form = UpdateRefForm ( data = request . POST )
if form . is_valid ( ) :
ref = None
if form . cleaned_data [ " existingRef " ] :
ref = form . cleaned_data [ " existingRef " ]
else :
ref = Reference ( name = form . cleaned_data [ " newRefName " ] )
ref . save ( )
messages . info ( request , " New Ref ' %s ' created " % ref )
user . ref = ref
user . regTime = form . cleaned_data [ " regTime " ]
user . location = form . cleaned_data [ " location " ]
user . opName = form . cleaned_data [ " opName " ]
user . save ( )
messages . success ( request , " %s %s ref set to %s " % ( " (shadow) " if shadow else " " , user , ref ) )
return HttpResponseRedirect ( reverse ( " contest:registerRefs " ) )
else :
data = { }
if user . ref :
data [ " existingRef " ] = user . ref
if user . regTime :
data [ " regTime " ] = user . regTime
else :
data [ " regTime " ] = timezone . now ( )
data [ " opName " ] = user . opName
data [ " location " ] = user . location
form = UpdateRefForm ( initial = data )
return render ( request , ' contest/updateRef.html ' , { ' userobj ' : user , ' form ' : form , " shadow " : shadow } )
user = None
form = None
if shadow :
user = get_object_or_404 ( ShadowCall , id = uid )
else :
user = get_object_or_404 ( User , id = uid )
if request . method == ' POST ' :
form = UpdateRefForm ( data = request . POST )
if form . is_valid ( ) :
ref = None
if form . cleaned_data [ " existingRef " ] :
ref = form . cleaned_data [ " existingRef " ]
else :
ref = Reference ( name = form . cleaned_data [ " newRefName " ] )
ref . save ( )
messages . info ( request , " New Ref ' %s ' created " % ref )
user . ref = ref
user . regTime = form . cleaned_data [ " regTime " ]
user . location = form . cleaned_data [ " location " ]
user . opName = form . cleaned_data [ " opName " ]
user . save ( )
messages . success ( request , " %s %s ref set to %s " % ( " (shadow) " if shadow else " " , user , ref ) )
return HttpResponseRedirect ( reverse ( " contest:registerRefs " ) )
else :
data = { }
if user . ref :
data [ " existingRef " ] = user . ref
if user . regTime :
data [ " regTime " ] = user . regTime
else :
data [ " regTime " ] = timezone . now ( )
data [ " opName " ] = user . opName
data [ " location " ] = user . location
form = UpdateRefForm ( initial = data )
return render ( request , ' contest/updateRef.html ' , { ' userobj ' : user , ' form ' : form , " shadow " : shadow } )
@staff_member_required
def viewAllQSOs ( request , page = 1 ) :
qsos = QSO . objects . all ( ) . order_by ( " -time " )
qsoPager = Paginator ( qsos , 10 )
qsoPage = getPage ( qsoPager , request . GET . get ( ' page ' ) )
qsos = QSO . objects . all ( ) . order_by ( " -time " )
qsoPager = Paginator ( qsos , 10 )
qsoPage = getPage ( qsoPager , request . GET . get ( ' page ' ) )
return render ( request , ' contest/viewAllQSOs.html ' , { ' qsoPage ' : qsoPage } )
return render ( request , ' contest/viewAllQSOs.html ' , { ' qsoPage ' : qsoPage } )
def overview ( request ) :
# FIXME: Hardcoded for cqtu... everywhere
c = Contest . objects . get ( id = 1 )
qrgs = Frequency . objects . filter ( band__contest = c ) . order_by ( " channel " )
return render ( request , ' contest/overview.html ' , { ' contest ' : c , ' qrgs ' : qrgs } )
# FIXME: Hardcoded for cqtu... everywhere
c = Contest . objects . get ( id = 1 )
qrgs = Frequency . objects . filter ( band__contest = c ) . order_by ( " channel " )
return render ( request , ' contest/overview.html ' , { ' contest ' : c , ' qrgs ' : qrgs } )
def register ( request ) :
form = None
if request . method == ' POST ' :
form = CustomUserCreationForm ( data = request . POST )
if form . is_valid ( ) :
form . save ( )
auth_login ( request , form . instance )
messages . info ( request , " Registration as user %s successfull! " % form . instance . username )
form = None
if request . method == ' POST ' :
form = CustomUserCreationForm ( data = request . POST )
if form . is_valid ( ) :
form . save ( )
auth_login ( request , form . instance )
messages . info ( request , " Registration as user %s successfull! " % form . instance . username )
return HttpResponseRedirect ( reverse ( " contest:index " ) )
else :
form = CustomUserCreationForm ( )
return HttpResponseRedirect ( reverse ( " contest:index " ) )
else :
form = CustomUserCreationForm ( )
return render ( request , ' registration/register.html ' , { " form " : form } )
return render ( request , ' registration/register.html ' , { " form " : form } )
@login_required
def profile ( request ) :
pwForm = None
catForm = None
if request . method == ' POST ' :
if request . POST . get ( " submit " , None ) == " pwchange " :
pwForm = PasswordChangeForm ( user = request . user , data = request . POST )
if pwForm . is_valid ( ) :
pwForm . save ( )
auth_login ( request , pwForm . user )
messages . success ( request , " Password changed " )
return HttpResponseRedirect ( reverse ( " profile " ) )
else :
catForm = UpdateCategoryForm ( data = request . POST )
if catForm . is_valid ( ) :
request . user . cat = catForm . cleaned_data [ " entry " ]
request . user . save ( )
messages . success ( request , " Entry category set " )
return HttpResponseRedirect ( reverse ( " profile " ) )
if not pwForm :
pwForm = PasswordChangeForm ( user = request . user )
if not catForm :
catForm = UpdateCategoryForm ( initial = { ' entry ' : request . user . cat } )
return render ( request , ' registration/profile.html ' , { " pwForm " : pwForm , " catForm " : catForm } )
pwForm = None
catForm = None
if request . method == ' POST ' :
if request . POST . get ( " submit " , None ) == " pwchange " :
pwForm = PasswordChangeForm ( user = request . user , data = request . POST )
if pwForm . is_valid ( ) :
pwForm . save ( )
auth_login ( request , pwForm . user )
messages . success ( request , " Password changed " )
return HttpResponseRedirect ( reverse ( " profile " ) )
else :
catForm = UpdateCategoryForm ( data = request . POST )
if catForm . is_valid ( ) :
request . user . cat = catForm . cleaned_data [ " entry " ]
request . user . save ( )
messages . success ( request , " Entry category set " )
return HttpResponseRedirect ( reverse ( " profile " ) )
if not pwForm :
pwForm = PasswordChangeForm ( user = request . user )
if not catForm :
catForm = UpdateCategoryForm ( initial = { ' entry ' : request . user . cat } )
return render ( request , ' registration/profile.html ' , { " pwForm " : pwForm , " catForm " : catForm } )