Fix MyAlbum code step1
This commit is contained in:
@ -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;
|
||||||
@ -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:
|
||||||
|
|||||||
55
rog/views.py
55
rog/views.py
@ -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):
|
||||||
|
|||||||
Reference in New Issue
Block a user