From 296dd2f5b080ef9273e2f30adeb7634d3cdda8af Mon Sep 17 00:00:00 2001 From: Ihsan Ullah Date: Sun, 6 Aug 2023 12:19:43 +0500 Subject: [PATCH 1/6] competition model updated with reward, contact email and report --- .../migrations/0035_auto_20230806_0715.py | 28 +++++++++++++++++++ src/apps/competitions/models.py | 4 +++ 2 files changed, 32 insertions(+) create mode 100644 src/apps/competitions/migrations/0035_auto_20230806_0715.py diff --git a/src/apps/competitions/migrations/0035_auto_20230806_0715.py b/src/apps/competitions/migrations/0035_auto_20230806_0715.py new file mode 100644 index 000000000..68b33c11d --- /dev/null +++ b/src/apps/competitions/migrations/0035_auto_20230806_0715.py @@ -0,0 +1,28 @@ +# Generated by Django 2.2.17 on 2023-08-06 07:15 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('competitions', '0034_auto_20230727_1147'), + ] + + operations = [ + migrations.AddField( + model_name='competition', + name='contact_email', + field=models.EmailField(blank=True, max_length=256, null=True), + ), + migrations.AddField( + model_name='competition', + name='report', + field=models.CharField(blank=True, max_length=256, null=True), + ), + migrations.AddField( + model_name='competition', + name='reward', + field=models.CharField(blank=True, max_length=256, null=True), + ), + ] diff --git a/src/apps/competitions/models.py b/src/apps/competitions/models.py index b30988106..063914268 100644 --- a/src/apps/competitions/models.py +++ b/src/apps/competitions/models.py @@ -54,6 +54,10 @@ class Competition(ChaHubSaveMixin, models.Model): fact_sheet = JSONField(blank=True, null=True, max_length=4096, default=None) + contact_email = models.EmailField(max_length=256, null=True, blank=True) + reward = models.CharField(max_length=256, null=True, blank=True) + report = models.CharField(max_length=256, null=True, blank=True) + def __str__(self): return f"competition-{self.title}-{self.pk}-{self.competition_type}" From cb932d1e34009215834bab6600c86802d4456f70 Mon Sep 17 00:00:00 2001 From: Ihsan Ullah Date: Sun, 6 Aug 2023 12:32:08 +0500 Subject: [PATCH 2/6] reward functionality added --- src/apps/api/serializers/competitions.py | 3 ++ src/apps/competitions/unpackers/v2.py | 1 + src/static/img/trophy.png | Bin 0 -> 6557 bytes .../riot/competitions/detail/_header.tag | 26 ++++++++++++++++++ .../editor/_competition_details.tag | 6 ++++ src/static/riot/competitions/editor/form.tag | 6 +++- src/static/riot/competitions/public-list.tag | 3 +- .../competitions/tile/competition_tile.tag | 3 +- 8 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 src/static/img/trophy.png diff --git a/src/apps/api/serializers/competitions.py b/src/apps/api/serializers/competitions.py index d29ca7ba7..b5411aff0 100644 --- a/src/apps/api/serializers/competitions.py +++ b/src/apps/api/serializers/competitions.py @@ -209,6 +209,7 @@ class Meta: 'allow_robot_submissions', 'competition_type', 'fact_sheet', + 'reward', ) def validate_phases(self, phases): @@ -297,6 +298,7 @@ class Meta: 'competition_type', 'fact_sheet', 'forum', + 'reward', ) def get_leaderboards(self, instance): @@ -326,6 +328,7 @@ class Meta: 'logo', 'description', 'competition_type', + 'reward', ) diff --git a/src/apps/competitions/unpackers/v2.py b/src/apps/competitions/unpackers/v2.py index 4f5488f22..653148e9f 100644 --- a/src/apps/competitions/unpackers/v2.py +++ b/src/apps/competitions/unpackers/v2.py @@ -18,6 +18,7 @@ def __init__(self, *args, **kwargs): "description": self.competition_yaml.get("description", ""), "competition_type": self.competition_yaml.get("competition_type", "competition"), "fact_sheet": self.competition_yaml.get("fact_sheet", None), + "reward": self.competition_yaml.get("reward", None), "pages": [], "phases": [], "leaderboards": [], diff --git a/src/static/img/trophy.png b/src/static/img/trophy.png new file mode 100644 index 0000000000000000000000000000000000000000..c810f3408731f91541bb58e35bb5d9bc076c36d5 GIT binary patch literal 6557 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
wPLIhxD@dN z3o1gDq&*LD()T=M!Hhp0ZeYXrm5fS>XY>HCTrg=^B7gt70()~Js)ECielm>HpB-ZY z^-bV5Lca4EJpH!!vxGP!Z(l!}UfsQ~f6MMF=B@u(FZ${TB3bw6p%`ZvXRoH^(;Z^l)mIz+6!owiN{bFjHG-m4`5z>ChPR0)PF%31qOF$pQSp%LGd2eYW zFMfLzv(dn*Llc>n){`x}t2xqqqL|eN-|m5{=fu`w5|SjmeI&$pxN;Q~%k*@Uh9&aC z)g!SwB-VX)gezajXQwvLkAyG`T?uF%E`o?~Mz+lZ{*Efe2?$m3iVFsF)`*@=egDtLx0Fop;ee4dggIMwqd>{+XO6+Fj^V`PpO~DBs{Z}caHM*wzQs8&A z)40=CgggCbZ-m3cjp*z^`X-o3>S0#fxw+w2@Z|FF3@{MXHwxVW!0k^drG5}bp2|8$ zOPST22sg01@YAC=7zp>|>h@RPiijXqhbkr&|k&9MGW-2jg!#G3v( z5jY64t%wx{aAN}E*jbIMZ{MD9Qx^PgerRR{hf^4IUfc{XZV~S1I@pU)-e_GuqZF~m z007+)d*x-Q(x!p1;LSK47S0yi#w2|!wBM+x5>xyep9t?|J@+xh*6lHbjzc>qL@{EK z0o)jckfhatrydxMFkvK|dm3b>2?NupVJ#&%_q5M<3NPbUjzjnWv4h#) z-Y?RHz;Fh_FW!ZpN3@$wNPT-Er4ANX-=3n*-}@0;xlM?JHM;Xh+y}te_(^0Eid`kK4_Mdv#8MkX&L0XvWrD#oBL2 zY%x15IywU!M;1YIpwg;Nrw)#KPxhw#V-g3e6k4B85htg0Safs-0F@PP_hD7gs>56U zsZ=x5Zx7L!q6VFT0Tj{rnsbkwUe$eeg@yrqMDlkGbOr`cB&0fYOyzRt@;dAvQcnLM zoH#l(Is*eJ{OUEq7m~MJYt=A7bea1IGKXVvbJVAR5Z= z8KN;o4LTJA7!7Fi7n;2caK;d$I`(in9UL8<0ZvACX3=TGdeA>nu?hyo&5)GU- zSn*0mH}}zD(a{+oOJ0~WLC;6r02Xf=lDT6vUSC=2ijIVi&Hz`)3t5x28A<`@=4Fh_ zGc^owd635xRp`hJFant5E@Tc#AY+hz!b;4EU=+*1m}Dd42Pj_4>8N%R9SO1Q6lw-8 zLIj440tTS;aZGHk14P>T=>d2*C1TAB29GlWk+QDh$+O{5-9}O1_SglqnDk{j!%j4sZ zKc=cm;Wm&1WD+AXK`ezjU4l5A0uaPsxpF0`si~Ud-a-wt*^DGf^zGZ1%*;%(v$JVx z@;I9&BaUy)ZMlc&K`d=l&-lAt9`5z8(w)gXfGvv)N4d?g}MS z3o6IxLo6{sED5YJGuBvQfG&gpT@2945iL{IWJCt>v9z4CU>waJzDA=_bE;<~V7GgN zN{$>kB3BGGA&$<`g9D)}cpBId%JIbtE+INqyWvnBM|`^&4KqLy5c!{TWN-+PA30)( zGy@DqWc32X)E?>WT__;QjsSByooXAx5JdX?h#=B$TcOGuF=7OhCr^&lSVD&C>S}B@ z;b4%HlS4^KiTvZpsWa)?1$26JF+e9r7Xx&1bTL3DM;8Nha&$33Cr1|pbaF&m5i}eq zbQcm566n<{22YD_1rCS9qx`9_ug7Xt literal 0 HcmV?d00001 diff --git a/src/static/riot/competitions/detail/_header.tag b/src/static/riot/competitions/detail/_header.tag index 3b34c066f..4676b5074 100644 --- a/src/static/riot/competitions/detail/_header.tag +++ b/src/static/riot/competitions/detail/_header.tag @@ -15,6 +15,12 @@ +
+
+ +
{competition.reward}
+
+
Edit
+
+ + +