Skip to content

Commit 9c29dbb

Browse files
committed
removed update, added logs
1 parent 8f06130 commit 9c29dbb

File tree

1 file changed

+34
-11
lines changed

1 file changed

+34
-11
lines changed

track/admin.py

Lines changed: 34 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,43 +6,66 @@
66
from track import orders
77
from django.contrib import messages
88
from track import gbf
9+
from track.log_manager import LogManager
910

1011
logger = logging.getLogger(__name__)
1112

1213

1314
# Register your models here.
1415
class OrderAdmin(admin.ModelAdmin):
1516
change_list_template = "track/check_orders.html"
16-
17-
list_display = ["record_id", "order_number", "tracking_nrs", "return_tracking_nrs", "tube_serials", "order_status", "ship_date"]
18-
actions = ['check_orders_status']
17+
list_display = [
18+
"record_id",
19+
"order_number",
20+
"tracking_nrs",
21+
"return_tracking_nrs",
22+
"tube_serials",
23+
"order_status",
24+
"ship_date"
25+
]
26+
actions = ["check_orders_status"]
1927

2028
def get_actions(self, request):
2129
actions = super().get_actions(request)
2230
return actions
2331

2432
def check_orders_status(self, request, queryset):
33+
"""
34+
Checks shipping status for the selected orders without forcing their
35+
status to Order.INITIATED. Also logs the process using log_manager.
36+
"""
2537
if not queryset:
2638
self.message_user(request, "No orders selected to check status.", messages.WARNING)
2739
return
28-
40+
41+
log_manager = LogManager()
2942
try:
30-
order_numbers = list(queryset.values_list('order_number', flat=True))
31-
queryset.update(order_status=Order.INITIATED)
43+
order_numbers = list(queryset.values_list("order_number", flat=True))
3244

33-
# Check shipping info for selected orders only
45+
# START LOG for each order before checking status
46+
for order_number in order_numbers:
47+
log_manager.start_order_log(order_number)
48+
49+
# retrieve shipping info from GBF
3450
tracking_info = gbf.get_order_confirmations(order_numbers)
3551
if tracking_info:
3652
orders._update_orders_with_shipping_info(tracking_info)
3753
message = f"Successfully checked shipping status for orders: {', '.join(order_numbers)}"
3854
self.message_user(request, message, messages.SUCCESS)
3955
else:
4056
self.message_user(request, "No shipping information available for the selected orders.", messages.INFO)
41-
57+
58+
# COMPLETE LOG for each order after processing
59+
for order_number in order_numbers:
60+
log_manager.complete_log(order_number)
61+
4262
except Exception as e:
4363
logger.error(f"Error checking order status: {str(e)}")
4464
self.message_user(request, f"Error checking order status: {str(e)}", messages.ERROR)
45-
65+
66+
for order_number in order_numbers:
67+
log_manager.append_to_gbf_log(LogManager.LEVEL_ERROR, f"Error checking order status: {str(e)}", order_number)
68+
4669
check_orders_status.short_description = "Check shipping status for selected orders"
4770

4871
class ConfirmationCheckLogAdmin(admin.ModelAdmin):
@@ -52,12 +75,12 @@ class ConfirmationCheckLogAdmin(admin.ModelAdmin):
5275
def get_urls(self):
5376
urls = super().get_urls()
5477
my_urls = [
55-
path('check_order_status/', self.call_check_order_status),
78+
path("check_order_status/", self.call_check_order_status),
5679
]
5780
return my_urls + urls
5881

5982
def call_check_order_status(self, request):
60-
logger.info("Initiatied check for tracking info")
83+
logger.info("Initiated check for tracking info")
6184
orders.check_orders_shipping_info()
6285
logger.info("Tracking info check completed.")
6386
return HttpResponseRedirect("../")

0 commit comments

Comments
 (0)