Project
    
module-attribute
  
¶
PAF_STATUS_CHOICES = ((APPROVE, 'Approve'), (REQUEST_CHANGE, 'Request changes or more information'))
module-attribute
  
¶
PROJECT_STATUS_CHOICES = [(DRAFT, gettext_lazy('Draft')), (INTERNAL_APPROVAL, gettext_lazy('Internal approval')), (CONTRACTING, gettext_lazy('Contracting')), (INVOICING_AND_REPORTING, gettext_lazy('Invoicing and reporting')), (CLOSING, gettext_lazy('Closing')), (COMPLETE, gettext_lazy('Complete'))]
module-attribute
  
¶
PROJECT_PUBLIC_STATUSES = [(DRAFT, gettext_lazy('Draft')), (INTERNAL_APPROVAL, format(ORG_SHORT_NAME)), (CONTRACTING, gettext_lazy('Contracting')), (INVOICING_AND_REPORTING, gettext_lazy('Invoicing and reporting')), (CLOSING, gettext_lazy('Closing')), (COMPLETE, gettext_lazy('Complete'))]
    
              Bases: QuerySet
    
    
    
    
    
    
    
    
    
    Source code in hypha/apply/projects/models/project.py
              
    
    Source code in hypha/apply/projects/models/project.py
              
    
              Bases: BaseStreamForm, AccessFormData, Model
class-attribute
      instance-attribute
  
¶
    
class-attribute
      instance-attribute
  
¶
    
class-attribute
      instance-attribute
  
¶
    
class-attribute
      instance-attribute
  
¶
value = DecimalField(default=0, max_digits=20, decimal_places=2, validators=[MinValueValidator(limit_value=0)])
class-attribute
      instance-attribute
  
¶
    
class-attribute
      instance-attribute
  
¶
    
class-attribute
      instance-attribute
  
¶
status = TextField(choices=PROJECT_STATUS_CHOICES, default=DRAFT)
class-attribute
      instance-attribute
  
¶
form_data = JSONField(encoder=StreamFieldDataEncoder, default=dict)
class-attribute
      instance-attribute
  
¶
form_fields = StreamField(ProjectFormCustomFormFieldsBlock(), null=True, use_json_field=True)
class-attribute
      instance-attribute
  
¶
    
class-attribute
      instance-attribute
  
¶
activities = GenericRelation('activity.Activity', content_type_field='source_content_type', object_id_field='source_object_id', related_query_name='project')
class-attribute
      instance-attribute
  
¶
external_projectid = CharField(max_length=30, blank=True, help_text='ID of this project at integrated payment service.')
class-attribute
      instance-attribute
  
¶
external_project_information = JSONField(default=dict, help_text='More details of the project integrated at payment service.')
class-attribute
      instance-attribute
  
¶
    
class-attribute
      instance-attribute
  
¶
paf_reviews_meta_data = JSONField(default=dict, help_text='Reviewers role and their actions/comments')
class-attribute
      instance-attribute
  
¶
    
property
  
¶
    Return the title text for display across the site.
Use SUBMISSION_TITLE_TEXT_TEMPLATE setting to change format.
property
  
¶
    Determines if the user has updated the Project Form
property
  
¶
    Determines if the user has updated the SOW form
If there is no configured SOW, None will be returned
property
  
¶
    Wrapper to expose the pending approval state
We don't want to expose a "Sent for Approval" state to the end User so we infer it from the current status being "Committed" and the Project being locked.
class-attribute
      instance-attribute
  
¶
submission_form_class = PageStreamBaseForm
    
    
classmethod
  
¶
    Create a Project from the given submission.
Returns a new Project or the given ApplicationSubmissions existing Project.
Source code in hypha/apply/projects/models/project.py
              
    
    
    Source code in hypha/apply/projects/models/project.py
              
            
    Source code in hypha/apply/projects/models/project.py
              
            
    Source code in hypha/apply/projects/models/project.py
              
    
    
