コード例 #1
0
ファイル: views.py プロジェクト: agz1990/fabric-bolt
    def get_form(self, form_class):

        stage_configurations = self.stage.get_queryset_configurations()

        form = form_class(**self.get_form_kwargs())

        used_arg_names = []

        # We want to inject fields into the form for the configurations they've marked as prompt
        for config in stage_configurations:
            if config.task_argument and config.task_name != self.task_name:
                continue

            if not config.prompt_me_for_input:
                if config.task_argument:
                    used_arg_names.append(config.key)
                continue

            str_config_key = 'configuration_value_for_{}'.format(config.key)

            if config.data_type == config.BOOLEAN_TYPE:
                field = BooleanField(widget=Select(choices=((False, 'False'), (True, 'True'))))
                field.coerce=lambda x: x == 'True',
            elif config.data_type == config.NUMBER_TYPE:
                field = FloatField()
            else:
                field = CharField()

                if config.sensitive_value:
                    field.widget = PasswordInput()

                if config.task_argument:
                    used_arg_names.append(config.key)
                    field.label = 'Argument value for ' + config.key

            field.initial = config.value

            form.fields[str_config_key] = field
            form.helper.layout.fields.insert(len(form.helper.layout.fields)-1, str_config_key)

        task_details = backend.get_task_details(self.stage.project, self.task_name)

        for arg in task_details[2]:
            if isinstance(arg, tuple):
                name, default = arg
            else:
                name, default = arg, None

            if name in used_arg_names:
                continue

            str_config_key = 'configuration_value_for_{}'.format(name)

            field = CharField(label='Argument value for ' + name, initial=default)

            form.fields[str_config_key] = field
            form.helper.layout.fields.insert(len(form.helper.layout.fields)-1, str_config_key)

        return form
コード例 #2
0
ファイル: views.py プロジェクト: agz1990/fabric-bolt
    def dispatch(self, request, *args, **kwargs):
        self.project = get_object_or_404(models.Project, id=kwargs['project_id'])
        self.stage = get_object_or_404(models.Stage, id=self.kwargs['stage_id'], project=self.project)
        task_name = request.GET.get('task', None)
        task_details = backend.get_task_details(self.project, task_name)

        if task_details is None:
            messages.error(self.request, '"{}" is not a valid task.'. format(task_name))
            return HttpResponseRedirect(
                reverse('projects_stage_view', kwargs={'project_id': self.stage.project_id, 'pk': self.stage.pk})
            )

        self.task_name = task_details[0]
        self.task_description = task_details[1]

        return super(DeploymentCreate, self).dispatch(request, *args, **kwargs)
コード例 #3
0
ファイル: views.py プロジェクト: lukehuang/fabric-bolt
    def dispatch(self, request, *args, **kwargs):
        self.project = get_object_or_404(models.Project,
                                         id=kwargs['project_id'])
        self.stage = get_object_or_404(models.Stage,
                                       id=self.kwargs['stage_id'],
                                       project=self.project)
        task_name = request.GET.get('task', None)
        task_details = backend.get_task_details(self.project, task_name)

        if task_details is None:
            messages.error(self.request,
                           '"{}" is not a valid task.'.format(task_name))
            return HttpResponseRedirect(
                reverse('projects_stage_view',
                        kwargs={
                            'project_id': self.stage.project_id,
                            'pk': self.stage.pk
                        }))

        self.task_name = task_details[0]
        self.task_description = task_details[1]

        return super(DeploymentCreate, self).dispatch(request, *args, **kwargs)
コード例 #4
0
ファイル: views.py プロジェクト: lukehuang/fabric-bolt
    def get_form(self, form_class):

        stage_configurations = self.stage.get_queryset_configurations()

        form = form_class(**self.get_form_kwargs())

        used_arg_names = []

        # We want to inject fields into the form for the configurations they've marked as prompt
        for config in stage_configurations:
            if config.task_argument and config.task_name != self.task_name:
                continue

            if not config.prompt_me_for_input:
                if config.task_argument:
                    used_arg_names.append(config.key)
                continue

            str_config_key = 'configuration_value_for_{}'.format(config.key)

            if config.data_type == config.BOOLEAN_TYPE:
                field = BooleanField(widget=Select(choices=((False, 'False'),
                                                            (True, 'True'))),
                                     required=False)
                field.coerce = lambda x: x == 'True',
            elif config.data_type == config.NUMBER_TYPE:
                field = FloatField()
            else:
                field = CharField()

                if config.sensitive_value:
                    field.widget = PasswordInput()

                if config.task_argument:
                    used_arg_names.append(config.key)
                    field.label = 'Argument value for ' + config.key

            field.initial = config.value

            form.fields[str_config_key] = field
            form.helper.layout.fields.insert(
                len(form.helper.layout.fields) - 1, str_config_key)

        task_details = backend.get_task_details(self.stage.project,
                                                self.task_name)

        for arg in task_details[2]:
            if isinstance(arg, tuple):
                name, default = arg
            else:
                name, default = arg, None

            if name in used_arg_names:
                continue

            str_config_key = 'configuration_value_for_{}'.format(name)

            field = CharField(label='Argument value for ' + name,
                              initial=default)

            form.fields[str_config_key] = field
            form.helper.layout.fields.insert(
                len(form.helper.layout.fields) - 1, str_config_key)

        return form