get application

This commit is contained in:
mahdavi 2019-12-13 20:30:18 +03:30
parent 97f12875cb
commit 8471621bce
5 changed files with 40 additions and 23 deletions

View file

@ -0,0 +1,32 @@
# Generated by Django 3.0 on 2019-12-13 14:23
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('transactions', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='transaction',
name='application_id',
field=models.IntegerField(blank=True, null=True, verbose_name='application ID'),
),
migrations.AlterField(
model_name='transaction',
name='code',
field=models.IntegerField(db_index=True, unique=True, verbose_name='code'),
),
migrations.AlterField(
model_name='transaction',
name='detail_id',
field=models.IntegerField(blank=True, null=True),
),
migrations.AlterUniqueTogether(
name='transaction',
unique_together={('application_id', 'detail_id')},
),
]

View file

@ -1,18 +0,0 @@
# Generated by Django 3.0 on 2019-12-13 13:52
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('transactions', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='transaction',
name='application_id',
field=models.IntegerField(blank=True, null=True, verbose_name='application ID'),
),
]

View file

@ -52,7 +52,7 @@ class Transaction(models.Model):
(5, 'done', 'done'),
)
code = models.IntegerField(_('code'), blank=False) # unique random number
code = models.IntegerField(_('code'), blank=False, unique=True, db_index=True) # unique random number
amount = models.IntegerField(_('amount'), blank=False)
delay = models.IntegerField(default=0, blank=True) # number of days for delayed payments
payer = models.ForeignKey(User, on_delete=models.PROTECT, related_name='payments', blank=True, null=True)
@ -61,10 +61,13 @@ class Transaction(models.Model):
create = models.DateTimeField(_('create'), blank=True, null=True, auto_now=True)
last_update = models.DateTimeField(_('last update'), blank=True, null=True, auto_now=True)
application_id = models.IntegerField("application ID", blank=True, null=True)
detail_id = models.IntegerField(null=True, blank=True, unique=True) # or better detail url or res number
detail_id = models.IntegerField(null=True, blank=True) # or better detail url or res number
objects = TransactionManager()
class Meta:
unique_together = ('application_id', 'detail_id',)
def set_code(self):
# TODO: set infinite algorithm
for code in random.sample(range(10000, 100000), 90000):

View file

@ -8,7 +8,7 @@ from .models import Transaction
class TransactionSerializer(serializers.ModelSerializer):
payer = PublicUserSerializer(required=False)
payee = PublicUserSerializer(required=False, read_only=True)
application_id = serializers.IntegerField(required=False, read_only=True)
# application_id = serializers.IntegerField(required=False, read_only=True)
class Meta:
model = Transaction
@ -24,7 +24,7 @@ class TransactionSerializer(serializers.ModelSerializer):
'application_id'
)
read_only_fields = ['last_update', 'code', 'state', 'create', 'detail_id']
read_only_fields = ['last_update', 'code', 'state', 'create', 'detail_id', 'application_id']
def create(self, validated_data):