示例#1
0
def xml_prettify_webwidget(xml_string):
    xml_output_string = xml_prettify(xml_string)
    if python_xml_imported:
        if pygments_imported:
            result = noesc(xml_output_string)
        else:
            result = pre(xml_output_string)
    else:
        result = noesc(escape(xml_output_string).replace('\n', '<br />\n'))
    return result
示例#2
0
 def resolve_value(self, value):
     val = super(LongCharDField, self).resolve_value(value)
     splitted = [
         val[self.n_break_chars * i:self.n_break_chars * (i + 1)]
         for i in range(len(val) / self.n_break_chars + 1)
     ]
     return noesc(self.break_char.join(splitted))
示例#3
0
    def make_content(self):
        state_table = self.compute_state_data()
        if self.owner_detail.history and len(
                state_table
        ):  # dont display history if state_table have no row
            self.content = []

            display_state_list = self.state_list[1:]
            self.tag = 'table'
            self.tattr_list = table.tattr_list
            self.cssc = 'state_table section_table'

            # header
            self.add(
                tr(th(_('Date')), [
                    th(
                        attr(cssc='state_header_cell',
                             title=self.transform_title(
                                 _('Status'), self.get_state_title(state_id))),
                        self.states_abbrev[state_id])
                    for state_id in display_state_list
                ]))
            if state_table:
                # date rows
                for row in state_table:
                    tr_row = tr(
                        th(
                            attr(cssc='date_cell',
                                 title=self.transform_title(
                                     _('Statuses'),
                                     self.get_states_title_for_row(row))),
                            row['row_date']))
                    for state_id in display_state_list:
                        state_on = row[state_id]
                        if state_on == True:
                            tr_row.add(
                                td(
                                    attr(cssc='state_on',
                                         title=self.transform_title(
                                             _('Status'),
                                             self.get_state_title(state_id))),
                                    'X'))
                        else:
                            tr_row.add(
                                td(
                                    attr(title=self.transform_title(
                                        _('Status'),
                                        self.get_state_title(state_id)))))
                    self.add(tr_row)
        else:
            self.tag = 'table'
            self.tattr_list = table.tattr_list
            self.cssc = 'section_table'
            if len(state_table):
                self.add(
                    tr(td(noesc(self.get_states_title_for_row(
                        state_table[0])))))
            else:
                self.add(tr(td(self.get_state_title(0))))
示例#4
0
 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')
示例#5
0
 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')
示例#6
0
    def login(self, *args, **kwd):
        """ The 'gateway' to the rest of Daphne. Handles authentication and 
            login form processing."
        """
        if cherrypy.session.get('corbaSessionString'):
            # Already logged in, redirect to /summary.
            self._handle_double_login()
            raise cherrypy.HTTPRedirect('/summary/')

        if kwd:
            if cherrypy.request.method == 'GET' and kwd.get('next'):
                form = LoginForm(action='/login/', method='post')
                form.fields['next'].value = kwd['next']
            else:
                form = LoginForm(kwd, action='/login/', method='post')
        else:
            form = LoginForm(action='/login/', method='post')

        if form.is_valid():
            admin = self._init_login(form)
            log_req = utils.create_log_request(
                'Login',
                [['username', form.cleaned_data.get('login')]])
            out_props = []
            try:
                # May raise a HTTPRedirect
                self._authenticate(form, admin)
                user, corba_session_string = self._authorize(form, admin)
                out_props.append(['session_id', corba_session_string])
                log_req.result = 'Success'
            except (AuthenticationError, AuthorizationError), exc:
                form.non_field_errors().append(str(exc))
                if config.debug:
                    form.non_field_errors().append(
                        noesc(
                            escape(unicode(traceback.format_exc())).replace(
                                '\n', '<br/>')))
                if log_req:
                    log_req.result = 'Fail'
                self._remove_session_data()
            else:
                self._fill_session_data(form, user, corba_session_string)
                if log_req:
                    log_req.result = 'Success'
                # Login completed, go to the next page.
                raise cherrypy.HTTPRedirect(
                    form.cleaned_data.get('next', "/summary/"))
            finally:
