Просмотр исходного кода

Move import export resources to own file, for import without django
admin

David Burke 8 месяцев назад
Родитель
Сommit
5dd5a854d1

+ 7 - 4
apps/importer/importer.py

@@ -6,13 +6,16 @@ from asgiref.sync import sync_to_async
 from django.db.models import Q
 from django.db.models import Q
 from django.urls import reverse
 from django.urls import reverse
 
 
-from apps.organizations_ext.admin import OrganizationResource, OrganizationUserResource
 from apps.organizations_ext.models import OrganizationUser, OrganizationUserRole
 from apps.organizations_ext.models import OrganizationUser, OrganizationUserRole
-from apps.projects.admin import ProjectKeyResource, ProjectResource
+from apps.organizations_ext.resources import (
+    OrganizationResource,
+    OrganizationUserResource,
+)
 from apps.projects.models import Project
 from apps.projects.models import Project
-from apps.teams.admin import TeamResource
-from apps.users.admin import UserResource
+from apps.projects.resources import ProjectKeyResource, ProjectResource
+from apps.teams.resources import TeamResource
 from apps.users.models import User
 from apps.users.models import User
+from apps.users.resources import UserResource
 
 
 from .exceptions import ImporterException
 from .exceptions import ImporterException
 
 

+ 1 - 22
apps/organizations_ext/admin.py

@@ -4,7 +4,6 @@ from django.db.models import F, PositiveIntegerField
 from django.db.models.fields.json import KeyTextTransform
 from django.db.models.fields.json import KeyTextTransform
 from django.db.models.functions import Cast
 from django.db.models.functions import Cast
 from django.utils.html import format_html
 from django.utils.html import format_html
