예제 #1
0
        return name

    def get_name(self):
        if self.type == ContactType.PERSON:
            return ' '.join([n for n in [self.first_name, self.last_name] if n]).strip()
        else:
            return self.name

    def get_name_and_identifier(self):
        if self.type == ContactType.PERSON:
            name = ' '.join([n for n in [self.first_name, self.last_name] if n]).strip()

            if self.national_identification_number:
                return _('{name} (National Identification Number {id})').format(
                    name=name, id=self.national_identification_number)
            else:
                return name
        else:
            name = self.name
            if self.business_id:
                return _('{name} (Business ID {id})').format(
                    name=name, id=self.business_id)
            else:
                return name


auditlog.register(Contact)

field_permissions.register(Contact, exclude_fields=['lease', 'invoice', 'tenants', 'tenantcontact'])
예제 #2
0

class InterestRate(models.Model):
    """
    In Finnish: Korko
    """
    start_date = models.DateField(verbose_name=_("Start date"))
    end_date = models.DateField(verbose_name=_("End date"))
    # In Finnish: Viitekorko
    reference_rate = models.DecimalField(verbose_name=_("Reference rate"), max_digits=10, decimal_places=2)
    # In Finnish: Viivästyskorko
    penalty_rate = models.DecimalField(verbose_name=_("Penalty rate"), max_digits=10, decimal_places=2)

    class Meta:
        verbose_name = pgettext_lazy("Model name", "Interest rate")
        verbose_name_plural = pgettext_lazy("Model name", "Interest rates")

    def __str__(self):
        return '{} - {}'.format(self.start_date, self.end_date)


auditlog.register(CollectionLetter)
auditlog.register(CollectionLetterTemplate)
auditlog.register(CollectionNote)
auditlog.register(CollectionCourtDecision)
auditlog.register(InterestRate)

field_permissions.register(CollectionLetter, exclude_fields=['lease'])
field_permissions.register(CollectionNote, exclude_fields=['lease'])
field_permissions.register(CollectionCourtDecision, exclude_fields=['lease'])
예제 #3
0
파일: contact.py 프로젝트: suutari-ai/mvj
        if self.type == ContactType.PERSON:
            return " ".join(
                [n for n in [self.first_name, self.last_name] if n]).strip()
        else:
            return self.name if self.name else ""

    def get_name_and_identifier(self):
        if self.type == ContactType.PERSON:
            name = " ".join(
                [n for n in [self.first_name, self.last_name] if n]).strip()

            if self.national_identification_number:
                return _(
                    "{name} (National Identification Number {id})").format(
                        name=name, id=self.national_identification_number)
            else:
                return name
        else:
            name = self.name
            if self.business_id:
                return _("{name} (Business ID {id})").format(
                    name=name, id=self.business_id)
            else:
                return name


auditlog.register(Contact)

field_permissions.register(
    Contact, exclude_fields=["lease", "invoice", "tenants", "tenantcontact"])
예제 #4
0
    inspection = models.ForeignKey(Inspection,
                                   related_name='attachments',
                                   on_delete=models.PROTECT)

    # In Finnish: Tiedosto
    file = models.FileField(upload_to=get_inspection_attachment_file_upload_to,
                            blank=False,
                            null=False)

    # In Finnish: Lataaja
    uploader = models.ForeignKey(User,
                                 verbose_name=_("Uploader"),
                                 related_name='+',
                                 on_delete=models.PROTECT)

    # In Finnish: Latausaika
    uploaded_at = models.DateTimeField(auto_now_add=True,
                                       verbose_name=_("Time uploaded"))

    recursive_get_related_skip_relations = ["inspection", "uploader"]

    class Meta:
        verbose_name = pgettext_lazy("Model name", "Inspection attachment")
        verbose_name_plural = pgettext_lazy("Model name",
                                            "Inspection attachments")


auditlog.register(Inspection)