classmethod
  
¶
    Source code in hypha/apply/funds/models/mixins.py
              
classmethod
  
¶
    
    Source code in hypha/apply/funds/models/mixins.py
              
    
classmethod
  
¶
    Deserialize form data when loading from database.
Parameters:
- 
            db–Database connection 
- 
            field_names–List of field names being loaded 
- 
            values–Values for the fields 
Returns:
- 
          –
          Instance with deserialized form data 
Source code in hypha/apply/stream_forms/models.py
              
classmethod
  
¶
    Source code in hypha/apply/funds/models/mixins.py
              
    
    
    
    Source code in hypha/apply/funds/models/mixins.py
              
            
    Source code in hypha/apply/funds/models/mixins.py
              
    Source code in hypha/apply/funds/models/mixins.py
              
    Source code in hypha/apply/funds/models/mixins.py
              
    
    
    Source code in hypha/apply/funds/models/mixins.py
              
            
    
    
    
    Source code in hypha/apply/funds/models/mixins.py
              
    Source code in hypha/apply/funds/models/mixins.py
              
classmethod
  
¶
    Convert stored form data back into Python objects.
Parameters:
- 
            instance–Form instance 
- 
            form_data–Raw form data from database 
- 
            form_fields–Form field definitions 
Returns:
- 
          –
          Deserialized form data 
Source code in hypha/apply/stream_forms/models.py
              
    Get the form field definitions.
Returns:
- 
          –
          StreamField containing form field blocks 
Raises:
- 
              AttributeError–If form_fields attribute is not defined on instance 
Source code in hypha/apply/stream_forms/models.py
              
    Generate form fields with applied logic and grouping.
Parameters:
- 
            draft–Whether this is a draft form. When True, fields that are not marked as ApplicationMustIncludeFieldBlock will have their required flag set to False, allowing incomplete form submissions to be saved as drafts. 
- 
            form_data–Existing form data 
- 
            user–User completing the form 
Returns:
- 
          –
          OrderedDict of form fields 
Source code in hypha/apply/stream_forms/models.py
              | 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 |  | 
    Dynamically creates and returns a form class based on the field configuration.
Creates a new form class that inherits from submission_form_class (PageStreamBaseForm) and includes all the dynamically generated form fields.
Parameters:
- 
            draft–Whether this is a draft form 
- 
            form_data–Existing form data for pre-populating form fields 
- 
            user–User completing the form, used for auto-populating user fields. 
Returns:
- 
          –
          A dynamically generated form class 
Source code in hypha/apply/stream_forms/models.py
              
    
              Bases: BaseStreamForm, AccessFormData, Model
class-attribute
      instance-attribute
  
¶
project = OneToOneField(Project, related_name='sow', on_delete=CASCADE)
class-attribute
      instance-attribute
  
¶
form_data = JSONField(encoder=StreamFieldDataEncoder, default=dict)
class-attribute
      instance-attribute
  
¶
form_fields = StreamField(ProjectFormCustomFormFieldsBlock(), null=True, use_json_field=True)
class-attribute
      instance-attribute
  
¶
submission_form_class = PageStreamBaseForm
class-attribute
      instance-attribute
  
¶
    
classmethod
  
¶
    Source code in hypha/apply/funds/models/mixins.py
              
classmethod
  
¶
    
    Source code in hypha/apply/funds/models/mixins.py
              
    
classmethod
  
¶
    Deserialize form data when loading from database.
Parameters:
- 
            db–Database connection 
- 
            field_names–List of field names being loaded 
- 
            values–Values for the fields 
Returns:
- 
          –
          Instance with deserialized form data 
Source code in hypha/apply/stream_forms/models.py
              
classmethod
  