-from import_export import resources
 from import_export.admin import ImportExportModelAdmin
 from import_export.admin import ImportExportModelAdmin
 from organizations.base_admin import (
 from organizations.base_admin import (
     BaseOrganizationAdmin,
     BaseOrganizationAdmin,
@@ -13,6 +12,7 @@ from organizations.base_admin import (
 )
 )
 
 
 from .models import Organization, OrganizationOwner, OrganizationUser
 from .models import Organization, OrganizationOwner, OrganizationUser
+from .resources import OrganizationResource, OrganizationUserResource
 
 
 ORGANIZATION_LIST_FILTER = (
 ORGANIZATION_LIST_FILTER = (
     "is_active",
     "is_active",
@@ -32,13 +32,6 @@ class OrganizationUserInline(admin.StackedInline):
     extra = 0
     extra = 0
 
 
 
 
-class OrganizationResource(resources.ModelResource):
-    class Meta:
-        model = Organization
-        skip_unchanged = True
-        fields = ("id", "slug", "name", "created", "organization")
-
-
 class GlitchTipBaseOrganizationAdmin(BaseOrganizationAdmin):
 class GlitchTipBaseOrganizationAdmin(BaseOrganizationAdmin):
     readonly_fields = ("customers", "created")
     readonly_fields = ("customers", "created")
     list_filter = ORGANIZATION_LIST_FILTER
     list_filter = ORGANIZATION_LIST_FILTER
@@ -163,20 +156,6 @@ class OrganizationSubscriptionAdmin(GlitchTipBaseOrganizationAdmin):
     list_filter = GlitchTipBaseOrganizationAdmin.list_filter + (IsOverListFilter,)
     list_filter = GlitchTipBaseOrganizationAdmin.list_filter + (IsOverListFilter,)
 
 
 
 
-class OrganizationUserResource(resources.ModelResource):
-    class Meta:
-        model = OrganizationUser
-        skip_unchanged = True
-        fields = (
-            "id",
-            "user",
-            "organization",
-            "role",
-            "email",
-        )
-        import_id_fields = ("user", "email", "organization")
-
-
 class OrganizationUserAdmin(BaseOrganizationUserAdmin, ImportExportModelAdmin):
 class OrganizationUserAdmin(BaseOrganizationUserAdmin, ImportExportModelAdmin):
     list_display = ["user", "organization", "role", "email"]
     list_display = ["user", "organization", "role", "email"]
     search_fields = ("email", "user__email", "organization__name")
     search_fields = ("email", "user__email", "organization__name")

+ 24 - 0
apps/organizations_ext/resources.py

@@ -0,0 +1,24 @@
+from import_export import resources
+
+from .models import Organization, OrganizationUser
+
+
+class OrganizationResource(resources.ModelResource):
+    class Meta:
+        model = Organization
+        skip_unchanged = True
+        fields = ("id", "slug", "name", "created", "organization")
+
+
+class OrganizationUserResource(resources.ModelResource):
+    class Meta:
+        model = OrganizationUser
+        skip_unchanged = True
+        fields = (
+            "id",
+            "user",
+            "organization",
+            "role",
+            "email",
+        )
+        import_id_fields = ("user", "email", "organization")

+ 1 - 19
apps/projects/admin.py

@@ -1,19 +1,8 @@
 from django.contrib import admin
 from django.contrib import admin
-from import_export import resources
 from import_export.admin import ImportExportModelAdmin
 from import_export.admin import ImportExportModelAdmin
 
 
 from .models import Project, ProjectKey, UserProjectAlert
 from .models import Project, ProjectKey, UserProjectAlert
-
-
-class ProjectKeyResource(resources.ModelResource):
-    class Meta:
-        model = ProjectKey
-        skip_unchanged = True
-        fields = ("project", "label", "public_key")
-        import_id_fields = (
-            "project",
-            "public_key",
-        )
+from .resources import ProjectResource
 
 
 
 
 class ProjectKeyInline(admin.StackedInline):
 class ProjectKeyInline(admin.StackedInline):
@@ -22,13 +11,6 @@ class ProjectKeyInline(admin.StackedInline):
     readonly_fields = ("dsn",)
     readonly_fields = ("dsn",)
 
 
 
 
-class ProjectResource(resources.ModelResource):
-    class Meta:
-        model = Project
-        skip_unchanged = True
-        fields = ("id", "created", "slug", "name", "organization", "platform")
-
-
 class ProjectAdmin(ImportExportModelAdmin):
 class ProjectAdmin(ImportExportModelAdmin):
     search_fields = ("name",)
     search_fields = ("name",)
     list_display = ("name", "organization")
     list_display = ("name", "organization")

+ 21 - 0
apps/projects/resources.py

@@ -0,0 +1,21 @@
+from import_export import resources
+
+from .models import Project, ProjectKey
+
+
+class ProjectKeyResource(resources.ModelResource):
+    class Meta:
+        model = ProjectKey
+        skip_unchanged = True
+        fields = ("project", "label", "public_key")
+        import_id_fields = (
+            "project",
+            "public_key",
+        )
+
+
+class ProjectResource(resources.ModelResource):
+    class Meta:
+        model = Project
+        skip_unchanged = True
+        fields = ("id", "created", "slug", "name", "organization", "platform")

+ 1 - 8
apps/teams/admin.py

@@ -1,15 +1,8 @@
 from django.contrib import admin
 from django.contrib import admin
-from import_export import resources
 from import_export.admin import ImportExportModelAdmin
 from import_export.admin import ImportExportModelAdmin
 
 
 from .models import Team
 from .models import Team
-
-
-class TeamResource(resources.ModelResource):
-    class Meta:
-        model = Team
-        skip_unchanged = True
-        fields = ("id", "slug", "created", "organization", "projects", "members")
+from .resources import TeamResource
 
 
 
 
 class TeamAdmin(ImportExportModelAdmin):
 class TeamAdmin(ImportExportModelAdmin):

+ 10 - 0
apps/teams/resources.py

@@ -0,0 +1,10 @@
+from import_export import resources
+
+from .models import Team
+
+
+class TeamResource(resources.ModelResource):
+    class Meta:
+        model = Team
+        skip_unchanged = True
+        fields = ("id", "slug", "created", "organization", "projects", "members")

+ 1 - 17
apps/users/admin.py

@@ -1,26 +1,10 @@
 from django.contrib import admin
 from django.contrib import admin
 from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
 from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
 from django.utils.translation import gettext_lazy as _
 from django.utils.translation import gettext_lazy as _
-from import_export import resources
 from import_export.admin import ImportExportModelAdmin
 from import_export.admin import ImportExportModelAdmin
 
 
 from .models import User
 from .models import User
-
-
-class UserResource(resources.ModelResource):
-    class Meta:
-        model = User
-        skip_unchanged = True
-        fields = (
-            "id",
-            # "password",
-            "is_superuser",
-            "email",
-            "name",
-            "is_staff",
-            "is_active",
-            "created",
-        )
+from .resources import UserResource
 
 
 
 
 class UserAdmin(BaseUserAdmin, ImportExportModelAdmin):
 class UserAdmin(BaseUserAdmin, ImportExportModelAdmin):

+ 19 - 0
apps/users/resources.py

@@ -0,0 +1,19 @@
+from import_export import resources
+
+from .models import User
+
+
+class UserResource(resources.ModelResource):
+    class Meta:
+        model = User
+        skip_unchanged = True
+        fields = (
+            "id",
+            # "password",
+            "is_superuser",
+            "email",
+            "name",
+            "is_staff",
+            "is_active",
+            "created",
+        )