Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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)
Example #4
0
    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)