Esempio n. 1
0
 def __init__(self,*args,**kw):
     super(JobMatrixReport,self).__init__(*args, **kw)
     self.class_name = self.__class__.__name__
     self.nack_list = CheckBoxList("Hide naks",validator=self.default_validator)
     self.whiteboard = MultipleSelectField('whiteboard', label='Whiteboard', attrs={'size':5, 'class':'whiteboard'}, validator=self.default_validator)
     self.job_ids = TextArea('job_ids',label='Job ID', rows=7,cols=7, validator=self.default_validator)
     self.whiteboard_filter = TextField('whiteboard_filter', label='Filter by')
     self.whiteboard_filter_button = MyButton(name='do_filter', type='button')
     self.name='remote_form'
     self.action = '.'
Esempio n. 2
0
class CommentForm(Form):
    template = "bodhi.templates.commentform"
    submit_text = "Add Comment"
    fields = [
            TextArea(name='text', label='',
                     validator=validators.UnicodeString(),
                     rows=3, cols=40),
            HiddenField(name='title'),
            # We're currently hardcoding the karma radio buttons by hand in the
            # commentform template, because the RadioButtonList is ugly
    ]
Esempio n. 3
0
class BuildRootOverrideForm(Form):
    template = "bodhi.templates.overrideform"
    fields = [
            AutoCompleteField('builds', label='Build',
                              search_controller=url('/new/search'),
                              search_param='name', result_name='pkgs',
                              template='bodhi.templates.packagefield',
                              validator=AutoCompleteValidator()),
            TextArea('notes', validator=validators.UnicodeString(),
                     rows=13, cols=65),
            CalendarDatePicker('expiration', not_empty=False)
    ]
    submit_text = "Submit"
Esempio n. 4
0
class CommentCaptchaForm(Form):
    template = "bodhi.templates.captchacommentform"
    submit_text = "Add Comment"
    fields = [
            TextArea(name='text', label='',
                     validator=validators.All(
                         validators.NotEmpty(),
                         validators.UnicodeString()),
                     rows=3, cols=40),
            HiddenField(name='title',
                        validator=validators.All(
                            validators.NotEmpty(),
                            validators.UnicodeString())),
            TextField(name='author', label='Author',
                      default='E-Mail Address',
                      validator=validators.Email()),
            CaptchaField(name='captcha', label='Enter the code shown')
    ]
Esempio n. 5
0
class ReportProblemForm(RemoteForm):
    template = 'bkr.server.templates.report_problem_form'
    fields=[
        TextArea(name='description', label='Description of problem',
            validator=validators.NotEmpty())]
    desc = 'Report Problem'
    submit = Button(name='submit')
    submit_text = 'Report'
    member_widgets = ['submit']
    params = ['system', 'recipe']
    name = 'problem'
    on_success = 'success(\'Your problem has been reported, Thank you\')'
    on_failure = 'failure(\'We were unable to report your problem at this time\')'
 
    def update_params(self, d):
        super(ReportProblemForm, self).update_params(d)
        d['system'] = d['options']['system']
        d['recipe'] = d['options'].get('recipe')
        d['hidden_fields'] = []
        d['hidden_fields'].append(HiddenField(name='system', attrs= {'value' : d['system'] }))
        if d['recipe']:
            d['hidden_fields'].append(HiddenField(name='recipe_id', attrs={'value' : d['recipe'].id}))
        d['submit'].attrs.update({'onClick' :  "return ! system_action_remote_form_request('%s', %s, '%s');" % (
            d['options']['name'], jsonify_for_html(self.get_options(d)), d['action'])})
Esempio n. 6
0
class ExternalReportsController(RPCRoot):

    id = HiddenField(name='id')
    name = TextField(name='name',
                     label=_(u'Report Name'),
                     attrs={'maxlength': 100},
                     validator=validators.NotEmpty())
    url = TextField(name='url',
                    label=_(u'URL'),
                    attrs={'maxlength': 10000},
                    validator=validators.NotEmpty())
    description = TextArea(name='description',
                           label=_(u'Description'),
                           attrs={
                               'cols': '27',
                               'rows': '10'
                           })
    external_report_form = TableForm(
        fields=[id, name, url, description],
        submit_text=_(u'Save'),
    )

    delete_link = DeleteLinkWidgetForm()

    @expose('bkr.server.templates.external_reports')
    def index(self):
        all_reports = ExternalReport.query.all()
        if not all_reports:
            all_reports = []
        return dict(
            action=url('new'),
            delete_link=self.delete_link,
            title='External Reports',
            value=all_reports,
        )

    @identity.require(identity.in_group('admin'))
    @expose(template='bkr.server.templates.form-post')
    def new(self, **kw):
        return dict(
            form=self.external_report_form,
            action=url('save'),
            options=None,
            value=kw,
            title='New External Report',
        )

    @identity.require(identity.in_group("admin"))
    @expose('bkr.server.templates.form-post')
    def edit(self, id=None, **kw):
        return dict(
            form=self.external_report_form,
            action=url('save'),
            options={},
            title='Edit External Report',
            value=id and ExternalReport.by_id(id) or kw,
        )

    @identity.require(identity.in_group("admin"))
    @expose()
    def delete(self, id):
        report = ExternalReport.by_id(id)
        report_name = report.name
        session.delete(report)
        flash(_(u'Deleted report %s' % report_name))
        redirect('.')

    @identity.require(identity.in_group("admin"))
    @expose()
    @validate(external_report_form)
    @error_handler(edit)
    def save(self, **kw):
        if kw.get('id'):
            report = ExternalReport.by_id(kw['id'])
        else:
            report = ExternalReport()
        report.name = kw.get('name')
        report.url = kw.get('url')
        report.description = kw.get('description')
        session.add(report)
        flash(_(u"%s saved" % report.name))
        redirect(".")
