Add country control

This commit is contained in:
Виктор Гладких 2019-10-10 14:58:19 +03:00
parent dd4c7fa3eb
commit 56c0927a52
5 changed files with 46 additions and 5 deletions

View File

@ -0,0 +1,20 @@
# Generated by Django 2.2.4 on 2019-10-10 11:46
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('translation', '0003_auto_20190901_1032'),
('comment', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='comment',
name='language',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='translation.Language', verbose_name='Locale'),
),
]

View File

@ -6,7 +6,7 @@ from django.utils.translation import gettext_lazy as _
from account.models import User
from utils.models import ProjectBaseMixin
from utils.querysets import ContentTypeQuerySetMixin
from translation.models import Language
class CommentQuerySet(ContentTypeQuerySetMixin):
"""QuerySets for Comment model."""
@ -41,6 +41,7 @@ class Comment(ProjectBaseMixin):
content_object = generic.GenericForeignKey('content_type', 'object_id')
objects = CommentQuerySet.as_manager()
language = models.ForeignKey(Language, verbose_name=_('Locale'), on_delete=models.SET_NULL, null=True)
class Meta:
"""Meta class"""

View File

@ -13,12 +13,12 @@ class IsCommentModerator(permissions.BasePermission):
# so we'll always allow GET, HEAD or OPTIONS requests.
if request.method in permissions.SAFE_METHODS:
return True
# user owner is user request
if obj.user == request.user:
return True
# Instance must have an attribute named `user`.
role = Role.objects.get(role=2) # 'Comments moderator'
# Must have role
role = Role.objects.filter(role=2, country__language=obj.language).first() # 'Comments moderator'
is_access = UserRole.objects.filter(user=request.user, role=role).exists()
if obj.user != request.user and is_access:
return True

View File

@ -0,0 +1,19 @@
# Generated by Django 2.2.4 on 2019-10-10 11:34
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('translation', '0003_auto_20190901_1032'),
('location', '0010_auto_20190904_0711'),
]
operations = [
migrations.AddField(
model_name='country',
name='language',
field=models.ManyToManyField(to='translation.Language', verbose_name='Language'),
),
]

View File

@ -6,7 +6,7 @@ from django.db.transaction import on_commit
from django.dispatch import receiver
from django.utils.translation import gettext_lazy as _
from utils.models import ProjectBaseMixin, SVGImageMixin, TranslatedFieldsMixin, TJSONField
from translation.models import Language
class Country(TranslatedFieldsMixin, SVGImageMixin, ProjectBaseMixin):
"""Country model."""
@ -18,6 +18,7 @@ class Country(TranslatedFieldsMixin, SVGImageMixin, ProjectBaseMixin):
code = models.CharField(max_length=255, unique=True, verbose_name=_('Code'))
low_price = models.IntegerField(default=25, verbose_name=_('Low price'))
high_price = models.IntegerField(default=50, verbose_name=_('High price'))
language = models.ManyToManyField(Language, verbose_name=_('Language'))
class Meta:
"""Meta class."""