From dac257587aa77bcab09f6981a745d164bb3370cb Mon Sep 17 00:00:00 2001 From: Junwei Zhao Date: Sun, 8 Sep 2024 19:18:53 +1000 Subject: [PATCH] UI change --- links/__pycache__/views.cpython-312.pyc | Bin 7110 -> 9086 bytes links/templates/links/link_list.html | 46 +++++++++++++++-- links/views.py | 25 +++++++++ locale/zh_Hans/LC_MESSAGES/django.mo | Bin 1675 -> 1673 bytes locale/zh_Hans/LC_MESSAGES/django.po | 4 +- new_theme/static/css/dist/styles.css | 22 ++++++++ templates/base.html | 65 ++++++++++++++++++------ 7 files changed, 141 insertions(+), 21 deletions(-) diff --git a/links/__pycache__/views.cpython-312.pyc b/links/__pycache__/views.cpython-312.pyc index e77f5401387fd6c2c5d5a21c8a2434cd09059ed4..40b9a921edd7fb771217f864906d38bd629b63dd 100644 GIT binary patch delta 2885 zcmai0eQZO@h+8^7_xz8ct zD}9oGzVDuMe)ryU&OPV-rT4$PeV=%}ZVsNmPW*H9a_zgm%Qm+S-{JYDhrZ@(503Jx za84SQa@+}i*cIg>BK?Q0)n$sQWcrAn;OVQL+U|Ng$Gy#8oV+5cRV%B!}UmGw^B9#>eW+Ew9!f_>Vi+K#N{IMO!_^K8^;R4s6-Hab+* z)TD~PciiNy$#la~@lBpKdK;cws&HCJe+I11Wmu)F#&k(~Do zG0jkpWi@hA*9_B1v}5C04cP2^cEwCP2#FVhOu_)BplW);l-L%Ok&_Vz>`hCJn$n^@ z?iEC24eDE($@G}%Qj`R2Qdbn+0g@0tXXzIE+L;Kvo?1BoNj{L&je|*TYTeQutpKq; z40-nbS#G|j{z7k|roC7b$w}p4-Nmj8U8P{S5Db@sZG~XlmE$+2ioxETvmB_s=(*r2 z1ww^Ds1#@|1X`~gx}g;VJvs67s^IytdsWTl&D%cQczfNZ{K*GK%|*GrBzG3%&Ra%a z?wphR=3)o(2NT7ZT8bqLv1C4bG9OD8W2Y=@&pmHzdE3sr;_WkF-9%?faz{b#n7O6q z<&HUd%Um>;KM*fQM@rGLLUb&zPvxUy#psD;t$*0~OSyjO`HJ$UT>s~Ox#SNO{GluL zMW??bFLivw(Rts>p1*;!S$V14YbY;vC@)Y>RA-W#=CAR;;-6GM!b=Mb+#P!#5ItUI zW>i5H7s?E%IhdLavRoP@tHFeX08CFJONf>>6wD=-NLKcF7v@?1y#p1JK#}6i0Om^~ zlQy&yh5`v5CmqPuiO>ZQ5y*Pfa||4rijy(jbXJtf2AI~dSYkGk9vG0#0H>NCOUI@3 z?PztFeo&Elr7)QHoHnShffubJX#QcJ0( zLn9ZWqZq z7}NghXLewTAX^ZyDv>OJ8L&F3Zp01fvCy7OA!%rnPf5JZ^!@5qUZL~V9}TjMaQ#4d zUc!a2;5<3{X_O!g)BgqAtRSUlJ8Ryv2hbaMR4iu^8wt^W)eX59D<0h^uL{J`d<4Od zpwkm_GasVAkyj0|aEh#HlV%WN+t;%xLuZ~RIn+M@pf6soN~C?d7AJ{ug?)@@I{7td zP0ot-`)&LyG}`dn7uelrdCPJP6M^7v*+G~(c{msUBlS&Y)ND%IO0LrG#@(JqUOxZh R`yBk;-%QUnZWYj%{|6*v+7kc( delta 1427 zcmaKsO=w(I6vyYycjhaT%uJG()=Zj7lf1T=5)%_^8>7&qQjHJGjHa_ zbKk3GWg;$IDt93+y6Hws-IRfX;KxD`#H9%3g1G8NP>>c87ved05()9+!TjcaoO|xM z=YQ_~bN=h;!ngT+CW2ot`(g7z=iS21XicL&ehjHLK3^Gxb?ht0S4jkM8X;Bo+r@uGJkL) zn|YpT-qt{EO4`r0k9Cer3H|uvXA!?2YAN3BswI^S=P<>=^J6%4w@up*n}KjE)vhI49_Q8#1|@95g7~mQy zUZbNotpPQ5Gm_BMOV+&cL-*8C$r# zB4d~Vyp{pDJ2J5YZZiNXIvMj=v;8V8kl!nWPQn_^c5j5Phq>M0z87K*gx~_bIOux0 zI`AS%DHC|RVOJ(Rx4DhE0>(ox;7VKw$#w>D - {% trans "Alias" %} + + + {% trans "Alias" %} + {% if current_sort == 'alias' %} + + + + {% endif %} + + {% trans "Original URL" %} - {% trans "Clicks" %} + + + {% trans "Clicks" %} + {% if current_sort == 'clicks' %} + + + + {% endif %} + + + + + {% trans "Created At" %} + {% if current_sort == 'created_at' %} + + + + {% endif %} + + + + + {% trans "Updated At" %} + {% if current_sort == 'updated_at' %} + + + + {% endif %} + + {% trans "Actions" %} - {% for link in object_list %} + {% for link in links %} @@ -41,6 +79,8 @@ {{ link.original_url }} {{ link.click_count }} + {{ link.created_at|date:"Y-m-d H:i" }} + {{ link.updated_at|date:"Y-m-d H:i" }} {% trans "Edit" %} {% trans "Delete" %} diff --git a/links/views.py b/links/views.py index 78f79e4..4bcad98 100644 --- a/links/views.py +++ b/links/views.py @@ -16,6 +16,31 @@ from django.http import JsonResponse class LinkListView(ListView): model = Link template_name = 'links/link_list.html' + context_object_name = 'links' + + def get_queryset(self): + queryset = super().get_queryset() + sort_by = self.request.GET.get('sort', 'alias') + order = self.request.GET.get('order', 'asc') + + if sort_by == 'alias': + ordering = F('alias').asc(nulls_last=True) if order == 'asc' else F('alias').desc(nulls_last=True) + elif sort_by == 'clicks': + ordering = F('click_count').asc(nulls_last=True) if order == 'asc' else F('click_count').desc(nulls_last=True) + elif sort_by == 'created_at': + ordering = F('created_at').asc(nulls_last=True) if order == 'asc' else F('created_at').desc(nulls_last=True) + elif sort_by == 'updated_at': + ordering = F('updated_at').asc(nulls_last=True) if order == 'asc' else F('updated_at').desc(nulls_last=True) + else: + ordering = F('alias').asc(nulls_last=True) + + return queryset.order_by(ordering) + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + context['current_sort'] = self.request.GET.get('sort', 'alias') + context['current_order'] = self.request.GET.get('order', 'asc') + return context class LinkCreateView(CreateView): model = Link diff --git a/locale/zh_Hans/LC_MESSAGES/django.mo b/locale/zh_Hans/LC_MESSAGES/django.mo index 67b041e66229df39226d9f683937fad5c220fa24..031bc9159c6b4c9d78a109670a52c762a7a35dff 100644 GIT binary patch delta 462 zcmXZYKS%;`6u|MP=UHl(^w0iCXY&oU z(YxgzmVcTf)WLpH2mM3sm*ArB$t0^$gFJ<83MD%@M{RsHErtTx~7O6L2qI3 zu<;t^30*71vY(1?Y%Z}|)DlZSYcDj{^MBkIFX;Az$Jd}U7}He?VK%&?Le|ON5XJF6nv%A{@9>TWcU> zQ=>~mP;T4Te$J;ae0_aCkLTm}xiEj5?>)A2BC_R(c({v8c!XL%!5OULA_n$- z6A#EC>T@H^;wK)aM8=pQ7u~5PER!pik1^@*N;^4Jt#FA8JlL`vqBiPV{lW5+IYe#r zYWdCbhdDNXPzRf!4(icV`xY`6(?9e{+Grd1a3A#|S6074220i)pZYd*VqLTBH8#D4 z!IR%@;Qw0ZP>j5EX=jzwij@oK+gZ_T=@oV9JD+DSM`!6#wszgvJgo<{#(5C=&dc+c W^P9@W_nq%vH@+Lj{Xz8Z4*me&<1Rt~ diff --git a/locale/zh_Hans/LC_MESSAGES/django.po b/locale/zh_Hans/LC_MESSAGES/django.po index c74f259..53f4492 100644 --- a/locale/zh_Hans/LC_MESSAGES/django.po +++ b/locale/zh_Hans/LC_MESSAGES/django.po @@ -78,8 +78,8 @@ msgstr "总点击次数" msgid "Created At" msgstr "创建时间" -msgid "Last Updated" -msgstr "最后更新" +msgid "Updated At" +msgstr "更新时间" msgid "Click Statistics" msgstr "点击统计" diff --git a/new_theme/static/css/dist/styles.css b/new_theme/static/css/dist/styles.css index 465b746..083b96a 100644 --- a/new_theme/static/css/dist/styles.css +++ b/new_theme/static/css/dist/styles.css @@ -900,6 +900,18 @@ select { margin-bottom: 0.5rem; } +.ml-1 { + margin-left: 0.25rem; +} + +.mr-1 { + margin-right: 0.25rem; +} + +.mr-4 { + margin-right: 1rem; +} + .block { display: block; } @@ -952,6 +964,10 @@ select { width: 1rem; } +.w-64 { + width: 16rem; +} + .min-w-full { min-width: 100%; } @@ -1020,6 +1036,12 @@ select { margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse))); } +.space-x-4 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(1rem * var(--tw-space-x-reverse)); + margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); +} + .divide-y > :not([hidden]) ~ :not([hidden]) { --tw-divide-y-reverse: 0; border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse))); diff --git a/templates/base.html b/templates/base.html index 9a2d795..6fa6d2d 100644 --- a/templates/base.html +++ b/templates/base.html @@ -7,6 +7,7 @@ {% trans "URL Manager" %} +