¶
    Source code in hypha/apply/funds/models/mixins.py
              
    
    
    
    Source code in hypha/apply/funds/models/mixins.py
              
            
    Source code in hypha/apply/funds/models/mixins.py
              
    Source code in hypha/apply/funds/models/mixins.py
              
    Source code in hypha/apply/funds/models/mixins.py
              
    
    
    Source code in hypha/apply/funds/models/mixins.py
              
            
    
    
    
    Source code in hypha/apply/funds/models/mixins.py
              
    Source code in hypha/apply/funds/models/mixins.py
              
classmethod
  
¶
    Convert stored form data back into Python objects.
Parameters:
- 
            instance–Form instance 
- 
            form_data–Raw form data from database 
- 
            form_fields–Form field definitions 
Returns:
- 
          –
          Deserialized form data 
Source code in hypha/apply/stream_forms/models.py
              
    Get the form field definitions.
Returns:
- 
          –
          StreamField containing form field blocks 
Raises:
- 
              AttributeError–If form_fields attribute is not defined on instance 
Source code in hypha/apply/stream_forms/models.py
              
    Generate form fields with applied logic and grouping.
Parameters:
- 
            draft–Whether this is a draft form. When True, fields that are not marked as ApplicationMustIncludeFieldBlock will have their required flag set to False, allowing incomplete form submissions to be saved as drafts. 
- 
            form_data–Existing form data 
- 
            user–User completing the form 
Returns:
- 
          –
          OrderedDict of form fields 
Source code in hypha/apply/stream_forms/models.py
              | 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 |  | 
    Dynamically creates and returns a form class based on the field configuration.
Creates a new form class that inherits from submission_form_class (PageStreamBaseForm) and includes all the dynamically generated form fields.
Parameters:
- 
            draft–Whether this is a draft form 
- 
            form_data–Existing form data for pre-populating form fields 
- 
            user–User completing the form, used for auto-populating user fields. 
Returns:
- 
          –
          A dynamically generated form class 
Source code in hypha/apply/stream_forms/models.py
              
    
              Bases: BaseStreamForm, Model
class-attribute
      instance-attribute
  
¶
form_fields = StreamField(ProjectFormCustomFormFieldsBlock(), use_json_field=True)
class-attribute
      instance-attribute
  
¶
    
class-attribute
      instance-attribute
  
¶
submission_form_class = PageStreamBaseForm
class-attribute
      instance-attribute
  
¶
    
classmethod
  
¶
    Deserialize form data when loading from database.
Parameters:
- 
            db–Database connection 
- 
            field_names–List of field names being loaded 
- 
            values–Values for the fields 
Returns:
- 
          –
          Instance with deserialized form data 
Source code in hypha/apply/stream_forms/models.py
              
classmethod
  
¶
    Convert stored form data back into Python objects.
Parameters:
- 
            instance–Form instance 
- 
            form_data–Raw form data from database 
- 
            form_fields–Form field definitions 
Returns:
- 
          –
          Deserialized form data 
Source code in hypha/apply/stream_forms/models.py
              
    Get the form field definitions.
Returns:
- 
          –
          StreamField containing form field blocks 
Raises:
- 
              AttributeError–If form_fields attribute is not defined on instance 
Source code in hypha/apply/stream_forms/models.py
              
    Generate form fields with applied logic and grouping.
Parameters:
- 
            draft–Whether this is a draft form. When True, fields that are not marked as ApplicationMustIncludeFieldBlock will have their required flag set to False, allowing incomplete form submissions to be saved as drafts. 
- 
            form_data–Existing form data 
- 
            user–User completing the form 
Returns:
- 
          –
          OrderedDict of form fields 
Source code in hypha/apply/stream_forms/models.py
              | 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 |  | 
    Dynamically creates and returns a form class based on the field configuration.
Creates a new form class that inherits from submission_form_class (PageStreamBaseForm) and includes all the dynamically generated form fields.
Parameters:
- 
            draft–Whether this is a draft form 
- 
            form_data–Existing form data for pre-populating form fields 
