diff --git a/api/v1/views.py b/api/v1/views.py index 6fbde9c6..41cd881a 100644 --- a/api/v1/views.py +++ b/api/v1/views.py @@ -419,7 +419,7 @@ class AuthorRequestViewSet(ExtendedModelViewSet): class PaymentViewSet(ExtendedModelViewSet): - queryset = Payment.objects.order_by('-created_at') + queryset = Payment.objects.filter(status__isnull=False).order_by('-created_at') serializer_class = PaymentSerializer permission_classes = (IsAdmin,) filter_fields = ('status',) diff --git a/apps/payment/models.py b/apps/payment/models.py index 10146971..8dbbccb6 100644 --- a/apps/payment/models.py +++ b/apps/payment/models.py @@ -2,6 +2,7 @@ import arrow from paymentwall import Pingback from polymorphic.models import PolymorphicModel +from polymorphic.managers import PolymorphicManager from django.db import models from django.contrib.auth import get_user_model @@ -73,6 +74,12 @@ class AuthorBalance(models.Model): return self.amount * config.SERVICE_COMMISSION / 100 +class PaymentManger(PolymorphicManager): + + def all(self): + return self.filter(status__isnull=False) + + class Payment(PolymorphicModel): PW_STATUS_CHOICES = ( (Pingback.PINGBACK_TYPE_REGULAR, 'regular',), @@ -93,13 +100,12 @@ class Payment(PolymorphicModel): created_at = models.DateTimeField(auto_now_add=True) update_at = models.DateTimeField(auto_now=True) - non_polymorphic = models.Manager() + objects = PaymentManger() class Meta: verbose_name = 'Платеж' verbose_name_plural = 'Платежи' ordering = ('created_at',) - base_manager_name = 'non_polymorphic' def calc_commission(self): return self.amount * config.SERVICE_COMMISSION / 100 diff --git a/apps/payment/views.py b/apps/payment/views.py index 608d94d3..412b5516 100644 --- a/apps/payment/views.py +++ b/apps/payment/views.py @@ -6,6 +6,7 @@ from urllib.parse import urlsplit from django.contrib import messages from django.contrib.auth.decorators import login_required +from django.core.exceptions import DisallowedHost from django.http import HttpResponse from django.shortcuts import redirect, get_object_or_404 from django.views.generic import View, TemplateView @@ -247,4 +248,5 @@ class PaymentwallCallbackView(View): payment.author_balance.save() return HttpResponse('OK') else: + raise DisallowedHost return HttpResponse(status=403) diff --git a/apps/school/models.py b/apps/school/models.py index 1e6a44c6..ad9efb2e 100644 --- a/apps/school/models.py +++ b/apps/school/models.py @@ -44,7 +44,8 @@ class SchoolSchedule(models.Model): return dict(self.WEEKDAY_CHOICES).get(self.weekday, '') def is_online(self): - return now().isoweekday() == self.weekday and now().time() >= self.start_at + end_at = datetime.combine(now().today(), self.start_at) + timedelta(hours=2) + return self.start_at <= now().time() and end_at.time() >= now().time() def current_live_lesson(self): now_time = now() diff --git a/apps/user/models.py b/apps/user/models.py index fd94ab81..6adf6cf4 100644 --- a/apps/user/models.py +++ b/apps/user/models.py @@ -24,7 +24,6 @@ class UserManager(BaseUserManager): username = email if not password: password = self.make_random_password() - super().save(*args, **kwargs) email = self.normalize_email(email) username = self.model.normalize_username(username) user = self.model(username=username, email=email, **extra_fields) diff --git a/apps/user/templates/user/payment-history.html b/apps/user/templates/user/payment-history.html index f39fa3ff..5643dfa5 100644 --- a/apps/user/templates/user/payment-history.html +++ b/apps/user/templates/user/payment-history.html @@ -75,7 +75,7 @@