diff --git a/rog/models.py b/rog/models.py index c2c956c..cdc91e5 100755 --- a/rog/models.py +++ b/rog/models.py @@ -914,11 +914,6 @@ class Checkpoint(models.Model): class GpsCheckin(models.Model): id = models.AutoField(primary_key=True) # 明示的にidフィールドを追加 - path_order = models.IntegerField( - null=False, - default=0, - help_text="チェックポイントの順序番号" - ) zekken = models.CharField( max_length=20, null=True, @@ -1087,13 +1082,13 @@ class GpsCheckin(models.Model): class Meta: db_table = 'rog_gpscheckin' # 実際のテーブル名に合わせて修正 indexes = [ - models.Index(fields=['zekken', 'event_code', 'path_order'], name='idx_zekken_event'), + models.Index(fields=['zekken', 'event_code', 'serial_number'], name='idx_zekken_event'), models.Index(fields=['create_at'], name='idx_create_at'), ] def __str__(self): - return f"{self.event_code}-{self.zekken_number}-{self.path_order}-buy:{self.buy_flag}-valid:{self.validate_location}-point:{self.points}" + return f"{self.event_code}-{self.zekken_number}-{self.serial_number}-buy:{self.buy_flag}-valid:{self.validate_location}-point:{self.points}" def save(self, *args, **kwargs): # 作成時・更新時のタイムスタンプを自動設定 diff --git a/rog/views.py b/rog/views.py index 344a5cb..318a67b 100755 --- a/rog/views.py +++ b/rog/views.py @@ -2661,9 +2661,9 @@ def get_checkins(request, *args, **kwargs): # チェックインデータの取得とCP情報の結合 checkins = GpsCheckin.objects.filter( - zekken_number=zekken_number, + zekken=zekken_number, event_code=event_code - ).order_by('path_order') + ).order_by('serial_number') data = [] for c in checkins: @@ -2687,7 +2687,7 @@ def get_checkins(request, *args, **kwargs): data.append({ 'id': c.id, - 'path_order': c.path_order, + 'path_order': c.serial_number, 'cp_number': c.cp_number, 'sub_loc_id': location.sub_loc_id if location else f"#{c.cp_number}", 'location_name': location.location_name if location else None, @@ -2731,7 +2731,7 @@ def update_checkins(request): logger.info(f"Updating existing checkin: {checkin}") # 既存レコードの更新 - checkin.path_order = update['order'] + checkin.serial_number = update['order'] checkin.buy_flag = update.get('buy_flag', False) checkin.validate_location = update.get('validation', False) checkin.points = update.get('points', 0) @@ -2750,9 +2750,9 @@ def update_checkins(request): logger.info(f"Creating new checkin: {update}") try: checkin = GpsCheckin.objects.create( - zekken_number=zekken_number, + zekken=zekken_number, event_code=event_code, - path_order=update['order'], + serial_number=update['order'], cp_number=update['cp_number'], validate_location=update.get('validation', False), buy_flag=update.get('buy_flag', False), @@ -2770,14 +2770,14 @@ def update_checkins(request): # 更新後のデータを順序付けて取得 updated_checkins = GpsCheckin.objects.filter( - zekken_number=zekken_number, + zekken=zekken_number, event_code=event_code - ).order_by('path_order') + ).order_by('serial_number') return Response({ 'status': 'success', 'message': 'Checkins updated successfully', - 'data': [{'id': c.id, 'path_order': c.path_order} for c in updated_checkins] + 'data': [{'id': c.id, 'path_order': c.serial_number} for c in updated_checkins] }) except Exception as e: @@ -2806,7 +2806,7 @@ def update_checkins_old(request): logger.info(f"Updating existing checkin: {checkin}") # 既存レコードの更新 - checkin.path_order = update['order'] + checkin.serial_number = update['order'] checkin.buy_flag = update.get('buy_flag', False) checkin.validate_location = update.get('validation', False) checkin.points = update.get('points', 0) @@ -2825,10 +2825,10 @@ def update_checkins_old(request): logger.info("Creating new checkin:{update}") try: checkin = GpsCheckin.objects.create( - zekken_number=update_base['zekken_number'], + zekken=update_base['zekken_number'], event_code=update_base['event_code'], - path_order=update['order'], + serial_number=update['order'], cp_number=update['cp_number'], validate_location=update.get('validation', False), buy_flag=update.get('buy_flag', False), diff --git a/rog/views_apis/api_admin_validation.py b/rog/views_apis/api_admin_validation.py index f84fc57..b7d6f9a 100644 --- a/rog/views_apis/api_admin_validation.py +++ b/rog/views_apis/api_admin_validation.py @@ -213,13 +213,13 @@ def get_participant_validation_details(request): checkins = GpsCheckin.objects.filter( zekken=str(zekken_number), event_code=event_code - ).order_by('path_order') + ).order_by('serial_number') checkin_details = [] for checkin in checkins: checkin_details.append({ 'id': checkin.id, - 'path_order': checkin.path_order, + 'path_order': checkin.serial_number, 'cp_number': checkin.cp_number, 'checkin_time': checkin.create_at.isoformat() if checkin.create_at else None, 'image_url': checkin.image_address, diff --git a/rog/views_apis/api_bulk_upload.py b/rog/views_apis/api_bulk_upload.py index c9aa451..a803344 100644 --- a/rog/views_apis/api_bulk_upload.py +++ b/rog/views_apis/api_bulk_upload.py @@ -196,7 +196,7 @@ def bulk_upload_photos(request): zekken_number=str(zekken_number), event_code=event_code, cp_number=checkpoint.cp_number, - path_order=existing_count + 1, + serial_number=existing_count + 1, lattitude=gps_info['latitude'], longitude=gps_info['longitude'], image_address=s3_url, diff --git a/rog/views_apis/api_photos_fixed.py b/rog/views_apis/api_photos_fixed.py index 02dd565..55e2631 100644 --- a/rog/views_apis/api_photos_fixed.py +++ b/rog/views_apis/api_photos_fixed.py @@ -181,7 +181,7 @@ def get_team_photos(zekken_number, event_code): image_address__isnull=False ).exclude( image_address='' - ).order_by('path_order', 'create_at') + ).order_by('serial_number', 'create_at') logger.info(f"Found {gps_checkins.count()} GPS checkins with images") @@ -203,7 +203,7 @@ def get_team_photos(zekken_number, event_code): "cp_number": gps.cp_number if gps.cp_number is not None else 0, "photo_url": image_url, "checkin_time": gps.create_at.strftime("%Y-%m-%d %H:%M:%S") if gps.create_at else None, - "path_order": gps.path_order, + "path_order": gps.serial_number, "buy_flag": gps.buy_flag, "validate_location": gps.validate_location, "points": gps.points