示例#7
0
文件: adif.py 项目: LANJr4D/FRED
    def login(self, *args, **kwd):
        """ The 'gateway' to the rest of Daphne. Handles authentication and 
            login form processing."
        """
        if cherrypy.session.get('corbaSessionString'):
            # Already logged in, redirect to /summary.
            self._handle_double_login()
            raise cherrypy.HTTPRedirect('/summary/')

        if kwd:
            if cherrypy.request.method == 'GET' and kwd.get('next'):
                form = LoginForm(action='/login/', method='post')
                form.fields['next'].value = kwd['next']
            else:
                form = LoginForm(kwd, action='/login/', method='post')
        else:
            form = LoginForm(action='/login/', method='post')

        if form.is_valid():
            admin = self._init_login(form)
            log_req = utils.create_log_request('Login', [['username', form.cleaned_data.get('login')]])
            out_props = []
            try:
                # May raise a HTTPRedirect
                self._authenticate(form, admin)
                user, corba_session_string = self._authorize(form, admin)
                out_props.append(['session_id', corba_session_string])
                log_req.result = 'Success'
            except (AuthenticationError, AuthorizationError), exc:
                form.non_field_errors().append(str(exc))
                if config.debug:
                    form.non_field_errors().append(noesc(escape(unicode(
                        traceback.format_exc())).replace('\n', '<br/>')))
                if log_req:
                    log_req.result = 'Fail'
                self._remove_session_data()
            else:
                self._fill_session_data(form, user, corba_session_string)
                if log_req:
                    log_req.result = 'Success'
                # Login completed, go to the next page.
                raise cherrypy.HTTPRedirect(form.cleaned_data.get('next', "/summary/"))
            finally:
示例#8
0
文件: dfields.py 项目: LANJr4D/FRED
    def make_content(self):
        state_table = self.compute_state_data()
        if self.owner_detail.history and len(state_table): # dont display history if state_table have no row
            self.content = []

            display_state_list = self.state_list[1:]
            self.tag = 'table'
            self.tattr_list = table.tattr_list
            self.cssc = 'state_table section_table'



            # header
            self.add(tr(th(_('Date')), [th(attr(cssc='state_header_cell',
                                                title=self.transform_title(_('Status'), self.get_state_title(state_id))),
                                           self.states_abbrev[state_id])
                                           for state_id in display_state_list
                                       ]))
            if state_table:
                # date rows
                for row in state_table:
                    tr_row = tr(th(attr(cssc='date_cell', title=self.transform_title(_('Statuses'), self.get_states_title_for_row(row))), row['row_date']))
                    for state_id in display_state_list:
                        state_on = row[state_id]
                        if state_on == True:
                            tr_row.add(td(attr(cssc='state_on', title=self.transform_title(_('Status'), self.get_state_title(state_id))), 'X'))
                        else:
                            tr_row.add(td(attr(title=self.transform_title(_('Status'), self.get_state_title(state_id)))))
                    self.add(tr_row)
        else:
            self.tag = 'table'
            self.tattr_list = table.tattr_list
            self.cssc = 'section_table'
            if len(state_table):
                self.add(tr(td(noesc(self.get_states_title_for_row(state_table[0])))))
            else:
                self.add(tr(td(self.get_state_title(0))))