- 
            user–User completing the form, used for auto-populating user fields. 
Returns:
- 
          –
          A dynamically generated form class 
Source code in hypha/apply/stream_forms/models.py
              
    
              Bases: ProjectBaseStreamForm
class-attribute
      instance-attribute
  
¶
submission_form_class = PageStreamBaseForm
class-attribute
      instance-attribute
  
¶
    
class-attribute
      instance-attribute
  
¶
form_fields = StreamField(ProjectFormCustomFormFieldsBlock(), use_json_field=True)
class-attribute
      instance-attribute
  
¶
    
classmethod
  
¶
    Deserialize form data when loading from database.
Parameters:
- 
            db–Database connection 
- 
            field_names–List of field names being loaded 
- 
            values–Values for the fields 
Returns:
- 
          –
          Instance with deserialized form data 
Source code in hypha/apply/stream_forms/models.py
              
classmethod
  
¶
    Convert stored form data back into Python objects.
Parameters:
- 
            instance–Form instance 
- 
            form_data–Raw form data from database 
- 
            form_fields–Form field definitions 
Returns:
- 
          –
          Deserialized form data 
Source code in hypha/apply/stream_forms/models.py
              
    Get the form field definitions.
Returns:
- 
          –
          StreamField containing form field blocks 
Raises:
- 
              AttributeError–If form_fields attribute is not defined on instance 
Source code in hypha/apply/stream_forms/models.py
              
    Generate form fields with applied logic and grouping.
Parameters:
- 
            draft–Whether this is a draft form. When True, fields that are not marked as ApplicationMustIncludeFieldBlock will have their required flag set to False, allowing incomplete form submissions to be saved as drafts. 
- 
            form_data–Existing form data 
- 
            user–User completing the form 
Returns:
- 
          –
          OrderedDict of form fields 
Source code in hypha/apply/stream_forms/models.py
              | 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 |  | 
    Dynamically creates and returns a form class based on the field configuration.
Creates a new form class that inherits from submission_form_class (PageStreamBaseForm) and includes all the dynamically generated form fields.
Parameters:
- 
            draft–Whether this is a draft form 
- 
            form_data–Existing form data for pre-populating form fields 
- 
            user–User completing the form, used for auto-populating user fields. 
Returns:
- 
          –
          A dynamically generated form class 
Source code in hypha/apply/stream_forms/models.py
              
    
              Bases: ProjectBaseStreamForm
class-attribute
      instance-attribute
  
¶
submission_form_class = PageStreamBaseForm
class-attribute
      instance-attribute
  
¶
    
class-attribute
      instance-attribute
  
¶
form_fields = StreamField(ProjectFormCustomFormFieldsBlock(), use_json_field=True)
class-attribute
      instance-attribute
  
¶
    
classmethod
  
¶
    Deserialize form data when loading from database.
Parameters:
- 
            db–Database connection 
- 
            field_names–List of field names being loaded 
- 
            values–Values for the fields 
Returns:
- 
          –
          Instance with deserialized form data 
Source code in hypha/apply/stream_forms/models.py
              
classmethod
  
¶
    Convert stored form data back into Python objects.
Parameters:
- 
            instance–Form instance 
- 
            form_data–Raw form data from database 
- 
            form_fields–Form field definitions 
Returns:
- 
          –
          Deserialized form data 
Source code in hypha/apply/stream_forms/models.py
              
    Get the form field definitions.
Returns:
- 
          –
          StreamField containing form field blocks 
Raises:
- 
              AttributeError–If form_fields attribute is not defined on instance 
Source code in hypha/apply/stream_forms/models.py
              
    Generate form fields with applied logic and grouping.
Parameters:
- 
            draft–Whether this is a draft form. When True, fields that are not marked as ApplicationMustIncludeFieldBlock will have their required flag set to False, allowing incomplete form submissions to be saved as drafts. 
- 
            form_data–Existing form data 
- 
            user–User completing the form 
