Skip to content

Commit

Permalink
feat(tables): avatar column for all pictures
Browse files Browse the repository at this point in the history
  • Loading branch information
thejoeejoee committed Nov 15, 2023
1 parent 4161618 commit 0e68f9e
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 9 deletions.
6 changes: 3 additions & 3 deletions fiesta/apps/buddy_system/views/editor.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
from apps.buddy_system.forms import BuddyRequestEditorForm, QuickBuddyMatchForm
from apps.buddy_system.models import BuddyRequest, BuddyRequestMatch
from apps.fiestaforms.views.htmx import HtmxFormMixin
from apps.fiestatables.columns import ImageColumn, NaturalDatetimeColumn
from apps.fiestatables.columns import AvatarColumn, NaturalDatetimeColumn
from apps.fiestatables.filters import BaseFilterSet, ProperDateFromToRangeFilter
from apps.fiestatables.views.tables import FiestaTableView
from apps.sections.middleware.section_space import HttpRequest
Expand Down Expand Up @@ -70,7 +70,7 @@ class BuddyRequestsTable(tables.Table):
verbose_name=_("Issuer"),
)

issuer_picture = ImageColumn(accessor="issuer.profile.picture", verbose_name="🧑")
issuer_picture = AvatarColumn(accessor="issuer.profile.picture", verbose_name="🧑")

matcher_name = Column(
accessor="match.matcher.full_name_official",
Expand All @@ -86,7 +86,7 @@ class BuddyRequestsTable(tables.Table):
visible=False,
)

matcher_picture = ImageColumn(
matcher_picture = AvatarColumn(
accessor="match.matcher.profile.picture",
verbose_name=_("Matcher"),
)
Expand Down
4 changes: 2 additions & 2 deletions fiesta/apps/esncards/views/applications.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from django_tables2 import Column

from apps.esncards.models import ESNcardApplication
from apps.fiestatables.columns import ImageColumn, LabeledChoicesColumn, NaturalDatetimeColumn
from apps.fiestatables.columns import AvatarColumn, LabeledChoicesColumn, NaturalDatetimeColumn
from apps.fiestatables.filters import BaseFilterSet, ProperDateFromToRangeFilter
from apps.fiestatables.views.tables import FiestaTableView
from apps.plugins.middleware.plugin import HttpRequest
Expand Down Expand Up @@ -47,7 +47,7 @@ class ESNcardApplicationsTable(tables.Table):
),
attrs=dict(a={"hx-disable": True}), # TODO: do it properly
)
holder_photo = ImageColumn(verbose_name=_("Photo"))
holder_photo = AvatarColumn(verbose_name=_("Photo"))
birth_date = tables.DateColumn(verbose_name=_("Birth date"))
nationality = Column(verbose_name=_("Nationality"))
created = NaturalDatetimeColumn()
Expand Down
15 changes: 15 additions & 0 deletions fiesta/apps/fiestatables/columns.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from django_tables2.columns import BoundColumn


# TODO: probably not needed anymore
class ImageColumn(tables.Column):
def render(self, value: FieldFile):
return format_html('<img src="{}" class="h-12" />', value.url)
Expand All @@ -18,6 +19,20 @@ def value(self, record, value):
return value.url


class AvatarColumn(ImageColumn):
def render(self, value: FieldFile):
return format_html(
"""
<div class="avatar">
<div class="w-12 rounded-xl">
<img src="{}" />
</div>
</div>
""",
value.url,
)


class CountryColumn(tables.Column):
attrs = {"td": {"data-flag": str(True).lower()}}

Expand Down
4 changes: 2 additions & 2 deletions fiesta/apps/sections/tables/internationals.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from django.utils.translation import gettext_lazy as _
from django_tables2 import Column, TemplateColumn

from apps.fiestatables.columns import CountryColumn, ImageColumn, NaturalDatetimeColumn
from apps.fiestatables.columns import AvatarColumn, CountryColumn, NaturalDatetimeColumn
from apps.sections.models import SectionMembership


Expand All @@ -20,7 +20,7 @@ class SectionInternationalsTable(tables.Table):
),
attrs=dict(a={"hx-disable": True}), # TODO: do it properly
)
user__profile__picture = ImageColumn()
user__profile__picture = AvatarColumn()
user__profile__nationality = CountryColumn(verbose_name=_("Nationality"))
user__profile__faculty__abbr = Column(verbose_name=_("Faculty"))

Expand Down
4 changes: 2 additions & 2 deletions fiesta/apps/sections/tables/members.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from django.utils.translation import gettext_lazy as _
from django_tables2 import Column, TemplateColumn

from apps.fiestatables.columns import CountryColumn, ImageColumn, LabeledChoicesColumn, NaturalDatetimeColumn
from apps.fiestatables.columns import AvatarColumn, CountryColumn, LabeledChoicesColumn, NaturalDatetimeColumn
from apps.sections.models import SectionMembership


Expand All @@ -20,7 +20,7 @@ class SectionMembershipTable(tables.Table):
),
attrs=dict(a={"hx-disable": True}), # TODO: do it properly
)
user__profile__picture = ImageColumn()
user__profile__picture = AvatarColumn()
user__profile__nationality = CountryColumn(verbose_name=_("Nationality"))
user__profile__faculty__abbr = Column(verbose_name=_("Faculty"))

Expand Down

0 comments on commit 0e68f9e

Please sign in to comment.