def test_urlfriendly(self, app, client): from app.helpers import urlfriendly friendly = urlfriendly("Ul #öß1!!\"§$%&-<LiNk>") self.assertFalse("U" in friendly) self.assertFalse("#" in friendly) self.assertFalse(" " in friendly) self.assertFalse("ö" in friendly) self.assertFalse("ß" in friendly) self.assertFalse("!" in friendly) self.assertFalse("\"" in friendly) self.assertFalse("§" in friendly) self.assertFalse("$" in friendly) self.assertFalse("%" in friendly) self.assertFalse("&" in friendly) self.assertFalse("<" in friendly) self.assertFalse(">" in friendly) self.assertEqual(friendly.lower(), friendly) friendly = urlfriendly("thistextistdefinitelylongerthan20characters") self.assertEqual(friendly, "thistextistdefinitel") friendly = urlfriendly("this-text-is-definitely-longer-than-20-characters") self.assertEqual(friendly, "this-text-is-definitely")
def format_date(self, epoch, year, month, day, timestamp, use_abbr, with_link=False, use_epoch=True, use_year=True, with_weekday=False): from app.helpers import urlfriendly day_str = str(day) if with_weekday: day_str = f"{self.day_of_the_week(timestamp, use_abbr)}, {day_str}" month_str = month.abbreviation if use_abbr and month.abbreviation else month.name if with_link: url = url_for('event.list_epoch_year', e_id=epoch.id, year=year, e_name=urlfriendly(epoch.name)) year_str = f'<a href="{url}">{year}</a>' else: year_str = str(year) epoch_str = epoch.abbreviation if use_abbr and epoch.abbreviation else epoch.name if with_link: url = url_for('event.list_epoch', e_id=epoch.id, e_name=urlfriendly(epoch.name)) epoch_str = f'<a href="{url}">{epoch_str}</a>' if use_epoch and use_year: return f'{day_str}. {month_str} {year_str}, {epoch_str}' elif use_year and not use_epoch: return f'{day_str}. {month_str} {year_str}' return f'{day_str}. {month_str}'
def view_url(self): return url_for('campaign.view', id=self.id, name=urlfriendly(self.name))
def settings_url(self): return url_for("map.map_settings", id=self.id, name=urlfriendly(self.name))
def delete_url(self): return url_for('calendar.month_delete', id=self.id, name=urlfriendly(self.name))
def edit_url(self): return url_for('session.edit', id=self.id, name=urlfriendly(self.title))
def anchor_text(self): return urlfriendly(f"session-{self.session_number}")
def edit_url(self): return url_for('party.edit', id=self.id, name=urlfriendly(self.name))
def delete_url(self): return url_for('character.delete', id=self.id, name=urlfriendly(self.name))
def edit_url(self): return url_for('character.edit', id=self.id, name=urlfriendly(self.name))
def view_url(self): return url_for('character.view', id=self.id, name=urlfriendly(self.name))
def delete_url(self): return url_for('character.journal_delete', c_id=self.character.id, c_name=urlfriendly(self.character.name), j_id=self.id, j_name=urlfriendly(self.title))
def anchor_text(self): return urlfriendly(f"journal-{self.id}")
def view_url(self): return url_for('media.list_by_cat', c_id=self.id, c_name=urlfriendly(self.name))
def edit_url(self): return url_for('campaign.edit', id=self.id, name=urlfriendly(self.name))
def view_url(self): return url_for('party.view', id=self.id, name=urlfriendly(self.name))
def view_url(self): return url_for('event.list_category', c_id=self.id, c_name=urlfriendly(self.name))
def delete_url(self): return url_for('party.delete', id=self.id, name=urlfriendly(self.name))
def edit_url(self): return url_for('event.category_edit', id=self.id, name=urlfriendly(self.name))
def view_url(self): return url_for('session.view', id=self.id, name=urlfriendly(self.title))
def edit_url(self): return url_for('calendar.month_edit', id=self.id, name=urlfriendly(self.name))
def delete_url(self): return url_for('session.delete', id=self.id, name=urlfriendly(self.title))
def index(): return redirect(url_for("wiki.view", id=1, name=urlfriendly("Main Page")))