Skip to content
Snippets Groups Projects
voucher.py 1.72 KiB
Newer Older
Piotr Gawron's avatar
Piotr Gawron committed
# coding=utf-8

from django.db import models

from web.models import VoucherType, StudySubject, Worker
from web.models.constants import VOUCHER_STATUS_CHOICES, VOUCHER_STATUS_NEW
Piotr Gawron's avatar
Piotr Gawron committed


class Voucher(models.Model):
    class Meta:
        app_label = 'web'

    number = models.CharField(
        max_length=10,
        verbose_name='Number',
        blank=False,
        null=False,
        unique=True
    )

    issue_date = models.DateField(verbose_name='Issue date', null=False)
    expiry_date = models.DateField(verbose_name='Expiry date', null=False)
    use_date = models.DateField(verbose_name='Use date', null=True, blank=True)
Piotr Gawron's avatar
Piotr Gawron committed
    voucher_type = models.ForeignKey(
        VoucherType,
        on_delete=models.CASCADE,
        null=False,
    )

    study_subject = models.ForeignKey(
        StudySubject,
        on_delete=models.CASCADE,
        null=False,
Piotr Gawron's avatar
Piotr Gawron committed
        related_name="vouchers",
Piotr Gawron's avatar
Piotr Gawron committed
        editable=False
    )

    status = models.CharField(max_length=20, choices=VOUCHER_STATUS_CHOICES,
Piotr Gawron's avatar
Piotr Gawron committed
                              verbose_name='Status',
                              default=VOUCHER_STATUS_NEW
                              )

    feedback = models.TextField(max_length=2000,
                                blank=True,
                                verbose_name='Feedback'
                                )

    usage_partner = models.ForeignKey(
        Worker,
        on_delete=models.CASCADE,
Piotr Gawron's avatar
Piotr Gawron committed
    )

    def __str__(self):
        return "%s - %s %s" % (self.number, self.study_subject.subject.first_name, self.study_subject.subject.last_name)

    def __unicode__(self):
        return "%s - %s %s" % (self.number, self.study_subject.subject.first_name, self.study_subject.subject.last_name)