示例#9
0
文件: table.py 项目: LANJr4D/FRED
    def __init__(self, itertable, *content, **kwd):
        super(WIterTable, self).__init__(*content, **kwd)
        self.media_files = ['/js/logging.js', 
                            '/css/itertable.css',
                           ]
        
        self.tag = 'table'
        self.cssc = 'itertable'
        self.column_count = len(itertable.header)
        
        sort_col_num, sort_direction = itertable.get_sort()
        
        header = tr(attr(cssc="wi_header"))

        for i, htext in enumerate(itertable.header):
            col_num = i - 1
            if col_num == -1: # first column is ID
                header.add(th(htext))
            else:
                sort_dir = 1
                if col_num == sort_col_num and sort_direction: # rendering column, according which is table sorted, so reverse direction for next click on this column 
                    sort_dir = 0
                th_cell = th(a(attr(href=append_getpar_to_url(add_par_dict={'sort_col': col_num, 'sort_dir': sort_dir}, del_par_list=['load', 'show_form'])), htext))
                if col_num == sort_col_num:
                    th_cell.cssc = 'sorted ' + ['ascending', 'descending'][sort_direction]
                header.add(th_cell)
        self.add(thead(header))
        
        rows = []
        for row_num, irow in enumerate(itertable):
            row = tr(attr(cssc='row%s' % ((row_num % 2) + 1)))
            for col in irow:
                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)
                
                row.add(td(attr(cssc=col.get('cssc')), val))
            rows.append(row)
        self.add(tbody(rows))
        
        
        # Pager
        pager = span()

        # Numbers of entries 
        #if itertable.total_rows > itertable.num_rows:
        if itertable.num_rows_over_limit:
            num_rows = span(attr(cssc='warning'), itertable.num_rows)
        else:
            num_rows = itertable.num_rows
        
        pager.add(span(attr(cssc='pager_text'),
            noesc('Displaying results %s - %s of %s' % (itertable.page_start, itertable.page_start + itertable.page_rows, num_rows))
#            '%s: %s,' % (_('Number_of_pages'), itertable.last_page),
#            '%s: ' % _('entries'), num_rows, ',', 
#            '%s: %s' % (_('total'), itertable.total_rows),
#            #br()
        ))
        
        if itertable.num_pages > 1:
#            pager.add(
#                a(attr(cssc='pager-button', href='?page=%s' % itertable.first_page), noesc('&laquo;')),
#                a(attr(cssc='pager-button', href='?page=%s' % itertable.prev_page), noesc('&lsaquo;')),
##                    a(attr(cssc='pager-button', href='?page=%s' % itertable._number), itertable._number),
#                form(attr(style='display: inline;', method='GET'), input(attr(type='text', size='2', name='page', value=itertable.current_page))),
#                a(attr(cssc='pager-button', href='?page=%s' % itertable.next_page), noesc('&rsaquo;')),
#                a(attr(cssc='pager-button', href='?page=%s' % itertable.last_page), noesc('&raquo;'))
#            )
            if itertable.current_page == 1:
                first_button = span(attr(cssc='pager-button'), img(attr(src='/css/ext/images/default/grid/page-first-disabled.gif')))
                prev_button = span(attr(cssc='pager-button'), img(attr(src='/css/ext/images/default/grid/page-prev-disabled.gif'))), 
            else:
                first_button = a(attr(cssc='pager-button', href='?page=%s' % itertable.first_page), img(attr(src='/css/ext/images/default/grid/page-first.gif'))),
                prev_button = a(attr(cssc='pager-button', href='?page=%s' % itertable.prev_page), img(attr(src='/css/ext/images/default/grid/page-prev.gif'))),
            if itertable.current_page == itertable.last_page:
                next_button = span(attr(cssc='pager-button'), img(attr(src='/css/ext/images/default/grid/page-next-disabled.gif'))),
                last_button = span(attr(cssc='pager-button'), img(attr(src='/css/ext/images/default/grid/page-last-disabled.gif'))) 
            else:
                next_button = a(attr(cssc='pager-button', href='?page=%s' % itertable.next_page), img(attr(src='/css/ext/images/default/grid/page-next.gif'))),
                last_button = a(attr(cssc='pager-button', href='?page=%s' % itertable.last_page), img(attr(src='/css/ext/images/default/grid/page-last.gif'))) 
                
            pager.add(
                first_button,
                prev_button,
#                    a(attr(cssc='pager-button', href='?page=%s' % itertable._number), itertable._number),
                form(attr(style='display: inline;', method='GET'), input(attr(type='text', size='2', name='page', value=itertable.current_page)), ' of %d ' % itertable.last_page),
                next_button,
                last_button
            )
        self.add(tfoot(tr(td(attr(colspan=self.column_count), pager))))
        
