def __init__(self, *args, **kwargs): user = kwargs.pop("user", None) super(ProjectAccessControlForm, self).__init__(*args, **kwargs) # Changing some field settings based on the project attr and the # request.DATA project = kwargs.get("instance", None) outsource_required = False if args: access_control_initial = args[0]["access_control"] if "outsourced_access" == access_control_initial: outsource_required = True elif project: if project.anyone_submit: access_control_initial = "free_for_all" elif project.outsource: access_control_initial = "outsourced_access" outsource_required = True else: access_control_initial = "limited_access" self.fields["access_control"].initial = access_control_initial self.fields["outsource"].required = outsource_required # Filtering project list if user: self.fields["outsource"].queryset = ( Project.objects.for_user(user).exclude(slug=project.slug).only("id", "name") ) else: projects = self.fields["outsource"].queryset.exclude(slug=project.slug).exclude(private=True) self.fields["outsource"].queryset = projects project_access_control_form_start.send(sender=ProjectAccessControlForm, instance=self, project=project)
def __init__(self, *args, **kwargs): user = kwargs.pop('user', None) super(ProjectAccessControlForm, self).__init__(*args, **kwargs) # Changing some field settings based on the project attr and the # request.DATA project = kwargs.get('instance', None) outsource_required = False if args: access_control_initial = args[0]['access_control'] if 'outsourced_access' == access_control_initial: outsource_required = True elif project: if project.anyone_submit: access_control_initial = 'free_for_all' elif project.outsource: access_control_initial = 'outsourced_access' outsource_required = True else: access_control_initial = 'limited_access' self.fields['access_control'].initial = access_control_initial self.fields['outsource'].required = outsource_required # Filtering project list if user: self.fields["outsource"].queryset = Project.objects.for_user( user).exclude(slug=project.slug) else: projects = self.fields["outsource"].queryset.\ exclude(slug=project.slug).exclude(private=True) self.fields["outsource"].queryset = projects project_access_control_form_start.send(sender=ProjectAccessControlForm, instance=self, project=project)
def __init__(self, *args, **kwargs): self.user = kwargs.pop('user', None) super(ProjectAccessControlForm, self).__init__(*args, **kwargs) self.project = kwargs.get('instance', None) outsource_required = False access_control_required = True project_type_initial = None access_control_initial = None self.hub_request = self.project.hub_request # Disable all form fields if there is a open hub request if self.hub_request: for f in self.fields: self.fields[f].widget.attrs['disabled'] = 'disabled' if args: if 'outsourced' == args[0].get('project_type'): outsource_required = True access_control_required = False elif self.project: if self.project.anyone_submit: access_control_initial = 'free_for_all' else: access_control_initial = 'limited_access' if self.project.outsource: access_control_initial = None project_type_initial = 'outsourced' outsource_required = True access_control_required = False else: if not access_control_initial: access_control_initial = 'limited_access' if self.project.is_hub: project_type_initial = 'hub' else: project_type_initial = 'typical' if project_type_initial: self.fields['project_type'].initial = project_type_initial if access_control_initial: self.fields['access_control'].initial = access_control_initial self.fields['access_control'].required = access_control_required self.fields['outsource'].required = outsource_required self.fields['outsource'].label = _('Outsource access to') ## Filtering project list if self.user: projects = Project.objects.for_user(self.user).filter( is_hub=True).exclude(id=self.project.id).only('id', 'name') else: projects = Project.objects.filter(is_hub=True).exclude( models.Q(id=self.project.id) | models.Q(private=True)) self.fields["outsource"].queryset = projects project_access_control_form_start.send(sender=ProjectAccessControlForm, instance=self, project=self.project)
def __init__(self, *args, **kwargs): self.user = kwargs.pop('user', None) super(ProjectAccessControlForm, self).__init__(*args, **kwargs) self.project = kwargs.get('instance', None) outsource_required = False access_control_required = True project_type_initial = None access_control_initial = None self.hub_request = self.project.hub_request # Disable all form fields if there is a open hub request if self.hub_request: for f in self.fields: self.fields[f].widget.attrs['disabled'] = 'disabled' if args: if 'outsourced' == args[0].get('project_type'): outsource_required = True access_control_required = False elif self.project: if self.project.anyone_submit: access_control_initial = 'free_for_all' else: access_control_initial = 'limited_access' if self.project.outsource: access_control_initial = None project_type_initial = 'outsourced' outsource_required = True access_control_required = False else: if not access_control_initial: access_control_initial = 'limited_access' if self.project.is_hub: project_type_initial = 'hub' else: project_type_initial = 'typical' if project_type_initial: self.fields['project_type'].initial = project_type_initial if access_control_initial: self.fields['access_control'].initial = access_control_initial self.fields['access_control'].required = access_control_required self.fields['outsource'].required = outsource_required self.fields['outsource'].label = _('Outsource access to') ## Filtering project list if self.user: projects = Project.objects.for_user(self.user).filter(is_hub=True ).exclude(id=self.project.id).only('id', 'name') else: projects = Project.objects.filter(is_hub=True ).exclude(models.Q(id=self.project.id) | models.Q(private=True)) self.fields["outsource"].queryset = projects project_access_control_form_start.send(sender=ProjectAccessControlForm, instance=self, project=self.project)