Skip to content

Commit

Permalink
feat(import-export): add csv import export
Browse files Browse the repository at this point in the history
  • Loading branch information
delitamakanda committed Jul 30, 2023
1 parent d4fd8c3 commit fdf6ae3
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 6 deletions.
17 changes: 14 additions & 3 deletions buyers_panel/admin.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
from django.contrib import admin
from buyers_panel.models import BillingAddress, Order, OrderItem, Refund, Buyer
from import_export import resources
from import_export.admin import ImportExportMixin
from django.urls import reverse
from django.utils.html import format_html

class OrderItemAdmin(admin.ModelAdmin):
model = OrderItem
Expand All @@ -19,13 +23,20 @@ def queryset(self, request, queryset):
return queryset.filter(status__in=('P', 'O'))
return queryset

class OrderAdmin(admin.ModelAdmin):
class OrderAdmin(ImportExportMixin, admin.ModelAdmin):
model = Order
list_display = ['id','user', 'shipping_address', 'ordered_date', 'status']
search_fields = ['ref_code', 'user',]
list_display = ['id', 'link_to_customer', 'shipping_address', 'ordered_date', 'status',]
search_fields = ['ref_code', 'user__email',]
ordering = ('ordered_date',)
filter_horizontal = ('items',)
list_filter = ('status', OnlyActiveOrdersFilter, 'ordered', 'being_delivered', 'received',)
list_display_links = ('id', 'ordered_date',)
list_select_related = ('user',)

def link_to_customer(self, obj):
link = reverse('admin:admin_panel_customuser_change', args=[obj.user.id])
return format_html('<a href="{}">{}</a>', link, obj.user)
link_to_customer.short_description = 'Customer'

class BillingAddressAdmin(admin.ModelAdmin):
model = BillingAddress
Expand Down
3 changes: 2 additions & 1 deletion grocers_panel/admin.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
from django.contrib import admin
from grocers_panel.models import Shop, FoodMeal, Meal, Rating, Grocer
from djangoql.admin import DjangoQLSearchMixin
from import_export.admin import ImportExportMixin

class MealAdmin(DjangoQLSearchMixin, admin.ModelAdmin):
class MealAdmin(DjangoQLSearchMixin, ImportExportMixin, admin.ModelAdmin):
model = Meal
list_display = ['name', 'price']
search_fields = ('name', 'id',)
Expand Down
1 change: 1 addition & 0 deletions grocery_app/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@
'django_countries',
'multiselectfield',
'djangoql',
'import_export',

'grocery_api.apps.GroceryApiConfig',
'admin_panel.apps.AdminPanelConfig',
Expand Down
3 changes: 2 additions & 1 deletion requirements-dev.txt
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,5 @@ django-countries==7.2.1
django-multiselectfield==0.1.12
django-taggit-serializer==0.1.7
coreapi==2.3.3
djangoql==0.17.1
djangoql==0.17.1
django-import-export==3.2.0
3 changes: 2 additions & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,5 @@ gunicorn==20.1.0
django-heroku==0.3.1
django-taggit-serializer==0.1.7
coreapi==2.3.3
djangoql==0.17.1
djangoql==0.17.1
django-import-export==3.2.0

0 comments on commit fdf6ae3

Please sign in to comment.