Merge remote-tracking branch 'origin/origin/feature/migrate-etablishment' into origin/migration_fix

This commit is contained in:
Dmitriy Kuzmenko 2019-10-29 15:27:19 +03:00
commit 8fd14f2f44
6 changed files with 56 additions and 9 deletions

View File

@ -8,8 +8,12 @@ def transfer_user():
# queryset = Profiles.objects.all()
# queryset = queryset.annotate(nickname=F("account__nickname"))
# queryset = queryset.annotate(email=F("account__email"))
queryset = Accounts.objects.filter(confirmed_at__isnull=False)
stop_list = ['cyril@tomatic.net',
'cyril2@tomatic.net',
'd.sadykova@id-east.ru',
'd.sadykova@octopod.ru',
'n.yurchenko@id-east.ru']
queryset = Accounts.objects.filter(confirmed_at__isnull=False).exclude(email__in=stop_list)
serialized_data = UserSerializer(data=list(queryset.values()), many=True)

View File

@ -4,18 +4,19 @@ from django.contrib.contenttypes.admin import GenericTabularInline
from django.utils.translation import gettext_lazy as _
from comment.models import Comment
from utils.admin import BaseModelAdminMixin
from establishment import models
from main.models import Award
from review import models as review_models
@admin.register(models.EstablishmentType)
class EstablishmentTypeAdmin(admin.ModelAdmin):
class EstablishmentTypeAdmin(BaseModelAdminMixin):
"""EstablishmentType admin."""
@admin.register(models.EstablishmentSubType)
class EstablishmentSubTypeAdmin(admin.ModelAdmin):
class EstablishmentSubTypeAdmin(BaseModelAdminMixin):
"""EstablishmentSubType admin."""
@ -47,17 +48,18 @@ class CommentInline(GenericTabularInline):
@admin.register(models.Establishment)
class EstablishmentAdmin(admin.ModelAdmin):
class EstablishmentAdmin(BaseModelAdminMixin):
"""Establishment admin."""
list_display = ['id', '__str__', 'image_tag', ]
inlines = [
AwardInline, ContactPhoneInline, ContactEmailInline,
ReviewInline, CommentInline]
raw_id_fields = ('address',)
fields = ['old_id', 'name']
@admin.register(models.Position)
class PositionAdmin(admin.ModelAdmin):
class PositionAdmin(BaseModelAdminMixin):
"""Position admin."""
@ -68,7 +70,7 @@ class PlateInline(admin.TabularInline):
@admin.register(models.Menu)
class MenuAdmin(admin.ModelAdmin):
class MenuAdmin(BaseModelAdminMixin):
"""Menu admin."""
list_display = ['id', 'category_translated']
inlines = [

View File

@ -3,6 +3,7 @@ from django.conf import settings
from news import models
from .tasks import send_email_with_news
from utils.admin import BaseModelAdminMixin
@admin.register(models.NewsType)
@ -24,7 +25,7 @@ send_email_action.short_description = "Send the selected news by email"
@admin.register(models.News)
class NewsAdmin(admin.ModelAdmin):
class NewsAdmin(BaseModelAdminMixin):
"""News admin."""
raw_id_fields = ('address',)
actions = [send_email_action]

View File

@ -1,8 +1,9 @@
"""Admin page for app Review"""
from . import models
from django.contrib import admin
from utils.admin import BaseModelAdminMixin
@admin.register(models.Review)
class ReviewAdminModel(admin.ModelAdmin):
class ReviewAdminModel(BaseModelAdminMixin):
"""Admin model for model Review."""

36
apps/utils/admin.py Normal file
View File

@ -0,0 +1,36 @@
"""Mixins for admin models."""
from django.contrib import admin
from django.db.models import ForeignKey
class BaseModelAdminMixin(admin.ModelAdmin):
"""
Class that overridden ModelAdmin and adds to readonly_fields attr
persisted fields like created_by, modified_by.
"""
_PERSISTENT_READ_ONLY_FIELDS = ['created_by', 'modified_by']
def _get_fk_field_names(self, fields: iter):
"""
Return an iterable object which contains FK model fields.
:param fields: iterable
:return: iterable
"""
foreign_key_fields = []
for field in fields:
if isinstance(field, ForeignKey):
foreign_key_fields.append(field.name)
return foreign_key_fields
def get_readonly_fields(self, request, obj=None):
"""
Hook for specifying custom readonly fields.
"""
_readonly_fields = list(self.readonly_fields)
fk_field_names = self._get_fk_field_names(self.model._meta.fields)
for field_name in fk_field_names:
if field_name in self._PERSISTENT_READ_ONLY_FIELDS:
_readonly_fields.append(field_name)
return tuple(_readonly_fields)

View File

@ -331,3 +331,6 @@ class GMTokenGenerator(PasswordResetTokenGenerator):
used.
"""
return self.get_fields(user, timestamp)
timezone.datetime.now().date().isoformat()