Fix MyAlbum code step1

This commit is contained in:
2024-11-11 15:11:21 +09:00
parent 0453494cca
commit de3e87b963
3 changed files with 116 additions and 1 deletions

View File

@ -282,3 +282,61 @@ ORDER BY
CREATE INDEX idx_gps_checkins_cp_number ON gps_checkins(cp_number); CREATE INDEX idx_gps_checkins_cp_number ON gps_checkins(cp_number);
CREATE INDEX idx_rog_location_cp ON rog_location(cp); CREATE INDEX idx_rog_location_cp ON rog_location(cp);
*/ */
-- チェックポイントごとの集計VIEW
-- チェックポイントごとの集計ビューを作成
DROP VIEW IF EXISTS v_checkpoint_summary CASCADE;
CREATE OR REPLACE VIEW v_checkpoint_summary AS
WITH checkpoint_counts AS (
SELECT
e.event_id,
ev.event_name,
gc.cp_number,
l.sub_loc_id,
l.location_name,
e.category_id,
nc.category_name,
COUNT(CASE
WHEN gc.validate_location = true AND gc.buy_flag = false
THEN 1
END) as normal_checkins,
COUNT(CASE
WHEN gc.validate_location = true AND gc.buy_flag = true
THEN 1
END) as purchase_checkins
FROM
rog_entry e
JOIN rog_newevent2 ev ON e.event_id = ev.id
JOIN rog_newcategory nc ON e.category_id = nc.id
JOIN gps_checkins gc ON ev.event_name = gc.event_code
AND CAST(e.zekken_number AS TEXT) = gc.zekken_number
LEFT JOIN rog_location l ON gc.cp_number = l.cp
AND l."group" LIKE '%' || gc.event_code || '%'
WHERE
e.is_active = true
AND gc.validate_location = true
GROUP BY
e.event_id,
ev.event_name,
gc.cp_number,
l.sub_loc_id,
l.location_name,
e.category_id,
nc.category_name
)
SELECT
event_id,
event_name,
cp_number,
sub_loc_id,
location_name,
category_id,
category_name,
normal_checkins,
purchase_checkins
FROM
checkpoint_counts
ORDER BY
event_name,
cp_number,
category_id;

View File

@ -127,6 +127,8 @@ urlpatterns += [
path('update-goal-time/', views.update_goal_time, name='update-goal-time'), path('update-goal-time/', views.update_goal_time, name='update-goal-time'),
path('get-goalimage/', views.get_goalimage, name='get-goalimage'), path('get-goalimage/', views.get_goalimage, name='get-goalimage'),
path('get-photolist/', views.get_photo_list, name='get-photolist'),
] ]
if settings.DEBUG: if settings.DEBUG:

View File

@ -2683,6 +2683,61 @@ def update_checkins_old(request):
) )
@api_view(['GET'])
def get_photo_list():
print("/get_photo_list")
zekken = requests.args.get('zekken')
password = requests.args.get('pw')
event_code = requests.args.get('event')
zekken_conversion = {
"MF3-160": "MZ3-160",
"MF3-161": "MZ3-161",
"MF3-162": "MZ3-162",
"MF3-163": "MZ3-163",
"MF5-170": "MZ5-170",
"MF5-171": "MZ5-171",
"MF5-172": "MZ5-172",
"MF5-173": "MZ5-173",
"MF5-174": "MZ5-174",
"MF5-175": "MZ5-175",
"MF5-176": "MZ5-176",
"MF5-177": "MZ5-177",
"MF5-178": "MZ5-178",
"MF5-179": "MZ5-179"
}
if zekken in zekken_conversion:
zekken = zekken_conversion[zekken]
photo_list = []
photo_list.extend(_get_photo_list(zekken, event_code))
return JsonResponse({
"status": "OK",
"photo_list": photo_list,
"report": _get_final_report(zekken, event_code)
})
def _get_final_report(self, zekken, event_code):
report = f"https://sumasenrogaining.s3.us-west-2.amazonaws.com/{event_code}/scoreboard/certificate_{zekken}.pdf"
return report
def _get_photo_list(self,zekken, event_code):
photos = []
try:
checkins = GpsCheckin.objects.filter(zekken_number=zekken, event_code=event_code)
for checkin in checkins:
if checkin.image_address:
photos.append({
"cp_number": checkin.cp_number,
"photo_url": checkin.image_address.url
})
except Exception as e:
print(f"Error in _get_photo_list: {str(e)}")
return photos
@api_view(['GET']) @api_view(['GET'])
def export_excel(request, zekken_number, event_code): def export_excel(request, zekken_number, event_code):