Skip to content

Co applicants

hypha.apply.funds.models.co_applicants

CoApplicantRole

Bases: TextChoices

VIEW class-attribute instance-attribute

VIEW = ('view', _('View'))

COMMENT class-attribute instance-attribute

COMMENT = ('comment', _('Comment'))

EDIT class-attribute instance-attribute

EDIT = ('edit', _('Edit'))

CoApplicantProjectPermission

Bases: TextChoices

PROJECT_DOCUMENT class-attribute instance-attribute

PROJECT_DOCUMENT = ('project_document', _('Project Document'))

CONTRACTING_DOCUMENT class-attribute instance-attribute

CONTRACTING_DOCUMENT = ('contracting_document', _('Contracting Document'))

INVOICES class-attribute instance-attribute

INVOICES = ('invoices', _('Invoices'))

REPORTS class-attribute instance-attribute

REPORTS = ('reports', _('Reports'))

CoApplicantInviteStatus

Bases: TextChoices

PENDING class-attribute instance-attribute

PENDING = ('pending', _('Pending'))

ACCEPTED class-attribute instance-attribute

ACCEPTED = ('accepted', _('Accepted'))

REJECTED class-attribute instance-attribute

REJECTED = ('rejected', _('Rejected'))

EXPIRED class-attribute instance-attribute

EXPIRED = ('expired', _('Expired'))

CoApplicantInvite

Bases: Model

submission class-attribute instance-attribute

submission = models.ForeignKey('funds.ApplicationSubmission', on_delete=models.CASCADE, related_name='co_applicant_invites')

invited_user_email class-attribute instance-attribute

invited_user_email = models.EmailField(_('invited user email'))

invited_by class-attribute instance-attribute

invited_by = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True, related_name='co_applicant_invites')

status class-attribute instance-attribute

status = models.CharField(_('status'), max_length=20, choices=CoApplicantInviteStatus, default=CoApplicantInviteStatus.PENDING)

role class-attribute instance-attribute

role = models.CharField(_('role'), choices=CoApplicantRole, default=CoApplicantRole.VIEW)

project_permission class-attribute instance-attribute

project_permission = models.JSONField(blank=True, null=True, default=list)

responded_on class-attribute instance-attribute

responded_on = models.DateTimeField(blank=True, null=True)

invited_at class-attribute instance-attribute

invited_at = models.DateTimeField(blank=True, null=True)

created_at class-attribute instance-attribute

created_at = models.DateTimeField(auto_now_add=True)

Meta

unique_together class-attribute instance-attribute
unique_together = ('submission', 'invited_user_email')
verbose_name class-attribute instance-attribute
verbose_name = _('co-applicant invite')
verbose_name_plural class-attribute instance-attribute
verbose_name_plural = _('co-applicant invites')

respond

respond(status)
Source code in hypha/apply/funds/models/co_applicants.py
def respond(self, status):
    self.status = status
    self.responded_on = timezone.now()
    self.save(update_fields=["status", "responded_on"])

CoApplicant

Bases: Model

submission class-attribute instance-attribute

submission = models.ForeignKey('funds.ApplicationSubmission', on_delete=models.CASCADE, related_name='co_applicants')

user class-attribute instance-attribute

user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='co_applicants')

invite class-attribute instance-attribute

invite = models.OneToOneField(CoApplicantInvite, on_delete=models.CASCADE, related_name='co_applicant')

role class-attribute instance-attribute

role = models.CharField(_('role'), choices=CoApplicantRole, default=CoApplicantRole.VIEW)

project_permission class-attribute instance-attribute

project_permission = models.JSONField(blank=True, null=True, default=list)

created_at class-attribute instance-attribute

created_at = models.DateTimeField(auto_now_add=True, null=True)

Meta

unique_together class-attribute instance-attribute
unique_together = ('submission', 'user')
verbose_name class-attribute instance-attribute
verbose_name = _('co-applicant')
verbose_name_plural class-attribute instance-attribute
verbose_name_plural = _('co-applicants')