Changeset 1477


Ignore:
Timestamp:
Jul 23, 2006 7:50:26 PM (12 years ago)
Author:
bcsaller
Message:

*tmp layout hack for proper display, this should prolly move elsewhere

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ore.layout/trunk/src/ore/layout/layout.py

    r1476 r1477  
    355355        self._widgets = widgets 
    356356 
     357    def start_container(self, layout, container=None): 
     358        self.push(html.tr(**layout.attrs(container, _class='fieldset'))) 
     359 
    357360    def element(self, layout, datum): 
    358361        widget = self._widgets[datum.object] 
     
    360363        # so we just append it to the DOM 
    361364        # XXX: this is hellish 
    362         try: 
    363             output = widget() 
    364             if not output.strip().startswith('<'): 
    365                 self.el.text = output 
    366             else: 
    367                 output = ET.XML(widget()) 
    368                 self.el.append(output) 
    369         except: 
    370             parser = ET.XMLParser(recover=True) 
     365        req = widget.required 
     366        style = "label%s" %(req and " required" or "") 
     367        label = widget.label.replace('_', ' ').title() 
     368        title = html.span(label, _class=style, _for=widget.name) 
     369        hint = html.span(widget.hint, _class="formhelp") 
     370        output = widget() 
     371        if not output.strip().startswith('<'): 
     372            output = html.span(output) 
     373        else: 
    371374            try: 
    372                 output = ET.parse(StringIO(widget()), parser).getroot() 
    373                 if output: self.el.append(output) 
     375                output = ET.XML(ouput) 
    374376            except: 
    375                 print "ERROR rendering", datum.object 
    376                 pass 
    377  
    378  
     377                parser = ET.XMLParser(recover=True) 
     378                try: 
     379                    output = ET.parse(StringIO(output), parser).getroot() 
     380                except: 
     381                    output = None 
     382        if output is not None: 
     383            div = html.div(_class="field") 
     384            div.append(title) 
     385            if hint: div.append(hint) 
     386            div.append(output) 
     387            self.el.append(div) 
     388             
    379389# support class 
    380390class Matrix(Layout): 
Note: See TracChangeset for help on using the changeset viewer.