field_permissions.register(Inspection, exclude_fields=['lease'])
예제 #5
0
    # In Finnish: Käyttötarkoitus
    intended_use = models.ForeignKey(
        RentIntendedUse,
        verbose_name=_("Intended use"),
        related_name="+",
        on_delete=models.PROTECT,
    )

    # In Finnish: Jaettava / Osoittaja (Laskuosuus)
    share_numerator = models.PositiveIntegerField(
        verbose_name=_("Rent share numerator"))

    # In Finnish: Jakaja / Nimittäjä (Laskuosuus)
    share_denominator = models.PositiveIntegerField(
        verbose_name=_("Rent share denominator"))

    recursive_get_related_skip_relations = ["tenant"]

    class Meta:
        verbose_name = pgettext_lazy("Model name", "Tenant rent share")
        verbose_name_plural = pgettext_lazy("Model name", "Tenant rent shares")


auditlog.register(Tenant)
auditlog.register(TenantContact)
auditlog.register(TenantRentShare)

field_permissions.register(Tenant, exclude_fields=["lease", "invoicerow"])
field_permissions.register(TenantContact, exclude_fields=["tenant"])
field_permissions.register(TenantRentShare, exclude_fields=["tenant"])
예제 #6
0
    # In Finnish: Kaavayksikön tila
    plan_unit_status = EnumField(
        PlanUnitStatus,
        verbose_name=_("Plan unit status"),
        max_length=30,
        default=PlanUnitStatus.PRESENT,
    )

    recursive_get_related_skip_relations = ["lease_area"]

    tracker = FieldTracker()

    class Meta:
        verbose_name = pgettext_lazy("Model name", "Plan unit")
        verbose_name_plural = pgettext_lazy("Model name", "Plan units")


auditlog.register(LeaseArea)
auditlog.register(LeaseAreaAddress)
auditlog.register(ConstructabilityDescription)
auditlog.register(Plot)
auditlog.register(PlanUnit)

field_permissions.register(LeaseArea, exclude_fields=["lease"])
field_permissions.register(LeaseAreaAddress, exclude_fields=["lease_area"])
field_permissions.register(ConstructabilityDescription,
                           exclude_fields=["lease_area"])
field_permissions.register(Plot, exclude_fields=["lease_area"])
field_permissions.register(PlanUnit, exclude_fields=["lease_area"])
예제 #7
0
    supervision_date = models.DateField(verbose_name=_("Supervision date"),
                                        null=True,
                                        blank=True)

    # In Finnish: Valvottu päivämäärä
    supervised_date = models.DateField(verbose_name=_("Supervised date"),
                                       null=True,
                                       blank=True)

    # In Finnish: Selite
    description = models.TextField(verbose_name=_("Description"),
                                   null=True,
                                   blank=True)

    recursive_get_related_skip_relations = ["decision"]

    class Meta:
        verbose_name = pgettext_lazy("Model name", "Condition")
        verbose_name_plural = pgettext_lazy("Model name", "Conditions")


auditlog.register(Decision)
auditlog.register(Condition)

field_permissions.register(Decision,
                           exclude_fields=[
                               'lease', 'rentadjustment', 'contract',
                               'contractchange', 'leasearea'
                           ])
field_permissions.register(Condition, exclude_fields=['decision'])
예제 #8
0
        related_name="comments",
        on_delete=models.PROTECT,
    )

    user = models.ForeignKey(
        User, verbose_name=_("User"), related_name="+", on_delete=models.PROTECT
    )

    topic = models.ForeignKey(
        CommentTopic,
        verbose_name=_("Topic"),
        related_name="+",
        on_delete=models.PROTECT,
    )

    # In Finnish: Kommentti
    text = models.TextField(verbose_name=_("Text"), null=True, blank=True)

    recursive_get_related_skip_relations = ["lease"]

    class Meta:
        verbose_name = pgettext_lazy("Model name", "Comment")
        verbose_name_plural = pgettext_lazy("Model name", "Comments")
        ordering = ("-created_at",)


auditlog.register(Comment)

field_permissions.register(Comment, exclude_fields=["lease"])
field_permissions.register(CommentTopic)
예제 #9
0
파일: invoice.py 프로젝트: hkotkanen/mvj
                                   max_length=35)

    recursive_get_related_skip_relations = ["invoice"]

    class Meta:
        verbose_name = pgettext_lazy("Model name", "Invoice payment")
        verbose_name_plural = pgettext_lazy("Model name", "Invoice payments")