示例#10
0
文件: dfields.py 项目: LANJr4D/FRED
 def resolve_value(self, value):
     val = super(LongCharDField, self).resolve_value(value)
     splitted = [val[self.n_break_chars * i:self.n_break_chars * (i + 1)] for i in range(len(val) / self.n_break_chars + 1)]
     return noesc(self.break_char.join(splitted))
示例#11
0
    def __init__(self, itertable, *content, **kwd):
        super(WIterTable, self).__init__(*content, **kwd)
        self.media_files = [
            '/js/logging.js',
            '/js/itertable.js',
            '/css/itertable.css',
        ]

        self.tag = 'table'
        self.cssc = 'itertable'
        self.column_count = len(itertable.header)

        sort_col_num, sort_direction = itertable.get_sort()

        header = tr(attr(cssc="wi_header"))

        for i, htext in enumerate(itertable.header):
            col_num = i - 1
            if col_num == -1:  # first column is ID
                header.add(th(attr(id='id_column_header_cell'), htext))
            else:
                sort_dir = 1
                if col_num == sort_col_num and sort_direction:  # rendering column, according which is table sorted, so reverse direction for next click on this column
                    sort_dir = 0
                th_cell = th(
                    a(
                        attr(href=append_getpar_to_url(
                            add_par_dict={
                                'sort_col': col_num,
                                'sort_dir': sort_dir
                            },
                            del_par_list=['load', 'show_form'])), htext))
                if col_num == sort_col_num:
                    th_cell.cssc = 'sorted ' + ['descending', 'ascending'
                                                ][sort_direction]
                header.add(th_cell)
        self.add(thead(header))

        rows = []
        for row_num, irow in enumerate(itertable):
            row = tr(attr(cssc='row%s' % ((row_num % 2) + 1)))
            for col_num, col in enumerate(irow):
                row.add(self._render_col(col_num, col))
            rows.append(row)
        self.add(tbody(rows))

        # Pager
        pager = span()

        # Numbers of entries
        if itertable.num_rows_over_limit:
            num_rows = span(attr(cssc='warning'), itertable.num_rows)
        else:
            num_rows = itertable.num_rows

        if itertable.pagination:
            result_text = 'Displaying results %s - %s of %s' % (
                itertable.page_start,
                itertable.page_start + itertable.page_rows, num_rows)
        else:
            result_text = 'Displaying %s results' % (num_rows)
        pager.add(span(attr(cssc='pager_text'), noesc(result_text)))

        if itertable.pagination:
            if itertable.num_pages > 1:
                if itertable.current_page == 1:
                    first_button = span(
                        attr(cssc='pager-button'),
                        img(
                            attr(
                                src=
                                '/css/ext/images/default/grid/page-first-disabled.gif'
                            )))
                    prev_button = span(
                        attr(cssc='pager-button'),
                        img(
                            attr(
                                src=
                                '/css/ext/images/default/grid/page-prev-disabled.gif'
                            ))),
                else:
                    first_button = a(
                        attr(cssc='pager-button',
                             href='?page=%s' % itertable.first_page),
                        img(
                            attr(
                                src='/css/ext/images/default/grid/page-first.gif'
                            ))),
                    prev_button = a(
                        attr(cssc='pager-button',
                             href='?page=%s' % itertable.prev_page),
                        img(
                            attr(
                                src='/css/ext/images/default/grid/page-prev.gif'
                            ))),
                if itertable.current_page == itertable.last_page:
                    next_button = span(
                        attr(cssc='pager-button'),
                        img(
                            attr(
                                src=
                                '/css/ext/images/default/grid/page-next-disabled.gif'
                            ))),
                    last_button = span(
                        attr(cssc='pager-button'),
                        img(
                            attr(
                                src=
                                '/css/ext/images/default/grid/page-last-disabled.gif'
                            )))
                else:
                    next_button = a(
                        attr(cssc='pager-button',
                             href='?page=%s' % itertable.next_page),
                        img(
                            attr(
                                src='/css/ext/images/default/grid/page-next.gif'
                            ))),
                    last_button = a(
                        attr(cssc='pager-button',
                             href='?page=%s' % itertable.last_page),
                        img(
                            attr(
                                src='/css/ext/images/default/grid/page-last.gif'
                            )))

                pager.add(
                    first_button, prev_button,
                    form(
                        attr(style='display: inline;', method='GET'),
                        input(
                            attr(type='text',
                                 size='2',
                                 name='page',
                                 value=itertable.current_page)),
                        ' of %d ' % itertable.last_page), next_button,
                    last_button)
        self.add(tfoot(tr(td(attr(colspan=self.column_count), pager))))
