def resolve_value(self, value): """ Handles displayed value formatting. Args: value: List of ccReg.RequestProperty objects. Returns: WebWidget subclass representing the HTML content of the field. """ if not value: return u'' vals = self._process_negations(value) inprops, outprops = self._separate_properties(vals) def cmp_props(a, b): if a['name'] > b['name']: return 1 elif a['name'] == b['name']: return 0 else: return -1 table_in = table([self._format_property(prop) for prop in inprops]) if \ inprops else span() table_out = table([self._format_property(prop) for prop in outprops]) if \ outprops else span() return div(h4("input", attr(style="margin: 1px 1px 1px 1px;")), table_in, hr(), h4("output", attr(style="margin: 1px 1px 1px 1px;")), table_out)
def __init__(self, context = None): context = context or {} if not context.get('title'): context['title'] = 'Daphne' if context.get('user') and context.get('corba_server'): context['title'] += ' - %s' % context.get('corba_server') super(BaseSite, self).__init__(context) c = self.context self.add_media_files('/css/basesite.css') self.header.add( div(attr(id='branding'), save(self, 'branding'), div(attr(id='user_tools'), save(self, 'user_tools'))), div( div(attr(id='menu_container'), save(self, 'menu_container')), div(attr(id='right_menu_container'), save(self, 'right_menu_container'), ) ) ) self.branding.add(h1('Daphne')) if c.get('user') and c.get('corba_server'): self.user_tools.add(span('Server: %s' % c.corba_server), '|', span('User: %s(%s %s)' % (c.user.login, c.user.firstname, c.user.surname)), '|', a(attr(href="/logout"), 'Log out')) if c.get('main'): self.main.add(c.main)
def build_or_row(self): return td( attr(cssc='or_cell', colspan=self.columns_count), input(attr( type="button", value="OR-", onclick="removeOr(this)", style="float: left;")), div(attr(style="padding-top: 0.3em"), 'OR'))
def layout_fields(self): section_name = self.section_spec[0] section_id = self.section_spec[1] link_id = "%s_display" % section_id self.add(div( attr(style="text-align: right; padding-right: 1em;"), a( "hide", attr(href="JavaScript:void();"), onclick="show_hide('%s', '%s');" % (section_id, link_id), id=link_id))) self.add(table(tagid("table"), id=section_id)) self.add(legend(section_name)) fields_in_section = self.get_fields() hidden_fields = [] for field in fields_in_section: if field.is_hidden: hidden_fields.append(field) continue label_str = self.get_label_name(field) errors = self.form.errors.get(field.name_orig, None) self.table.add(tr( td(label_str), td(errors, field))) self.add(hidden_fields)
def make_content(self): self.content = [] oid = self._value if oid is not None: self.add(a(attr(href=f_urls[f_enum_name[oid.type]] + u'detail/?id=' + unicode(oid.id)), oid.handle)) else: self.add(div(attr(cssc='field_empty')))
def make_content(self): self.content = [] if self.choices: for value, caption in self.choices: if unicode(value) in self.value: self.add(option(attr(value=value, selected='selected'), caption)) else: self.add(option(attr(value=value), caption))
def make_content(self): self.content = [] if self.object_type_name is None: # this cannot be in constructor, becouse self.owner_detail is not known at construction time self.object_type_name = self.owner_detail.get_object_name() if self.value[self.handle_name] == '': self.add(div(attr(cssc='field_empty'))) self.add(a(attr(href=f_urls[self.object_type_name] + 'detail/?id=%s' % self.value[self.id_name]), self.value[self.handle_name]))
def make_content(self): self.content = [] if self.choices: for value, caption in self.choices: if unicode(value) in self.value: self.add( option(attr(value=value, selected='selected'), caption)) else: self.add(option(attr(value=value), caption))
def make_content(self): self.content = [] if self.value: cssc = 'disclose' + unicode(bool(self.value[1])) # => 'discloseTrue' or 'discloseFalse' if self.value[0] == '': self.add(div(attr(cssc=cssc + ' field_empty'))) else: self.add(span(attr(cssc=cssc), self.value[0])) else: self.add(div(attr(cssc='field_empty'))) # in case no access (from permissions)
def create_layout(self): self.add(tbody(tagid('tbody'))) form_count = len(self.form.forms) for i, inner_form in enumerate(self.form.forms): if i > 0 and i < form_count: self.tbody.add(tr(attr(cssc='or_row'), self.build_or_row())) self.tbody.add(tr(td(inner_form))) self.tbody.add(self.get_submit_row()) self.tbody.add(script(attr(type='text/javascript'), noesc(self.union_form_js()))) debug('After create unionlayout')
def make_content(self): self.content = [] if not self._value: self.add(div(attr(cssc='field_empty'))) else: self.add(a(attr( href=( f_urls[f_enum_name[ ccReg.FT_FILE]] + u'detail/?id=' + unicode(self._value))), self.handle))
def make_content(self): self.content = [] if not self._value: self.add(div(attr(cssc='field_empty'))) else: self.add( a( attr(href=(f_urls[f_enum_name[ccReg.FT_FILE]] + u'detail/?id=' + unicode(self._value))), self.handle))
def _render_col(self, col_num, col): if col.get('icon'): val = img(attr(src=col['icon'])) else: val = col['value'] if col.get('url'): val = a(attr(href=col['url']), val) return td(attr(cssc=col.get('cssc')), val)
def make_content(self): self.content = [] oid = self._value if oid is not None: self.add( a( attr(href=f_urls[f_enum_name[oid.type]] + u'detail/?id=' + unicode(oid.id)), oid.handle)) else: self.add(div(attr(cssc='field_empty')))
def __init__(self, context = None): super(SetInZoneStatusPage, self).__init__(context) c = self.context self.main.add(h2(_('Set InZone Status'))) if c.get('handle'): self.main.add(h3(_('Domain'), c.handle)) if c.get('success') and c.success: self.main.add(pre(attr(style='color:green;'), _("Function returns True."))) if c.get('error'): self.main.add(pre(attr(style='color:red;'), c.error))
def create_layout(self): self.add(tbody(tagid('tbody'))) form_count = len(self.form.forms) for i, inner_form in enumerate(self.form.forms): if i > 0 and i < form_count: self.tbody.add(tr(attr(cssc='or_row'), self.build_or_row())) self.tbody.add(tr(td(inner_form))) self.tbody.add(self.get_submit_row()) self.tbody.add( script(attr(type='text/javascript'), noesc(self.union_form_js()))) debug('After create unionlayout')
def make_content(self): self.content = [] if self.tag == u'select': self.add(attr(multiple=u"multiple")) if self.choices: for value, caption in self.choices: if unicode(value) in self.value: self.add( option(attr(value=value, selected='selected'), caption)) else: self.add(option(attr(value=value), caption))
def make_content(self): self.content = [] if self.value: cssc = 'disclose' + unicode(bool( self.value[1])) # => 'discloseTrue' or 'discloseFalse' if self.value[0] == '': self.add(div(attr(cssc=cssc + ' field_empty'))) else: self.add(span(attr(cssc=cssc), self.value[0])) else: self.add(div(attr( cssc='field_empty'))) # in case no access (from permissions)
def make_content(self): self.content = [] if self.object_type_name is None: # this cannot be in constructor, becouse self.owner_detail is not known at construction time self.object_type_name = self.owner_detail.get_object_name() if self.value[self.handle_name] == '': self.add(div(attr(cssc='field_empty'))) self.add( a( attr(href=f_urls[self.object_type_name] + 'detail/?id=%s' % self.value[self.id_name]), self.value[self.handle_name]))
def __init__(self, context=None): super(DomainFilterPage, self).__init__(context) c = self.context if hasattr(self.main, 'exports'): self.main.exports.add( p( _('Export for out-of-zone notification'), a( attr(href='?txt=1&%s' % self.NOTIFICATION_EXPORT_COLUMNS_QUERY), 'TXT'), ',', a( attr(href='?csv=1&%s' % self.NOTIFICATION_EXPORT_COLUMNS_QUERY), 'CSV')))
def _render_keyset(self, keyset_detail): registrar_detail = keyset_detail.fields.get("registrar").current_field.inner_detail # registrar of keyset handle_field = keyset_detail.fields["handle_url"] registrar_field = registrar_detail.fields["handle_url"] admins_field = keyset_detail.fields["admins"] dsrecords_field = keyset_detail.fields["dsrecords"] dnskeys_field = keyset_detail.fields["dnskeys"] handle_label = self.get_label_name(handle_field) registrar_label = self.get_label_name(_("Registrar")) admins_label = self.get_label_name(_("Tech. contacts")) dsrecords_label = self.get_label_name(_("DS records")) dnskeys_label = self.get_label_name(_("DNSKeys")) self.add(tr(td(attr(cssc="left_label"), handle_label), td(handle_field))) self.add(tr(td(attr(cssc="left_label"), registrar_label), td(registrar_field))) for i, admin_detail in enumerate(admins_field.current_field.inner_details): row = tr() if i == 0: row.add( td(attr(cssc="left_label", rowspan=len(admins_field.current_field.inner_details)), admins_label) ) email_part = "" if admin_detail.fields["email"].value: email_part = [", ", admin_detail.fields["email"]] row.add(td(attr(enclose_content=True), admin_detail.fields["handle_url"], email_part)) self.add(row) for i, dsrecord_detail in enumerate(dsrecords_field.current_field.inner_details): row = tr() if i == 0: row.add( td( attr(cssc="left_label", rowspan=len(dsrecords_field.current_field.inner_details)), dsrecords_label, ) ) cell = td(attr(enclose_content=True)) cell.add(dsrecord_detail.fields["keyTag"]) cell.add(dsrecord_detail.fields["digest"], " (", dsrecord_detail.fields["digestType"], ")") row.add(cell) self.add(row) for i, dnskey_detail in enumerate(dnskeys_field.current_field.inner_details): row = tr() if i == 0: row.add( td(attr(cssc="left_label", rowspan=len(dnskeys_field.current_field.inner_details)), dnskeys_label) ) cell = td(attr(enclose_content=True)) cell.add(dnskey_detail.fields["key"]) row.add(cell) self.add(row)
def _render_check_status(self, tests_table, check_status, is_current_status): col_tag = th if is_current_status else td tests_table.footer.add(tr(col_tag(attr(colspan=self.col_count - 3), 'Overall status:'), col_tag(span(attr(title=enums.CHECK_STATUS_DESCS[check_status.status]), enums.CHECK_STATUS_NAMES[check_status.status])), td(get_detail('logger', check_status.logd_request_id).user_name \ if check_status.logd_request_id else _('automat')), td(attr(cssc='no-wrap'), check_status.update))) if is_current_status: if check_status.status == 'ok': tests_table.footer.content[0].add_css_class('status_ok') elif check_status.status == 'fail': tests_table.footer.content[0].add_css_class('status_fail')
def layout_fields(self): #fields_in_section = self.get_fields() # for field in fields_in_section: # field.create_inner_detail() # creates field.inner_detail # label_str = self.get_label_name(field) # #import pdb; pdb.set_trace() # self.tbody.add(tr(td(attr(cssc='left_label'), label_str), # td(field.inner_detail.fields['name']), # td(field.inner_detail.fields['email']) # )) date_and_registrar_fields_names = [ ['createDate', 'createRegistrar'], ['updateDate', 'updateRegistrar'], ['transferDate', None], ['expirationDate', None], ['valExDate', None], ['outZoneDate', None], ['deleteDate', None], ] date_and_registrar_fields = [[ self.detail.fields.get(date_field_name), self.detail.fields.get(registrar_field_name) ] for date_field_name, registrar_field_name in date_and_registrar_fields_names] for i, [date_field, registrar_field] in enumerate(date_and_registrar_fields): if not date_field: continue row = tr() if registrar_field: colspan_attr = attr() registrar_field.create_inner_detail( ) # creates field.inner_detail else: colspan_attr = attr(colspan=3) label_str = self.get_label_name(date_field) row.add(td(attr(cssc='left_label'), label_str), td(colspan_attr, date_field)) if registrar_field: row.add(th('by_registrar:'), td(registrar_field.inner_detail.fields['handle_url'])) self.tbody.add(row)
def close(self, **kwd): '''Close and invalidate''' log_req = self._create_log_req_for_object_view( 'PublicRequestInvalidate', **kwd) try: cherrypy.session['Admin'].processPublicRequest( int(kwd['id']), True) log_req.result = 'Success' except ccReg.Admin.REQUEST_BLOCKED: log_req.result = 'Fail' raise CustomView( self._render( 'error', { 'message': [ _(u'Request cannot be accepted.' u'You can return back to '), a( attr(href=f_urls[self.classname] + 'detail/?id=%s' % kwd['id']), _('public request.')) ] })) finally: log_req.close() raise cherrypy.HTTPRedirect(f_urls[self.classname] + 'filter/?reload=1&load=1')
def _format_property(self, prop): val = prop["value"] neg = "(neg)" if prop["neg"] else "" indent_style = "padding-left: 2em;" if prop["child"] else "" res = tr(td("%s %s:" % (neg, prop["name"]), attr(style=indent_style)), td("%s" % val)) return res
def printout(self, handle, **kwd): lang_code = config.lang[:2] if lang_code == 'cs': # conversion between cs and cz identifier of lagnguage lang_code = 'cz' context = {'main': div()} context['main'].add( script( attr(type='text/javascript'), 'scwLanguage = "%s"; //sets language of js_calendar' % lang_code, 'scwDateOutputFormat = "%s"; // set output format for js_calendar' % config.js_calendar_date_format)) if cherrypy.request.method == 'POST': form = ObjectPrintoutForm(data=kwd) if form.is_valid(): for_time = form.cleaned_data['for_time'] props = [('handle', handle), ('for_time', for_time)] log_req = create_log_request('RecordStatement', properties=props) try: return self._get_printout_pdf(handle, for_time) except Registry.RecordStatement.OBJECT_NOT_FOUND: form.add_error( 'for_time', _('Object "{}" was not found for the given date.'. format(handle))) finally: log_req.close() else: form = ObjectPrintoutForm() context['heading'] = _('Download printout') context['form'] = form return self._render('printout', context)
def layout_fields(self): fields_in_section = self.get_fields() for field in fields_in_section: label_str = self.get_label_name(field) self.tbody.add( tr(td(attr(cssc='left_label'), label_str), td(field)))
def unblock(self, id): context = DictLookup() try: reg_id = int(id) except (TypeError, ValueError): context.message = _("Required_integer_as_parameter") raise CustomView(self._render('error', ctx=context)) return_message = [ _(u'You can return back to '), a(attr(href=f_urls[self.classname] + 'detail/?id=%s' % reg_id), _('registrar.')) ] admin = cherrypy.session.get('Admin') if not admin.isRegistrarBlocked(reg_id): context.message = [_("This registrar is not blocked.") ] + return_message return self._render('error', ctx=context) else: log_req = utils.create_log_request('RegistrarUpdate', [['blocked', 'False']], [[self.classname, reg_id]]) try: admin.unblockRegistrar(reg_id, log_req.request_id) log_req.result = 'Success' finally: log_req.close() context.main = [_("Registrar successfully unblocked.") ] + return_message return self._render('base', ctx=context)
def unblock(self, id): context = DictLookup() try: reg_id = int(id) except (TypeError, ValueError): context.message = _("Required_integer_as_parameter") raise CustomView(self._render('error', ctx=context)) return_message = [ _(u'You can return back to '), a(attr(href=f_urls[self.classname] + 'detail/?id=%s' % reg_id), _('registrar.')) ] admin = cherrypy.session.get('Admin') if not admin.isRegistrarBlocked(reg_id): context.message = [_("This registrar is not blocked.")] + return_message return self._render('error', ctx=context) else: log_req = utils.create_log_request('RegistrarUpdate', [['blocked', 'False']], [[self.classname, reg_id]]) try: admin.unblockRegistrar(reg_id, log_req.request_id) log_req.result = 'Success' finally: log_req.close() context.main = [_("Registrar successfully unblocked.")] + return_message return self._render('base', ctx=context)
def _get_check_messages_list(self, check): messages = c2u( cherrypy.session['Verification'].getContactCheckMessages( u2c(check.contact_id))) if len(messages): messages_table = SimpleTable( header=[ _('Id'), _('Created'), _('Channel'), _('Type'), _('Updated'), _('Status') ], data=[(a( attr(href=f_urls['mail' if msg.type_handle == 'email' else 'message'] + 'detail/?id=%s' % msg.id), img(src='/img/icons/open.png')), msg.created, msg.type_handle, msg.content_handle, msg.updated, msg.status) for msg in messages], cssc='itertable') messages_table.media_files.append('/css/itertable.css') return messages_table else: return _('No messages have been sent.')
def layout_start(self): section_name = self.section_spec[0] section_id = self.section_spec[1] link_id = "%s_display" % section_id if section_name: self.add(legend(section_name)) self.add(div( attr(style="text-align: right; padding-right: 1em;"), a( "hide", attr(href="JavaScript:void();"), onclick="show_hide('%s', '%s');" % (section_id, link_id), id=link_id, title="Click to show or hide the fieldset contents."))) self.add(table( tagid('table'), attr(cssc="form_table"), id=section_id))
def create_layout(self): form = self.form self.add(tbody(tagid('tbody'))) if form.non_field_errors(): self.tbody.add(tr(td(attr(colspan=self.columns_count), _('Errors:'), form.non_field_errors()))) hidden_fields = [] for field in form.fields.values(): if field.is_hidden: hidden_fields.append(field) continue label_str = self.get_label_name(field) if field.required: cell_tag = th else: cell_tag = td errors = form.errors.get(field.name_orig, None) self.tbody.add(tr( cell_tag(label(label_str)), td(errors, field))) self.add(hidden_fields) if not form.is_nested: self.tbody.add(self.get_submit_row())
def make_content(self): def _add_row(i, j, detail): history_tr = tr() history_tr.cssc = '' if i > 0: history_tr.cssc += ' history_row' if detail: history_tr.add(detail) else: history_tr.add( td(attr(colspan=len(thead_row.content) - 3), div(attr(cssc='field_empty')))) if j == 0: history_tr.cssc += ' history_division_row' rowspan_attr = attr(rowspan=len(self.inner_details[i]) or 1, cssc='history_dates_field') log_req_link = a(attr( href=logger_url), img(src='/img/icons/open.png') ) if history_rec.requestId else '' history_tr.add(td(rowspan_attr, date_from), td(rowspan_attr, date_to), td(rowspan_attr, log_req_link)) self.add(history_tr) self.content = [] self.create_inner_details() if self.inner_details: # Header: thead_row = tr() # Find one (any of them) innter detail for obtaining field labels (cannot take first one, becouse firt can be empty list): some_detail = None for details in self.inner_details: if details: some_detail = details[0] break for field in some_detail.fields.values(): thead_row.add(th(field.label)) thead_row.add(th(_('From')), th(_('To')), th(_('L.'))) self.add(thead(thead_row)) # rows (each row is made from one detail of object in object list self.add(tbody(tagid('tbody'))) for i in range(len(self.inner_details)): history_rec = self.value[i] date_from = history_rec._from #recoder.corba_to_datetime(history_rec._from) date_to = history_rec.to #recoder.corba_to_datetime(history_rec.to) logger_url = f_urls[ 'logger'] + 'detail/?id=%s' % history_rec.requestId if self.inner_details[i]: for j, detail in enumerate(self.inner_details[i]): _add_row(i, j, detail) else: _add_row(i, 0, None) else: self.add(div(attr(cssc='field_empty')))
def create_layout(self): detail = self.detail self.add(tbody(tagid('tbody'))) for field in detail.fields.values(): label_str = self.get_label_name(field) self.tbody.add( tr(td(attr(cssc='left_label'), label(label_str)), td(field)))
def __init__(self, context = None): super(MailDetail, self).__init__(context) c = self.context if c.get('result'): self.main.add(h1(_('Detail_of_%s' % self.get_object_name()))) self.main.add(adifdetails.MailDetail(c.result, c.history)) if config.debug: self.main.add('MailDETAIL:', div(attr(style='width: 1024px; overflow: auto;'), pre(unicode(c.result).replace(u', ', u',\n'))))
def make_content(self): self.add(self.fields[3], span(attr(cssc='date_interval'), save(self, 'date_interval_span'), _('from') + ':', self.fields[0], _('to') + ':', self.fields[1], ), span(save(self, 'date_interval_offset_span'), attr(cssc='date_interval_offset'), _('offset') + ':', self.fields[4]), span(attr(cssc='date_day'), save(self, 'date_day_span'), _('day') + ':', self.fields[2] ), ) self.content_initialized = True self.set_iterval_date_display()
def layout_fields(self): #fields_in_section = self.get_fields() # for field in fields_in_section: # field.create_inner_detail() # creates field.inner_detail # label_str = self.get_label_name(field) # #import pdb; pdb.set_trace() # self.tbody.add(tr(td(attr(cssc='left_label'), label_str), # td(field.inner_detail.fields['name']), # td(field.inner_detail.fields['email']) # )) date_and_registrar_fields_names = [ ['createDate', 'createRegistrar'], ['updateDate', 'updateRegistrar'], ['transferDate', None], ['expirationDate', None], ['valExDate', None], ['outZoneDate', None], ['deleteDate', None], ] date_and_registrar_fields = [ [self.detail.fields.get(date_field_name), self.detail.fields.get(registrar_field_name)] for date_field_name, registrar_field_name in date_and_registrar_fields_names ] for i, [date_field, registrar_field] in enumerate(date_and_registrar_fields): if not date_field: continue row = tr() if registrar_field: colspan_attr = attr() registrar_field.create_inner_detail() # creates field.inner_detail else: colspan_attr = attr(colspan=3) label_str = self.get_label_name(date_field) row.add(td(attr(cssc='left_label'), label_str), td(colspan_attr, date_field)) if registrar_field: row.add(th('by_registrar:'), td(registrar_field.inner_detail.fields['handle_url']) ) self.tbody.add(row)
def _format_property(self, prop): val = prop["value"] neg = "(neg)" if prop["neg"] else "" indent_style = "padding-left: 2em;" if prop["child"] else "" res = tr(td( "%s %s:" % (neg, prop["name"]), attr(style=indent_style)), td("%s" % val)) return res
def layout_fields(self): fields_in_section = self.get_fields() for field in fields_in_section: label_str = self.get_label_name(field) self.tbody.add(tr(td(attr(cssc='left_label'), label_str), td(field) ))
def get_submit_row(self, hidden_fields=None): or_plus_button = input(attr( type="button", value="OR+", onclick="addOrForm(this)", style="float: left;")) save_input = input(attr( id='save_input', type="text", name="save_input", value=_('name'), disabled='disabled', style="float: left; margin-left: 0.4em; display:none;")) save_button = input(attr( type="button", value="Save", onclick="saveUnionForm(this)", style="float: left; margin-left: 0.4em")) submit_button = input(attr( type=u'button', value=u'OK', onclick='sendUnionForm(this)', style="float: right;")) return tr(attr(cssc='submit_row'), td( or_plus_button, save_input, save_button, hidden_fields, submit_button),)
def add_to_bottom(self): ''' Usualy used for filterpanel and/or edit link. ''' if self.editable: self.add( p( a( attr(href=u'../edit/?id=' + unicode(self.data.get('id'))), _('Edit'))))
def _render_keyset(self, keyset_detail): registrar_detail = keyset_detail.fields.get('registrar').current_field.inner_detail # registrar of keyset handle_field = keyset_detail.fields['handle_url'] registrar_field = registrar_detail.fields['handle_url'] admins_field = keyset_detail.fields['admins'] dsrecords_field = keyset_detail.fields['dsrecords'] dnskeys_field = keyset_detail.fields['dnskeys'] handle_label = self.get_label_name(handle_field) registrar_label = self.get_label_name(_('Registrar')) admins_label = self.get_label_name(_('Tech. contacts')) dsrecords_label = self.get_label_name(_('DS records')) dnskeys_label = self.get_label_name(_('DNSKeys')) self.add(tr(td(attr(cssc='left_label'), handle_label), td(handle_field))) self.add(tr(td(attr(cssc='left_label'), registrar_label), td(registrar_field))) for i, admin_detail in enumerate(admins_field.current_field.inner_details): row = tr() if i == 0: row.add(td(attr(cssc='left_label', rowspan=len(admins_field.current_field.inner_details)), admins_label)) email_part = '' if admin_detail.fields['email'].value: email_part = [', ' , admin_detail.fields['email']] row.add(td(attr(enclose_content=True), admin_detail.fields['handle_url'], email_part)) self.add(row) for i, dsrecord_detail in enumerate(dsrecords_field.current_field.inner_details): row = tr() if i == 0: row.add(td(attr(cssc='left_label', rowspan=len(dsrecords_field.current_field.inner_details)), dsrecords_label)) cell = td(attr(enclose_content=True)) cell.add(dsrecord_detail.fields['keyTag']) cell.add(dsrecord_detail.fields['digest'], ' (', dsrecord_detail.fields['digestType'],')') row.add(cell) self.add(row) for i, dnskey_detail in enumerate(dnskeys_field.current_field.inner_details): row = tr() if i == 0: row.add(td(attr(cssc='left_label', rowspan=len(dnskeys_field.current_field.inner_details)), dnskeys_label)) cell = td(attr(enclose_content=True)) cell.add(dnskey_detail.fields['key']) row.add(cell) self.add(row)
def __init__(self, context): super(ContactCheckDetail, self).__init__(context) c = self.context self.head.add( script(attr(type='text/javascript'), 'ajaxSourceURLOfChecks = "%s";' % c.ajax_json_filter_url, 'dontDisplayFilter = true;')) self.main.add(h1(_('Contact checks detail'), '-', c.test_suit_name)) if c.contact_detail is None: self.main.add(h2(_('Contact was deleted'))) verified_info = None else: if contact_has_state(c.contact_detail, 'validatedContact'): verified_info = _('Contact is validated') elif contact_has_state(c.contact_detail, 'identifiedContact'): verified_info = _('Contact is identified') else: verified_info = None self.main.add( table( attr(cssc='section_table'), tr( td(attr(cssc='left_label'), _('Contact:'), td(a(attr(href=c.contact_url), c.check.contact_handle)))), tr( td(attr(cssc='left_label'), _('Created: '), td(c.check.created))), tr( td(attr(cssc='left_label'), _('Verified status:'), td(strong(attr(cssc='highlight_ok'), verified_info)))) if verified_info else None)) self.main.add(c.detail) if c.contact_detail: self.main.add(h2('Detail of contact:')) self.main.add( adifdetails.ContactDetail(c.contact_detail, c.history, is_nested=True)) if cherrypy.session.get('history', False): self.main.add(h2(_('All checks of this contact:'))) self.main.add(c.table_tag) self.main.add(h2(_('Contact checks messages:'))) self.main.add(c.messages_list) lang_code = config.lang[:2] self.head.add( script( attr(type='text/javascript'), 'scwLanguage = "%s"; //sets language of js_calendar' % lang_code, 'scwDateOutputFormat = "%s"; // set output format for js_calendar' % config.js_calendar_date_format))
def __init__(self, context = None): super(BaseSiteMenu, self).__init__(context) c = self.context if c.has_key('menu'): self.menu_container.add(div(attr(id='main-menu'), c.menu)) if c.get('body_id'): self.body.add(attr(id=c.body_id)) if c.get('headline'): self.main.add(h1(c.headline)) self.right_menu_container.add( input(save(self, 'history_checkbox'), attr(media_files=['/js/history_button.js', '/js/ext/ext-base.js', '/js/ext/ext-all.js'], id='history_checkbox', type='checkbox', onchange='setHistory(this)')), label(attr(for_id='history_checkbox'), _('history')) ) if c.history: self.history_checkbox.checked = ['', 'checked'][c.history]
def make_content(self): def _add_row(i, j, detail): history_tr = tr() history_tr.cssc = '' if i > 0: history_tr.cssc += ' history_row' if detail: history_tr.add(detail) else: history_tr.add(td(attr(colspan=len(thead_row.content) - 3), div(attr(cssc='field_empty')))) if j == 0: history_tr.cssc += ' history_division_row' rowspan_attr = attr(rowspan=len(self.inner_details[i]) or 1, cssc='history_dates_field') log_req_link = a(attr(href=logger_url), img(src='/img/icons/open.png')) if history_rec.requestId else '' history_tr.add( td(rowspan_attr, date_from), td(rowspan_attr, date_to), td(rowspan_attr, log_req_link) ) self.add(history_tr) self.content = [] self.create_inner_details() if self.inner_details: # Header: thead_row = tr() # Find one (any of them) innter detail for obtaining field labels (cannot take first one, becouse firt can be empty list): some_detail = None for details in self.inner_details: if details: some_detail = details[0] break for field in some_detail.fields.values(): thead_row.add(th(field.label)) thead_row.add(th(_('From')), th(_('To')), th(_('L.'))) self.add(thead(thead_row)) # rows (each row is made from one detail of object in object list self.add(tbody(tagid('tbody'))) for i in range(len(self.inner_details)): history_rec = self.value[i] date_from = history_rec._from #recoder.corba_to_datetime(history_rec._from) date_to = history_rec.to #recoder.corba_to_datetime(history_rec.to) logger_url = f_urls['logger'] + 'detail/?id=%s' % history_rec.requestId if self.inner_details[i]: for j, detail in enumerate(self.inner_details[i]): _add_row(i, j, detail) else: _add_row(i, 0, None) else: self.add(div(attr(cssc='field_empty')))
def layout_start(self): section_name = self.section_spec[0] css_class = 'section_table' # if self.detail.is_nested: # css_class = 'nested_' + css_class self.cssc = css_class if section_name: self.add(caption(attr(cssc='section_label'), section_name + ':')) self.add(tbody(tagid('tbody')))
def layout_start(self): section_name = self.section_spec[0] css_class = 'section_table' # if self.detail.is_nested: # css_class = 'nested_' + css_class self.cssc=css_class if section_name: self.add(caption(attr(cssc='section_label'), section_name + ':')) self.add(tbody(tagid('tbody')))
def index(self): context = DictLookup() context.main = ul( li( a( attr( href= '''/file/filter/?json_data=[{%22presention|CreateTime%22:%22on%22,%22CreateTime/3%22:%2210%22,%22CreateTime/0/0%22:%22%22,%22CreateTime/0/1/0%22:%220%22,%22CreateTime/0/1/1%22:%220%22,%22CreateTime/1/0%22:%22%22,%22CreateTime/1/1/0%22:%220%22,%22CreateTime/1/1/1%22:%220%22,%22CreateTime/4%22:%22-2%22,%22CreateTime/2%22:%22%22,%22presention|Type%22:%22000%22,%22Type%22:%225%22}]''' ), _('Domain expiration letters')))) return self._render('summary', ctx=context)
def make_content(self): self.add( self.fields[3], span( attr(cssc='date_interval'), save(self, 'date_interval_span'), _('from') + ':', self.fields[0], _('to') + ':', self.fields[1], ), span(save(self, 'date_interval_offset_span'), attr(cssc='date_interval_offset'), _('offset') + ':', self.fields[4]), span(attr(cssc='date_day'), save(self, 'date_day_span'), _('day') + ':', self.fields[2]), ) self.content_initialized = True self.set_iterval_date_display()
def _add_row(i, j, detail): history_tr = tr() history_tr.cssc = '' if i > 0: history_tr.cssc += ' history_row' if detail: history_tr.add(detail) else: history_tr.add(td(attr(colspan=len(thead_row.content) - 3), div(attr(cssc='field_empty')))) if j == 0: history_tr.cssc += ' history_division_row' rowspan_attr = attr(rowspan=len(self.inner_details[i]) or 1, cssc='history_dates_field') log_req_link = a(attr(href=logger_url), img(src='/img/icons/open.png')) if history_rec.requestId else '' history_tr.add( td(rowspan_attr, date_from), td(rowspan_attr, date_to), td(rowspan_attr, log_req_link) ) self.add(history_tr)
def create_layout(self): detail = self.detail self.add(tbody(tagid('tbody'))) for field in detail.fields.values(): label_str = self.get_label_name(field) self.tbody.add(tr(td(attr(cssc='left_label'), label(label_str)), td(field) ) )
def make_content(self): self.content = [] if self.value: for i, oid in enumerate(self.value): if oid and oid.id: if i != 0: self.add(', ') self.add(a(attr(href=f_urls[f_enum_name[oid.type]] + u'detail/?id=' + unicode(oid.id)), # strong(oid.handle))) oid.handle))
def __init__(self, context = None): super(AllFiltersPage, self).__init__(context) c = self.context if c.has_key('filters_list'): self.main.add(c['filters_list']) lang_code = config.lang[:2] if lang_code == 'cs': # conversion between cs and cz identifier of lagnguage lang_code = 'cz' self.head.add(script(attr(type='text/javascript'), 'scwLanguage = "%s"; //sets language of js_calendar' % lang_code, 'scwDateOutputFormat = "%s"; // set output format for js_calendar' % config.js_calendar_date_format))
def make_content(self): self.content = [] if self.value: for i, ref in enumerate(self.value): if ref and ref.id: if i != 0: self.add(', ') if f_req_object_type_name.get(ref.type): # only object displayable by daphne will be links, others plain text: self.add(a(attr(href=f_urls[f_req_object_type_name[ref.type]] + u'detail/?id=' + unicode(ref.id)), '%s:%s' % (ref.type, ref.id))) else: self.add('%s:%s' % (ref.type, ref.id))
def make_content(self): self.content = [] self.create_inner_details() if self.inner_details: # Header: thead_row = tr() for field in self.inner_details[0].fields.values(): thead_row.add(th(field.label)) thead_row.add(th(_('From')), th(_('To')), th(_('L.'))) self.add(thead(thead_row)) # rows (each row is made from one detail of object in object list self.add(tbody(tagid('tbody'))) for i, detail in enumerate(self.inner_details): history_rec = self.value[i] date_from = history_rec._from #recoder.corba_to_datetime(history_rec._from) date_to = history_rec.to #recoder.corba_to_datetime(history_rec.to) logger_url = f_urls['logger'] + 'detail/?id=%s' % history_rec.requestId history_tr = tr() if i > 0: history_tr.cssc = 'history_row' log_req_link = a(attr(href=logger_url), img(attr(src='/img/icons/open.png'))) if history_rec.requestId else '' history_tr.add( detail, td(attr(cssc='history_dates_field'), date_from), td(attr(cssc='history_dates_field'), date_to), td(attr(cssc='history_dates_field'), log_req_link) ) self.add(history_tr) else: self.add(div(attr(cssc='field_empty')))