class BankHoliday(models.Model):
    day = models.DateField(verbose_name=_("Day"), unique=True, db_index=True)

    class Meta:
        verbose_name = pgettext_lazy("Model name", "Bank holiday")
        verbose_name_plural = pgettext_lazy("Model name", "Bank holidays")
        ordering = ("day", )

    def __str__(self):
        return str(self.day)


auditlog.register(Invoice)
auditlog.register(InvoiceNote)
auditlog.register(InvoiceRow)
auditlog.register(InvoicePayment)

field_permissions.register(Invoice, exclude_fields=['lease', 'laskeexportlog'])
field_permissions.register(InvoiceNote, exclude_fields=['lease'])
field_permissions.register(InvoiceRow, exclude_fields=['invoice'])
field_permissions.register(InvoicePayment, exclude_fields=['invoice'])
예제 #10
0
파일: decision.py 프로젝트: suutari-ai/mvj
    # In Finnish: Valvottu päivämäärä
    supervised_date = models.DateField(
        verbose_name=_("Supervised date"), null=True, blank=True
    )

    # In Finnish: Selite
    description = models.TextField(verbose_name=_("Description"), null=True, blank=True)

    recursive_get_related_skip_relations = ["decision"]

    class Meta:
        verbose_name = pgettext_lazy("Model name", "Condition")
        verbose_name_plural = pgettext_lazy("Model name", "Conditions")


auditlog.register(Decision)
auditlog.register(Condition)

field_permissions.register(
    Decision,
    exclude_fields=[
        "lease",
        "rentadjustment",
        "contract",
        "contractchange",
        "leasearea",
    ],
)
field_permissions.register(Condition, exclude_fields=["decision"])
예제 #11
0
파일: lease.py 프로젝트: igordavydsson/mvj
                                   on_delete=models.PROTECT)
    to_lease = models.ForeignKey(Lease,
                                 verbose_name=_("To lease"),
                                 related_name='to_leases',
                                 on_delete=models.PROTECT)
    type = EnumField(LeaseRelationType,
                     verbose_name=_("Lease relation type"),
                     null=True,
                     blank=True,
                     max_length=30)
    start_date = models.DateField(verbose_name=_("Start date"),
                                  null=True,
                                  blank=True)
    end_date = models.DateField(verbose_name=_("End date"),
                                null=True,
                                blank=True)

    class Meta:
        verbose_name = pgettext_lazy("Model name", "Related lease")
        verbose_name_plural = pgettext_lazy("Model name", "Related leases")


auditlog.register(Lease)
auditlog.register(RelatedLease)

field_permissions.register(Lease,
                           exclude_fields=[
                               'from_leases', 'to_leases', 'leases',
                               'invoicesets', 'leasestatelog'
                           ])
예제 #12
0
파일: tenant.py 프로젝트: igordavydsson/mvj
class TenantContact(TimeStampedSafeDeleteModel):
    type = EnumField(TenantContactType, max_length=255)
    tenant = models.ForeignKey(Tenant, verbose_name=_("Tenant"), on_delete=models.PROTECT)
    contact = models.ForeignKey(Contact, verbose_name=_("Contact"), on_delete=models.PROTECT)

    # In Finnish: Alkupvm
    start_date = models.DateField(verbose_name=_("Start date"))

    # In Finnish: Loppupvm
    end_date = models.DateField(verbose_name=_("End date"), null=True, blank=True)

    class Meta:
        verbose_name = pgettext_lazy("Model name", "Tenant contact")
        verbose_name_plural = pgettext_lazy("Model name", "Tenant contacts")

    def __str__(self):
        return 'TenantContact id: {} contact: {} period: {} - {}'.format(self.id, self.contact, self.start_date,
                                                                         self.end_date)

    @property
    def date_range(self):
        return self.start_date, self.end_date


auditlog.register(Tenant)
auditlog.register(TenantContact)

field_permissions.register(Tenant, exclude_fields=['lease', 'invoicerow'])
field_permissions.register(TenantContact, exclude_fields=['tenant'])
예제 #13
0
from users.models import User

from .mixins import TimeStampedSafeDeleteModel


