Fix package diff table for upgrade view template, per Buefy

This commit is contained in:
Lance Edgar 2019-06-15 18:06:54 -05:00
parent 63807e71fd
commit 558e127caa
4 changed files with 83 additions and 12 deletions

View file

@ -240,24 +240,57 @@ class UpgradeView(MasterView):
return filename
def render_package_diff(self, upgrade, fieldname):
use_buefy = self.get_use_buefy()
try:
before = self.parse_requirements(upgrade, 'before')
after = self.parse_requirements(upgrade, 'after')
kwargs = {}
if use_buefy:
kwargs['extra_row_attrs'] = self.get_extra_diff_row_attrs
diff = self.make_diff(before, after,
columns=["package", "old version", "new version"],
render_field=self.render_diff_field,
render_value=self.render_diff_value,
)
showing = HTML.tag('div',
"showing: "
+ tags.link_to("all", '#', class_='all')
+ " / "
+ tags.link_to("diffs only", '#', class_='diffs'),
class_='showing')
return showing + diff.render_html()
**kwargs)
kwargs = {}
if use_buefy:
kwargs['@click'] = "showingPackages = 'all'"
kwargs[':style'] = "{'font-weight': showingPackages == 'all' ? 'bold' : null}"
else:
kwargs['class_'] = 'all'
all_link = tags.link_to("all", '#', **kwargs)
kwargs = {}
if use_buefy:
kwargs['@click'] = "showingPackages = 'diffs'"
kwargs[':style'] = "{'font-weight': showingPackages == 'diffs' ? 'bold' : null}"
else:
kwargs['class_'] = 'diffs'
diffs_link = tags.link_to("diffs only", '#', **kwargs)
kwargs = {}
if not use_buefy:
kwargs['class_'] = 'showing'
showing = HTML.tag('div', c=["showing: "
+ all_link
+ " / "
+ diffs_link],
**kwargs)
return HTML.tag('div', c=[showing + diff.render_html()])
except:
log.debug("failed to render package diff for upgrade: {}".format(upgrade), exc_info=True)
return "(not available for this upgrade)"
return HTML.tag('div', c="(not available for this upgrade)")
def get_extra_diff_row_attrs(self, field, attrs):
# note, this is only needed/used with Buefy
extra = {}
if attrs.get('class') != 'diff':
extra['v-show'] = "showingPackages == 'all'"
return extra
def changelog_link(self, project, url):
return tags.link_to(project, url, target='_blank')