Returns:
- 
          –
          OrderedDict of form fields 
Source code in hypha/apply/stream_forms/models.py
              | 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 |  | 
    Dynamically creates and returns a form class based on the field configuration.
Creates a new form class that inherits from submission_form_class (PageStreamBaseForm) and includes all the dynamically generated form fields.
Parameters:
- 
            draft–Whether this is a draft form 
- 
            form_data–Existing form data for pre-populating form fields 
- 
            user–User completing the form, used for auto-populating user fields. 
Returns:
- 
          –
          A dynamically generated form class 
Source code in hypha/apply/stream_forms/models.py
              
    
              Bases: ProjectBaseStreamForm
An Applicant Report Form can be attached to a Fund to collect reports from Applicants aka Grantees during the Project. It is only relevant for accepted or granted Submissions which is why it is attached to Project. It is similar to the other Forms (PAF, SOW) in that it uses StreamForm to allow maximum flexibility in form creation. See Also ReportVersion where the fields from the form get copied and the response data gets filled in.
class-attribute
      instance-attribute
  
¶
submission_form_class = PageStreamBaseForm
class-attribute
      instance-attribute
  
¶
    
class-attribute
      instance-attribute
  
¶
form_fields = StreamField(ProjectFormCustomFormFieldsBlock(), use_json_field=True)
class-attribute
      instance-attribute
  
¶
    
classmethod
  
¶
    Deserialize form data when loading from database.
Parameters:
- 
            db–Database connection 
- 
            field_names–List of field names being loaded 
- 
            values–Values for the fields 
Returns:
- 
          –
          Instance with deserialized form data 
Source code in hypha/apply/stream_forms/models.py
              
classmethod
  
¶
    Convert stored form data back into Python objects.
Parameters:
- 
            instance–Form instance 
- 
            form_data–Raw form data from database 
- 
            form_fields–Form field definitions 
Returns:
- 
          –
          Deserialized form data 
Source code in hypha/apply/stream_forms/models.py
              
    Get the form field definitions.
Returns:
- 
          –
          StreamField containing form field blocks 
Raises:
- 
              AttributeError–If form_fields attribute is not defined on instance 
Source code in hypha/apply/stream_forms/models.py
              
    Generate form fields with applied logic and grouping.
Parameters:
- 
            draft–Whether this is a draft form. When True, fields that are not marked as ApplicationMustIncludeFieldBlock will have their required flag set to False, allowing incomplete form submissions to be saved as drafts. 
- 
            form_data–Existing form data 
- 
            user–User completing the form 
Returns:
- 
          –
          OrderedDict of form fields 
Source code in hypha/apply/stream_forms/models.py
              | 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 |  | 
    Dynamically creates and returns a form class based on the field configuration.
Creates a new form class that inherits from submission_form_class (PageStreamBaseForm) and includes all the dynamically generated form fields.
Parameters:
- 
            draft–Whether this is a draft form 
- 
            form_data–Existing form data for pre-populating form fields 
- 
            user–User completing the form, used for auto-populating user fields. 
Returns:
- 
          –
          A dynamically generated form class 
Source code in hypha/apply/stream_forms/models.py
              
    
              Bases: Orderable, ClusterableModel
class-attribute
      instance-attribute
  
¶
user_roles = ParentalManyToManyField(Group, verbose_name=gettext_lazy('user groups'), help_text=gettext_lazy("Only selected group's users will be listed for this ProjectFormReviewerRole"), related_name='paf_reviewers_roles')
class-attribute
      instance-attribute
  
¶
    
class-attribute
      instance-attribute
  
¶
    
    
              Bases: Orderable, ClusterableModel
class-attribute
      instance-attribute
  
¶
    
class-attribute
      instance-attribute
  
¶
relation = CharField(max_length=2, choices=choices, default=BEFORE)
class-attribute
      instance-attribute
  
