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 = '.'
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 ]
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"
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') ]
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'])})
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(".")
def __init__(self, *args, **kw): super(SystemNotes, self).__init__(*args, **kw) self.id = HiddenField(name="id") self.note = TextArea(name='note', label=_(u'Note'))
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'}) ]