Esempio n. 7
0
 def __init__(self, *args, **kw):
     super(SystemNotes, self).__init__(*args, **kw)
     self.id = HiddenField(name="id")
     self.note = TextArea(name='note', label=_(u'Note'))
Esempio n. 8
0
class NewUpdateForm(Form):
    template = "bodhi.templates.new"
    submit_text = "Save Update"
    update_types = config.get('update_types').split()
    request_types = ['Testing', 'Stable', 'None', None]
    fields = [
            AutoCompleteField('builds', label='Package',
                              search_controller=url('/new/search'),
                              search_param='name', result_name='pkgs',
                              template='bodhi.templates.packagefield',
                              validator=AutoCompleteValidator()),
            CheckBox('inheritance', label='Follow Build inheritance',
                     validator=validators.StringBool(),
                     default=False, attrs={'title' : 'Build Inheritance - '
                                                     'TODO'}),
            SingleSelectField('type_', label='Type', options=update_types,
                              validator=validators.OneOf(update_types)),
            SingleSelectField('request', options=request_types,
                              validator=validators.OneOf(request_types +
                                  [r.lower() for r in request_types if r]),
                              default='testing'),
            TextField('bugs', validator=BugValidator(),
                      attrs={'title' : 'Bug Numbers - A space or comma '
                                       'delimited list of bug numbers or '
                                       'aliases.  Example: #1234, 789 '
                                       'CVE-2008-0001'}),
            TextArea('notes', validator=validators.UnicodeString(),
                     rows=13, cols=65,
                     attrs={'title' : 'Advisory Notes - <p>Some details '
                                      'about this update that will appear in '
                                      'the notice.</p>'
                                      '<p><strong>Example:</strong><br />'
                                      'This is an update that fixes problems with '
                                      '**<strong>connecting to a share</strong>**.</p>'
                                      '<p>The following things *<em>break</em>*:</p>'
                                      '<p>* Browsing with `<code>gnome-app-install</code>`<br />'
                                      '* Emailing</p>'}),
            CheckBox(name='close_bugs', help_text='Automatically close bugs',
                     validator=validators.StringBool(),
                     default=True, attrs={'title' : 'Close Bugs - '
                                                    'Automatically close bugs '
                                                    'when this update is '
                                                    'pushed as stable'}),
            HiddenField('edited', default=None),
            CheckBox(name='suggest_reboot', label='Suggest Reboot',
                     validator=validators.StringBool(),
                     default=False, attrs={'title': 'Suggest Reboot - '
                                                    'Recommend that the user '
                                                    'restarts their machine '
                                                    'after installing this '
                                                    'update'}),
            CheckBox(name='autokarma', label='Enable karma automatism',
                     default=True, validator=validators.StringBool(),
                     attrs={'onchange':
                         'if ($("#form_autokarma").attr("checked")) {'
                            '$("#form_stable_karma").attr("disabled", false);'
                            'if ($("#form_stable_karma").attr("value") == 0) $("#form_stable_karma").attr("value", 3);'
                            '$("#form_unstable_karma").attr("disabled", false);'
                            'if ($("#form_unstable_karma").attr("value") == 0) $("#form_unstable_karma").attr("value", -3);'
                         ' } else { '
                            '$("#form_stable_karma").attr("disabled", true);'
                            '$("#form_unstable_karma").attr("disabled", true);'
                         '}',
                    'title': 'Karma Automatism - Enable update request '
                             'automation based on user feedback',
                            }),
            TextField('stable_karma', label='Threshold for pushing to stable',
                      validator=validators.Int(), default='3',
                      attrs={'title' : 'Stable Karma - The threshold for '
                             'automatically pushing this update to stable',
                             'size' : '1'}),
            TextField('unstable_karma', label='Threshold for unpushing',
                      validator=validators.Int(), default='-3',
                      attrs={'title' : 'Unstable Karma - The threshold for '
                             'automatically unpushing an unstable update',
                             'size' : '1'})
    ]