Skip to content

Commit f09cb00

Browse files
committed
Merge branch 'EventsHeader' of https://github.com/BCStudentSoftwareDevTeam/celts into EventsHeader
2 parents bc5aa0e + 7c0259e commit f09cb00

11 files changed

Lines changed: 264 additions & 179 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Flask application to manage CELTS programs
22

33
## Requirements
4-
* Python 3.7+
4+
* Python 3.10+
55

66
**Packages (Ubuntu)**
77
* python3-dev

app/logic/bonner.py

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from app.models.eventCohort import EventCohort
1616
from app.models.term import Term
1717
from app.logic.createLogs import createRsvpLog
18-
18+
from app.models.certification import Certification
1919
def makeBonnerXls(selectedYear, noOfYears=1):
2020
"""
2121
Create and save a BonnerStudents.xlsx file with all of the current and former bonner students.
@@ -44,10 +44,8 @@ def makeBonnerXls(selectedYear, noOfYears=1):
4444
worksheet.set_column('D:D', 20)
4545

4646
# bonner event titles
47-
bonnerEventsId = 1
48-
bonnerEvents = CertificationRequirement.select().where(CertificationRequirement.certification==bonnerEventsId).order_by(CertificationRequirement.order.asc())
47+
bonnerEvents = CertificationRequirement.select().where(CertificationRequirement.certification==Certification.BONNER).order_by(CertificationRequirement.order.asc())
4948
bonnerEventInfo = {bonnerEvent.id:(bonnerEvent.name, index + 4) for index, bonnerEvent in enumerate(bonnerEvents)}
50-
allBonnerSpreadsheetPosition = 7
5149
currentLetter = "E" # next column
5250
for bonnerEvent in bonnerEvents:
5351
worksheet.write(f"{currentLetter}1", bonnerEvent.name, bold)
@@ -84,21 +82,19 @@ def makeBonnerXls(selectedYear, noOfYears=1):
8482
.join(EventParticipant, on=(RequirementMatch.event == EventParticipant.event))
8583
.join(CertificationRequirement, on=(RequirementMatch.requirement == CertificationRequirement.id))
8684
.join(User, on=(EventParticipant.user == User.username))
87-
.where((CertificationRequirement.certification_id == bonnerEventsId) & (User.username == student.user.username))
85+
.where((CertificationRequirement.certification_id == Certification.BONNER) & (User.username == student.user.username))
8886
)
8987

90-
allBonnerMeetingDates = []
88+
certRequirementDates = {}
9189
for attendedEvent in bonnerEventsAttended:
9290
if bonnerEventInfo.get(attendedEvent.requirement.id):
9391
completedEvent = bonnerEventInfo[attendedEvent.requirement.id]
94-
worksheet.write(row, completedEvent[1], attendedEvent.event.startDate.strftime('%m/%d/%Y'))
95-
if completedEvent[0] == "All Bonner Meeting":
96-
allBonnerMeetingDates.append(attendedEvent.event.startDate.strftime('%m/%d/%Y'))
97-
else:
98-
raise Exception("Untracked requirements found in attended events. Debug required.")
99-
100-
worksheet.write(row, allBonnerSpreadsheetPosition, ", ".join(sorted(allBonnerMeetingDates)))
92+
if completedEvent[1] not in certRequirementDates:
93+
certRequirementDates[completedEvent[1]] = []
94+
certRequirementDates[completedEvent[1]].append(attendedEvent.event.startDate.strftime('%m/%d/%Y'))
10195

96+
for tableIndex, dates in certRequirementDates.items():
97+
worksheet.write(row, tableIndex, ", ".join(sorted(dates)))
10298
row += 1
10399

104100
workbook.close()

app/logic/events.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,9 @@ def attemptSaveMultipleOfferings(eventData, attachmentFiles = None):
118118

119119
seriesId = calculateNewSeriesId()
120120

121-
# Create separate event data inheriting from the original eventData
122-
seriesData = eventData.get('seriesData')
121+
# Create separate event data for each event in the series, inheriting from the original eventData
122+
123+
seriesData = sorted(eventData.get('seriesData'), key=lambda x: datetime.strptime(f"{x['eventDate']} {x['startTime']}",'%Y-%m-%d %H:%M'))
123124
isRepeating = bool(eventData.get('isRepeating'))
124125
with mainDB.atomic() as transaction:
125126
for index, event in enumerate(seriesData):
@@ -129,8 +130,9 @@ def attemptSaveMultipleOfferings(eventData, attachmentFiles = None):
129130
'startDate': event['eventDate'],
130131
'timeStart': event['startTime'],
131132
'timeEnd': event['endTime'],
133+
'location': event['eventLocation'],
132134
'seriesId': seriesId,
133-
'isRepeating': bool(isRepeating)
135+
'isRepeating': bool(isRepeating),
134136
})
135137
# Try to save each offering
136138
savedEvents, validationErrorMessage = attemptSaveEvent(eventInfo, attachmentFiles)
@@ -484,7 +486,9 @@ def getRepeatingEventsData(eventData):
484486

485487
return [ {'name': f"{eventData['name']} Week {counter+1}",
486488
'date': eventData['startDate'] + timedelta(days=7*counter),
487-
"week": counter+1}
489+
"week": counter+1,
490+
'location': eventData['location']
491+
}
488492
for counter in range(0, ((eventData['endDate']-eventData['startDate']).days//7)+1)]
489493

490494
def preprocessEventData(eventData):

app/static/js/bonnerManagement.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ $(document).ready(function(){
7676
} else {
7777
fileName = `Bonner Spreadsheet, ${Number(startingYear) - Number(noOfYears)} - ${startingYear}`;
7878
}
79-
79+
8080
$.ajax({
8181
url: url,
8282
method: "GET",

0 commit comments

Comments
 (0)