class AreaNote(TimeStampedSafeDeleteModel):
    """
    In Finnish: Muistettava ehto
    """
    # In Finnish: Alue
    # geometry = models.MultiPolygonField(srid=4326, verbose_name=_("Geometry"), null=True, blank=True)
    geometry = models.MultiPolygonField(srid=4326, null=True, blank=True)

    # In Finnish: Kommentti
    note = models.TextField(verbose_name=_("Note"), null=True, blank=True)
    user = models.ForeignKey(User,
                             verbose_name=_("User"),
                             related_name='+',
                             on_delete=models.PROTECT)

    recursive_get_related_skip_relations = ["user"]

    class Meta:
        verbose_name = pgettext_lazy("Model name", "Area note")
        verbose_name_plural = pgettext_lazy("Model name", "Area notes")


auditlog.register(AreaNote)

field_permissions.register(AreaNote)
예제 #14
0
파일: contract.py 프로젝트: suutari-ai/mvj
    # In Finnish: Selite
    description = models.TextField(verbose_name=_("Description"),
                                   null=True,
                                   blank=True)

    # In Finnish: Päätös
    decision = models.ForeignKey(
        "leasing.Decision",
        verbose_name=_("Decision"),
        related_name="+",
        null=True,
        blank=True,
        on_delete=models.PROTECT,
    )

    recursive_get_related_skip_relations = ["contract", "decision"]

    class Meta:
        verbose_name = pgettext_lazy("Model name", "Contract change")
        verbose_name_plural = pgettext_lazy("Model name", "Contract changes")


auditlog.register(Contract)
auditlog.register(ContractChange)
auditlog.register(Collateral)

field_permissions.register(Contract, exclude_fields=["lease"])
field_permissions.register(ContractChange, exclude_fields=["contract"])
field_permissions.register(Collateral, exclude_fields=["contract"])
예제 #15
0
                                       related_name="+",
                                       null=True,
                                       blank=True,
                                       on_delete=models.PROTECT)

    # In Finnish: Päätöspäivämäärä
    decision_date = models.DateField(verbose_name=_("Decision date"),
                                     null=True,
                                     blank=True)

    # In Finnish: Pykälä
    section = models.CharField(verbose_name=_("Section"),
                               null=True,
                               blank=True,
                               max_length=255)

    recursive_get_related_skip_relations = ["basis_of_rent"]

    class Meta:
        verbose_name = pgettext_lazy("Model name", "Basis of rent decision")
        verbose_name_plural = pgettext_lazy("Model name",
                                            "Basis of rent decisions")


auditlog.register(BasisOfRent)

field_permissions.register(BasisOfRent)
field_permissions.register(BasisOfRentRate, exclude_fields=['basis_of_rent'])
field_permissions.register(BasisOfRentDecision,
                           exclude_fields=['basis_of_rent'])
예제 #16
0
    # In Finnish: 3. kutsu lähetetty
    third_call_sent = models.DateField(verbose_name=_("Third call sent"),
                                       null=True,
                                       blank=True)

    # In Finnish: Selite
    description = models.TextField(verbose_name=_("Description"),
                                   null=True,
                                   blank=True)

    # In Finnish: Päätös
    decision = models.ForeignKey('leasing.Decision',
                                 verbose_name=_("Decision"),
                                 null=True,
                                 blank=True,
                                 on_delete=models.PROTECT)

    class Meta:
        verbose_name = pgettext_lazy("Model name", "Contract change")
        verbose_name_plural = pgettext_lazy("Model name", "Contract changes")


auditlog.register(Contract)
auditlog.register(ContractChange)
auditlog.register(Collateral)

field_permissions.register(Contract, exclude_fields=['lease'])
field_permissions.register(ContractChange, exclude_fields=['contract'])
field_permissions.register(Collateral, exclude_fields=['contract'])
    # In Finnish: Latausaika
    uploaded_at = models.DateTimeField(auto_now_add=True,
                                       verbose_name=_("Time uploaded"))

    class Meta:
        verbose_name = pgettext_lazy(
            "Model name", "Infill development compensation attachment")
        verbose_name_plural = pgettext_lazy(
            "Model name", "Infill development compensation attachments")


auditlog.register(InfillDevelopmentCompensation)
auditlog.register(InfillDevelopmentCompensationLease)
auditlog.register(InfillDevelopmentCompensationDecision)
auditlog.register(InfillDevelopmentCompensationIntendedUse)
auditlog.register(InfillDevelopmentCompensationAttachment)

