81 w(u'<fieldset id="%sForm" class="%s">' % (divid, hidden and 'hidden' or '')) |
81 w(u'<fieldset id="%sForm" class="%s">' % (divid, hidden and 'hidden' or '')) |
82 w(u'<input type="hidden" name="divid" value="%s" />' % divid) |
82 w(u'<input type="hidden" name="divid" value="%s" />' % divid) |
83 w(u'<input type="hidden" name="fromformfilter" value="1" />') |
83 w(u'<input type="hidden" name="fromformfilter" value="1" />') |
84 filter_hiddens(w, facets=','.join(wdg.facet.__regid__ for wdg in fwidgets), |
84 filter_hiddens(w, facets=','.join(wdg.facet.__regid__ for wdg in fwidgets), |
85 baserql=baserql) |
85 baserql=baserql) |
86 # sort by vocab size |
86 self._build_form_table(fwidgets) |
|
87 |
|
88 def _facet_widget_sort(self, fwidgets): |
87 fwidgets.sort(key=lambda x: x.height()) |
89 fwidgets.sort(key=lambda x: x.height()) |
|
90 |
|
91 def _build_form_table(self, fwidgets): |
|
92 # sort by widget height |
|
93 w = self.w |
|
94 self._facet_widget_sort(fwidgets) |
88 w(u'<table class="filter">\n') |
95 w(u'<table class="filter">\n') |
89 widget_queue = [] |
96 widget_queue = [] |
90 queue_size = 0 |
97 queue_size = 0 |
91 widget_qty = len(fwidgets) |
|
92 w(u'<tr>\n') |
98 w(u'<tr>\n') |
93 for wdg in fwidgets: |
99 for wdg in fwidgets: |
94 height = wdg.height() |
100 height = wdg.height() |
95 if queue_size + height <= self.wdg_stack_size: |
101 if queue_size + height <= self.wdg_stack_size: |
96 widget_queue.append(wdg) |
102 widget_queue.append(wdg) |