From bc773059e7e54926032c110c146e58dcc9c59a58 Mon Sep 17 00:00:00 2001 From: Nicolas Joyard <joyard.nicolas@gmail.com> Date: Wed, 1 Jun 2016 21:24:48 +0200 Subject: [PATCH] Add social network links --- memopol/templatetags/__init__.py | 0 memopol/templatetags/memopol_tags.py | 20 +++++++++++++++ static/images/facebook.png | Bin 0 -> 1809 bytes static/images/twitter.png | Bin 0 -> 3207 bytes static/less/base.less | 1 + static/less/external.less | 24 ++++++++++++++++++ .../_representative_block.haml | 12 +++++++++ 7 files changed, 57 insertions(+) create mode 100644 memopol/templatetags/__init__.py create mode 100644 memopol/templatetags/memopol_tags.py create mode 100644 static/images/facebook.png create mode 100644 static/images/twitter.png create mode 100644 static/less/external.less diff --git a/memopol/templatetags/__init__.py b/memopol/templatetags/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/memopol/templatetags/memopol_tags.py b/memopol/templatetags/memopol_tags.py new file mode 100644 index 00000000..b01305d1 --- /dev/null +++ b/memopol/templatetags/memopol_tags.py @@ -0,0 +1,20 @@ +# coding: utf-8 +from django import template +from django.utils.safestring import mark_safe +import re + +register = template.Library() +link = '<a class="{network}-link" href="{url}" target="_blank">{user}</a>' + + +@register.filter +def twitter_link(url): + return mark_safe(link.format(network='twitter', url=url, + user=re.sub(r'.*/@?([^/]+)', '@\\1', url))) + + +@register.filter +def facebook_link(url): + return mark_safe(link.format(network='facebook', url=url, + user=re.sub(r'.*/([^/]+)', '\\1', url))) + diff --git a/static/images/facebook.png b/static/images/facebook.png new file mode 100644 index 0000000000000000000000000000000000000000..e4eb58426c769666b1ba0ce7f002dfcd0d846ed0 GIT binary patch literal 1809 zcmbVNc~BE)6pw-$s8~Qnpz3S_3ZgkSAtwaL=71=N4XLCYVn`N9A-m~jQ^HXzf&vOi z6;KCT6&L|au`-I&GI&s`2uc+xRtAe&6fbmOP_$m%AYlJ+{G&U&`+eWr_j~X6uGxaM z;lU2}?)D@S$w3h!RT8Vt`jBT6Z{w{p6|uPCGBqBFCgN!t3?_+nXaWo<44NcZ32Sue zU!I5kNhF(Oy-JO%!$O5x)Iir*b?6p@kwBA3{(%;wMw<fTKmwekM?}=e&8Mh<UMHeP zal)8kMhTp(56Qsb$c%86HX}tV&`|>e0Dp^+Fkpaj4PY^(A||0lM4hlJB=%M@g9=Qj z;3*>NTT<$<wSWZ0V1Pqs)3i(w1h`x}=*!`9!Bqf@39=YW;^xvoUm=GpWbuH>i%NLI zbcsTxR6gm8IEkpqIBpa&7-?x~^fWdd#gZ7HKp?Q%V6kX~2F;X?;2H}JF?mc`kisS{ zrZ?hx6alOjH3_I07f}hOZ$mH`!@{NwBc{nj5h-I>G)4wUXEF>1Yg`lBCR_=>qw!vC zlPcW^GnB9iHDg+$9*G`PU?O)Pc4So~*a#yqJy8@*sub0l4KRW$q#`Qug|5@<giH>f z$Rf{|$zw6Od=TU_`D}><Wb>I4mY5@hrfj?q3kf73lP711xgZw=Wh_1<6GIXio6VO> zAhv)xg;gLXT!U!gDZhHc?<5xdAXX^BU=5C9Dilqf>VUP$D2|$vQ6nIU<O1Gd8m%6& z3RYMP^fq28jOo9Eb#e?f023J&>fggaEa8bExmdvFPev{QeFc26T)+p#kXRz4PGWWc zCu<CX48z(U|7n*g5z&Lz?R4`Khw1Tw5n^UAVmMZIb@mW57pRbmRhGVo`&uF*KXuKE z?;CaUu5`&J&#<*wCz~y+0=5PL?(>~F9YOg*u%xy??)F`7;2H58FLTraUe0p5r+mKG zvC_?U`9UShyLsP7ZvP}_cW-9&ey``W;THXifR=I5_`ZsYKeFy+d)BJlRDvpH!>t7& z%bd#G%7%Q#RWJXM1>d?zFWces$_{J~5j9AEG+zv?#SwDdy7WqANKvY`q9d}*hc?)> z+KF>?$?%P0kIU@SbHn|d9Ts0W&?>g!+1KQ_@0kTT&LoS;fGwrOKDP7*?;1VNH>0!q zV1w%ZQ;ROGAZA<Ioi#|)no%syd0z0cV@nIrX7_FFm@%$A3h&juesMS}M*Z!z=Laq@ zX5YU4f&|q!p6K&f^vl!Ex~ejzx}^E%pHh?j-CN=cYBpRk#AGa`4x)A5w4K=}m+J+w z=T~%wH#SPU%u7qM|MK|e^$7XsgLA?qtUm{Q;=EFl?=SZqZob-AeY|d)=7?SFsjPmB z+nb`2;ycmz9@P%DUa}o?d~&u-8(UWaq2rVl*bt@7w*R>RJK0&WZa`4AWuM`P9TAy8 zn`2)@PxbY*E;Z#hKYLw#(HzR5OLu8S5xc6dr$UG9M|vOib-%ux9J;>v>+%zSM~><f z!pqAg&e7X}HlNRK_dYIuB^;L^4yT;sH)MNweqOq;nKoRrs1li1)G;_l6?yKpG!4b{ zp@UCy4J=l4NO;rn{ZAA7fA?OwP~8HI&2n){aL(}E;+R9;+DZls)DOKN5`{b?7qE5Q z>=;CbP6rgmf9#f-#W4ghoQo8h169wy@CeSI@hqvl$<v0SNL1P#%-iFsbEn8}u4(ON zKs(!alb}NJk*d&(K%47WOYDQ2-Vm$q8^CifG?RRjoZYiN2k@+`sh^d*r}g2>)!mPV zSR0$J-rr@e@9INtD*_f%+{n{~-{hD}vL4<MnqW5}o9K)Q1*_~MsIv5oYh`r%Tr+d) zCYRAdq3f^tF0A@SDJ?bF&$S!M@)7xT_Ox;FVaDN5q_A;)t#56A)X0^)Z^CRMdZMqs hJkU|Qab!2ih6J8FyDDYC&)NEuQpm!k4bX<o{{n3?oIn5o literal 0 HcmV?d00001 diff --git a/static/images/twitter.png b/static/images/twitter.png new file mode 100644 index 0000000000000000000000000000000000000000..7de53332db1ce2f7d51ffd1bed0837ab373b4e80 GIT binary patch literal 3207 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 WO1`e)c>K=G0KnPcu?;7E>Hi1m<JQ0c literal 0 HcmV?d00001 diff --git a/static/less/base.less b/static/less/base.less index 214f4d14..f8cff323 100644 --- a/static/less/base.less +++ b/static/less/base.less @@ -7,6 +7,7 @@ @import 'positions'; @import 'chambers'; @import 'groups'; +@import 'external'; body { background: #E5E5E5; diff --git a/static/less/external.less b/static/less/external.less new file mode 100644 index 00000000..7e27fd5b --- /dev/null +++ b/static/less/external.less @@ -0,0 +1,24 @@ +a.twitter-link:before, +a.facebook-link:before { + content: ' '; + overflow: hidden; + + display: inline-block; + width: 1.5em; + height: 1.5em; + + vertical-align: bottom; +} + +a.twitter-link:before { + background-size: 110%; + background-position: center; + background-image: url(../images/twitter.png); +} + +a.facebook-link:before { + background-size: 75%; + background-repeat: no-repeat; + background-position: center; + background-image: url(../images/facebook.png); +} \ No newline at end of file diff --git a/templates/representatives/_representative_block.haml b/templates/representatives/_representative_block.haml index a02a9be7..63fe335b 100644 --- a/templates/representatives/_representative_block.haml +++ b/templates/representatives/_representative_block.haml @@ -1,3 +1,4 @@ +- load memopol_tags - load representatives_tags - load representatives_recommendations_tags - load humanize @@ -39,3 +40,14 @@ Born in {{ representative.birth_place }} the {{ representative.birth_date|naturalday:'d/m/Y' }} ({{ representative.get_gender_display }}) + + - if representative.social_websites|length > 0 + %tr + %th Social + %td + - for site in representative.social_websites + - if site.kind == 'twitter' + = site.url|twitter_link + - elif site.kind == 'facebook' + = site.url|facebook_link + -- GitLab