field_permissions.register(InfillDevelopmentCompensation, exclude_fields=[])
field_permissions.register(InfillDevelopmentCompensationLease,
                           exclude_fields=['infill_development_compensation'])
field_permissions.register(
    InfillDevelopmentCompensationDecision,
    exclude_fields=['infill_development_compensation_lease'])
field_permissions.register(
    InfillDevelopmentCompensationIntendedUse,
    exclude_fields=['infill_development_compensation_lease'])
field_permissions.register(
    InfillDevelopmentCompensationAttachment,
    exclude_fields=['infill_development_compensation_lease'])
예제 #18
0
파일: rent.py 프로젝트: igordavydsson/mvj
                                     blank=True)

    # In Finnish: Lukittu (Käyttäjä)
    locked_by = models.ForeignKey(User,
                                  verbose_name=_("Locked by"),
                                  null=True,
                                  blank=True,
                                  related_name='basis_of_rents_locked',
                                  on_delete=models.PROTECT)

    class Meta:
        verbose_name = pgettext_lazy("Model name", "Lease basis of rent")
        verbose_name_plural = pgettext_lazy("Model name",
                                            "Lease basis of rents")


auditlog.register(Rent)
auditlog.register(RentDueDate)
auditlog.register(FixedInitialYearRent)
auditlog.register(ContractRent)
auditlog.register(RentAdjustment)
auditlog.register(LeaseBasisOfRent)

field_permissions.register(
    Rent, exclude_fields=['lease', 'index_adjusted_rents', 'payable_rents'])
field_permissions.register(RentDueDate, exclude_fields=['rent'])
field_permissions.register(FixedInitialYearRent, exclude_fields=['rent'])
field_permissions.register(ContractRent, exclude_fields=['rent'])
field_permissions.register(RentAdjustment, exclude_fields=['rent'])
field_permissions.register(LeaseBasisOfRent, exclude_fields=['lease'])
예제 #19
0
파일: invoice.py 프로젝트: suutari-ai/mvj
                                   max_length=35)

    recursive_get_related_skip_relations = ["invoice"]

    class Meta:
        verbose_name = pgettext_lazy("Model name", "Invoice payment")
        verbose_name_plural = pgettext_lazy("Model name", "Invoice payments")


class BankHoliday(models.Model):
    day = models.DateField(verbose_name=_("Day"), unique=True, db_index=True)

    class Meta:
        verbose_name = pgettext_lazy("Model name", "Bank holiday")
        verbose_name_plural = pgettext_lazy("Model name", "Bank holidays")
        ordering = ("day", )

    def __str__(self):
        return str(self.day)


auditlog.register(Invoice)
auditlog.register(InvoiceNote)
auditlog.register(InvoiceRow)
auditlog.register(InvoicePayment)

field_permissions.register(Invoice, exclude_fields=["lease", "laskeexportlog"])
field_permissions.register(InvoiceNote, exclude_fields=["lease"])
field_permissions.register(InvoiceRow, exclude_fields=["invoice"])
field_permissions.register(InvoicePayment, exclude_fields=["invoice"])
예제 #20
0
    national_identification_number = models.CharField(
        verbose_name=_("National identification number"),
        max_length=255,
        null=True,
        blank=True)

    # In Finnish: Jaettava / Osoittaja
    share_numerator = models.PositiveIntegerField(verbose_name=_("Numerator"),
                                                  null=True,
                                                  blank=True)

    # In Finnish: Jakaja / Nimittäjä
    share_denominator = models.PositiveIntegerField(
        verbose_name=_("Denominator"), null=True, blank=True)

    class Meta(NameModel.Meta):
        verbose_name = pgettext_lazy("Model name", "Leasehold transfer party")
        verbose_name_plural = pgettext_lazy("Model name",
                                            "Leasehold transfer parties")
        ordering = ('-type', )

    def __str__(self):
        if self.share_numerator and self.share_denominator:
            return '{} {}/{}: {}'.format(self.type, self.share_numerator,
                                         self.share_denominator, self.name)
        return '{}: {}'.format(self.type, self.name)


field_permissions.register(LeaseholdTransfer)
field_permissions.register(LeaseholdTransferParty, exclude_fields=['transfer'])