57 lines
1.6 KiB
Python
57 lines
1.6 KiB
Python
from django.contrib.auth import get_user_model
|
|
|
|
from import_export import resources, fields
|
|
from import_export.widgets import ForeignKeyWidget
|
|
|
|
from communications.models import Announcement, NewsletterSubscription, PushNotificationDevice
|
|
|
|
User = get_user_model()
|
|
|
|
|
|
class AnnouncementResource(resources.ModelResource):
|
|
author = fields.Field(
|
|
column_name='author',
|
|
attribute='author',
|
|
widget=ForeignKeyWidget(User, 'username')
|
|
)
|
|
|
|
class Meta:
|
|
model = Announcement
|
|
fields = (
|
|
'id', 'title', 'content', 'announcement_type', 'priority',
|
|
'author', 'is_published', 'publish_date', 'send_email', 'send_push',
|
|
'target_audience', 'created_at', 'updated_at'
|
|
)
|
|
export_order = fields
|
|
|
|
|
|
class NewsletterSubscriptionResource(resources.ModelResource):
|
|
user = fields.Field(
|
|
column_name='user',
|
|
attribute='user',
|
|
widget=ForeignKeyWidget(User, 'username')
|
|
)
|
|
|
|
class Meta:
|
|
model = NewsletterSubscription
|
|
fields = (
|
|
'id', 'email', 'user', 'is_active', 'subscribed_categories',
|
|
'confirmed_at', 'created_at', 'updated_at'
|
|
)
|
|
export_order = fields
|
|
|
|
|
|
class PushNotificationDeviceResource(resources.ModelResource):
|
|
user = fields.Field(
|
|
column_name='user',
|
|
attribute='user',
|
|
widget=ForeignKeyWidget(User, 'username')
|
|
)
|
|
|
|
class Meta:
|
|
model = PushNotificationDevice
|
|
fields = (
|
|
'id', 'user', 'device_type', 'is_active', 'created_at', 'updated_at'
|
|
)
|
|
export_order = fields
|