示例#12
0
    def __init__(self, context = None):
        super(FilterPage, self).__init__(context)
        c = self.context
        
        lang_code = config.lang[0: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))
                     
        if context.get('form') and (config.debug or not c.get('itertable') or c.get('show_form')):
            self.main.add(c.form)
            self.main.add(script(attr(type='text/javascript'), 'Ext.onReady(function () {addFieldsButtons()})'))
        else:
            self.main.add(a(attr(href=append_getpar_to_url(add_par_dict={'load': 1, 'show_form': 1})), _('Modify filter'))) 
        
        if c.get('result'):
            self.main.add(p(c['result']))
        
        if c.get('itertable'):
            itertable = c.itertable
            self.main.add(WIterTable(itertable))
            self.main.add(p(_('Table_as'), a(attr(href='?txt=1'), 'TXT'), ',', a(attr(href='?csv=1'), 'CSV')))
            
            if config.debug:
                self.main.add(br(), br())
                header = tr(attr(cssc="header"))
                for htext in itertable.header:
                    header.add(td(htext))
                
                rows = [header]
                for irow in itertable:
                    row = tr()
                    for col in irow:
                        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)
                        
                        row.add(td(attr(cssc=col.get('cssc')), val))
                    rows.append(row)


                self.main.add(table(attr(id='objectlist', media_files='/css/objectlist.css'), rows))
                
                # Numbers of entries 
                if itertable.num_rows_over_limit:
                    num_rows = span(attr(cssc='warning'), itertable.num_rows)
                else:
                    num_rows = itertable.num_rows
                pageflip = span(
                    '%s: %s,' % (_('Number_of_pages'), itertable.last_page),
                    '%s: ' % _('entries'), num_rows, ',', 
                    br())
                
                # Pager
                if itertable.num_pages > 1:
                    pageflip.add(div(
                        a(attr(cssc='pager-button', href='?page=%s' % itertable.first_page), noesc('&laquo;')),
                        a(attr(cssc='pager-button', href='?page=%s' % itertable.prev_page), noesc('&lsaquo;')),
                        form(attr(style='display: inline;', method='GET'), input(attr(type='text', size='2', name='page', value=itertable.current_page))),
                        a(attr(cssc='pager-button', href='?page=%s' % itertable.next_page), noesc('&rsaquo;')),
                        a(attr(cssc='pager-button', href='?page=%s' % itertable.last_page), noesc('&raquo;'))
                    ))
                self.main.add(pageflip)
        if c.get("display_jump_links"):
            # Display the 'previous' and 'next' links (they auto-submit 
            # the form to display results for the prev./next time interval).
            jump_links_info = c.get("display_jump_links")
            self.main.add(div(a(
                attr(
                    title="Jumps to the previous time period.",
                    href=(jump_links_info['url'] + 
                        'filter/?jump_prev=1&field_name=%s' %
                        jump_links_info['field_name'])),
                "prev"), 
                a(attr(
                    title="Jumps to the next time period.",
                    href=(jump_links_info['url'] + 
                        'filter/?jump_next=1&field_name=%s' %
                        jump_links_info['field_name'])),
                    "next")))