¶
panels = [FieldPanel('reminder_days', heading=gettext_lazy('Number of days')), FieldPanel('relation', heading=gettext_lazy('Relation to report due date'))]
    
              Bases: BaseSiteSetting, ClusterableModel
class-attribute
      instance-attribute
  
¶
    
class-attribute
      instance-attribute
  
¶
    
class-attribute
      instance-attribute
  
¶
    
class-attribute
      instance-attribute
  
¶
paf_approval_sequential = BooleanField(default=True, help_text='Uncheck it to approve project parallelly')
class-attribute
      instance-attribute
  
¶
panels = [FieldPanel('staff_gp_email'), FieldPanel('contracting_gp_email'), FieldPanel('finance_gp_email'), MultiFieldPanel([FieldPanel('paf_approval_sequential', heading='Approve Project Sequentially'), InlinePanel('paf_reviewers_roles', label=gettext_lazy('Project Form Reviewers Roles'))], heading=gettext_lazy('Project Reviewers Roles'), help_text=gettext_lazy("Reviewer Roles are needed to move projects to 'Internal Approval' stage. Delete all roles to skip internal approval process and to move all internal approval projects back to the 'Draft' stage with all approvals removed.")), InlinePanel('reminder_frequencies', label=gettext_lazy('Report reminder frequency'), heading=gettext_lazy('Report reminder frequency'), help_text=gettext_lazy('Set up a cron job to run `notify_report_due.py`. The script will use these reminder settings.'))]
    
    
    
              Bases: Model
class-attribute
      instance-attribute
  
¶
    
class-attribute
      instance-attribute
  
¶
    
class-attribute
      instance-attribute
  
¶
file = FileField(upload_to=contract_path, storage=PrivateStorage())
class-attribute
      instance-attribute
  
¶
    
class-attribute
      instance-attribute
  
¶
    
class-attribute
      instance-attribute
  
¶
    
class-attribute
      instance-attribute
  
¶
    
    
    
              Bases: Model
class-attribute
      instance-attribute
  
¶
category = ForeignKey('DocumentCategory', null=True, on_delete=CASCADE, related_name='packet_files')
class-attribute
      instance-attribute
  
¶
    
class-attribute
      instance-attribute
  
¶
document = FileField(upload_to=document_path, storage=PrivateStorage())
class-attribute
      instance-attribute
  
¶
    
    
              Bases: Model
class-attribute
      instance-attribute
  
¶
category = ForeignKey('ContractDocumentCategory', null=True, on_delete=CASCADE, related_name='contract_packet_files')
class-attribute
      instance-attribute
  
¶
    
class-attribute
      instance-attribute
  
¶
document = FileField(upload_to=contract_document_path, storage=PrivateStorage())
class-attribute
      instance-attribute
  
¶
    
    
              Bases: Model
class-attribute
      instance-attribute
  
¶
    
class-attribute
      instance-attribute
  
¶
template = FileField(upload_to=document_template_path, storage=PrivateStorage(), blank=True, null=True)
class-attribute
      instance-attribute
  
¶
    
    
              Bases: Model
class-attribute
      instance-attribute
  
¶
    
class-attribute
      instance-attribute
  
¶
document_access_view = ManyToManyField(Group, limit_choices_to={'name__in': ROLES_ORG_FACULTY}, verbose_name=gettext_lazy('Allow document access for groups'), help_text=gettext_lazy("Only selected group's users can access the document"), related_name='contract_document_category', blank=True)
class-attribute
      instance-attribute
  
¶
template = FileField(upload_to=contract_document_template_path, storage=PrivateStorage(), blank=True, null=True)
class-attribute
      instance-attribute
  
¶
panels = [FieldPanel('name'), FieldPanel('required'), FieldPanel('document_access_view', widget=CheckboxSelectMultiple), FieldPanel('template')]
class-attribute
      instance-attribute
  
¶
base_form_class = ContractDocumentCategoryAdminForm