new Dockerfile

This commit is contained in:
Sayyid Hamid Mahdavi 2026-02-07 12:37:14 +03:30
parent 95df80f593
commit 27db599e8c
3 changed files with 40 additions and 3 deletions

View file

@ -5,8 +5,8 @@ from django.contrib.admin.widgets import AdminDateWidget
from django.forms.fields import DateField, SplitDateTimeField, TimeField, DateTimeField
from django.utils.encoding import force_str
from datetime import date as datetime_date, datetime as datetime_datetime
from jdatetime import GregorianToJalali, datetime as jalali_datetime
import jdatetime
# from jdatetime import GregorianToJalali, datetime as jalali_datetime
# import jdatetime
class JalaliDateField(DateField):
def __init__(self, *, input_formats=None, **kwargs):

View file

@ -8,6 +8,10 @@ from django.db import transaction
from django.db.models import F
from django.utils import timezone
from django.utils.translation import gettext_lazy as _
from collections import defaultdict
from django.db.models import Count, Sum
from rest_framework.exceptions import APIException
from django.conf import settings
from oauth2_provider import settings as oauth2_settings
@ -97,6 +101,39 @@ class TransactionQuerySet(models.QuerySet):
def available(self):
return self.select_related('payer_account', 'payee_account')
def group_by_reference(self, reference):
from collections import defaultdict
from django.db.models import Count, Sum
# 'id': id,
# 'appid': appid,
# 'message': message,
# 'title': title,
# 'priority': priority,
# 'date': date.toIso8601String(),
Transaction.objects.values('reference').annotate(
total=Sum('amount'),
count=Count('id')
).values_list('refrence', 'total', 'count')
# کوئری ۲: همه تراکنش‌ها
transactions = Transaction.objects.all().order_by('refrence', 'created_at')
# گروه‌بندی در پایتون
groups = defaultdict(list)
for t in transactions:
groups[t.refrence].append(t)
# ترکیب
result = []
for ref, items in groups.items():
result.append({
'refrence': ref,
'stats': {'total': stats.get(ref, 0), 'count': len(items)},
'transactions': items
})
class Transaction(BaseModel):
amount = models.PositiveBigIntegerField(_('amount'), blank=False, validators=[MinValueValidator(1)])

View file

@ -47,7 +47,7 @@ INSTALLED_APPS = [
'crispy_forms',
'crispy_bootstrap5',
'django_filters',
'jalali_date',
# 'jalali_date',
# local apps
'apps.core',