diff --git a/files/static/dist/main.css b/files/static/dist/main.css index 4d4a84785..b4bf4bfc5 100644 --- a/files/static/dist/main.css +++ b/files/static/dist/main.css @@ -968,6 +968,10 @@ video { margin-top: 2rem; margin-bottom: 2rem; } +.-mx-3 { + margin-left: -0.75rem; + margin-right: -0.75rem; +} .mb-5 { margin-bottom: 1.25rem; } @@ -1028,9 +1032,6 @@ video { .mb-4 { margin-bottom: 1rem; } -.mb-6 { - margin-bottom: 1.5rem; -} .mr-0 { margin-right: 0px; } @@ -1040,6 +1041,9 @@ video { .mt-auto { margin-top: auto; } +.mb-6 { + margin-bottom: 1.5rem; +} .mb-auto { margin-bottom: auto; } @@ -1061,6 +1065,9 @@ video { .-mt-1 { margin-top: -0.25rem; } +.mt-6 { + margin-top: 1.5rem; +} .ml-4 { margin-left: 1rem; } @@ -1076,9 +1083,6 @@ video { .mb-1\.5 { margin-bottom: 0.375rem; } -.mt-6 { - margin-top: 1.5rem; -} .mr-5 { margin-right: 1.25rem; } @@ -1133,15 +1137,18 @@ video { .h-6 { height: 1.5rem; } +.h-56 { + height: 14rem; +} +.h-4 { + height: 1rem; +} .h-\[10px\] { height: 10px; } .h-8 { height: 2rem; } -.h-56 { - height: 14rem; -} .h-48 { height: 12rem; } @@ -1160,9 +1167,6 @@ video { .h-3 { height: 0.75rem; } -.h-4 { - height: 1rem; -} .h-2 { height: 0.5rem; } @@ -1214,6 +1218,12 @@ video { .w-32 { width: 8rem; } +.w-4 { + width: 1rem; +} +.w-56 { + width: 14rem; +} .w-48 { width: 12rem; } @@ -1232,9 +1242,6 @@ video { .w-72 { width: 18rem; } -.w-56 { - width: 14rem; -} .w-2\/4 { width: 50%; } @@ -1409,6 +1416,11 @@ video { margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.5rem * var(--tw-space-y-reverse)); } +.space-y-2\.5 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(0.625rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(0.625rem * var(--tw-space-y-reverse)); +} .space-y-6 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse))); @@ -1429,6 +1441,11 @@ video { margin-right: calc(1.25rem * var(--tw-space-x-reverse)); margin-left: calc(1.25rem * calc(1 - var(--tw-space-x-reverse))); } +.space-y-8 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(2rem * var(--tw-space-y-reverse)); +} .divide-x > :not([hidden]) ~ :not([hidden]) { --tw-divide-x-reverse: 0; border-right-width: calc(1px * var(--tw-divide-x-reverse)); @@ -1443,14 +1460,14 @@ video { --tw-divide-opacity: 1; border-color: rgba(var(--color-900), var(--tw-divide-opacity)); } -.divide-gray-400 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgba(var(--color-400), var(--tw-divide-opacity)); -} .divide-gray-300 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: rgba(var(--color-300), var(--tw-divide-opacity)); } +.divide-gray-400 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgba(var(--color-400), var(--tw-divide-opacity)); +} .divide-red-300 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: rgba(252, 165, 165, var(--tw-divide-opacity)); @@ -1692,6 +1709,22 @@ video { --tw-bg-opacity: 1; background-color: rgba(253, 230, 138, var(--tw-bg-opacity)); } +.bg-blue-200 { + --tw-bg-opacity: 1; + background-color: rgba(186, 230, 253, var(--tw-bg-opacity)); +} +.bg-green-200 { + --tw-bg-opacity: 1; + background-color: rgba(187, 247, 208, var(--tw-bg-opacity)); +} +.bg-pink-200 { + --tw-bg-opacity: 1; + background-color: rgba(251, 207, 232, var(--tw-bg-opacity)); +} +.bg-purple-200 { + --tw-bg-opacity: 1; + background-color: rgba(233, 213, 255, var(--tw-bg-opacity)); +} .bg-blue-100 { --tw-bg-opacity: 1; background-color: rgba(224, 242, 254, var(--tw-bg-opacity)); @@ -1977,13 +2010,13 @@ video { --tw-bg-opacity: 1; background-color: rgba(54, 83, 20, var(--tw-bg-opacity)); } +.bg-gray-300\/40 { + background-color: rgba(var(--color-300), 0.4); +} .bg-yellow-100 { --tw-bg-opacity: 1; background-color: rgba(254, 243, 199, var(--tw-bg-opacity)); } -.bg-gray-300\/40 { - background-color: rgba(var(--color-300), 0.4); -} .bg-green-500 { --tw-bg-opacity: 1; background-color: rgba(34, 197, 94, var(--tw-bg-opacity)); @@ -1992,9 +2025,6 @@ video { --tw-bg-opacity: 1; background-color: rgba(239, 68, 68, var(--tw-bg-opacity)); } -.bg-opacity-40 { - --tw-bg-opacity: 0.4; -} .bg-gradient-to-t { background-image: linear-gradient(to top, var(--tw-gradient-stops)); } @@ -2145,14 +2175,14 @@ video { padding-left: 1.25rem; padding-right: 1.25rem; } -.px-6 { - padding-left: 1.5rem; - padding-right: 1.5rem; -} .py-24 { padding-top: 6rem; padding-bottom: 6rem; } +.px-6 { + padding-left: 1.5rem; + padding-right: 1.5rem; +} .py-0\.5 { padding-top: 0.125rem; padding-bottom: 0.125rem; @@ -2212,6 +2242,9 @@ video { .pr-7 { padding-right: 1.75rem; } +.pt-2\.5 { + padding-top: 0.625rem; +} .pt-28 { padding-top: 7rem; } @@ -2395,10 +2428,26 @@ video { --tw-text-opacity: 1; color: rgba(186, 230, 253, var(--tw-text-opacity)); } +.text-blue-600 { + --tw-text-opacity: 1; + color: rgba(2, 132, 199, var(--tw-text-opacity)); +} +.text-pink-600 { + --tw-text-opacity: 1; + color: rgba(219, 39, 119, var(--tw-text-opacity)); +} +.text-purple-600 { + --tw-text-opacity: 1; + color: rgba(147, 51, 234, var(--tw-text-opacity)); +} .text-red-200 { --tw-text-opacity: 1; color: rgba(254, 202, 202, var(--tw-text-opacity)); } +.text-green-400 { + --tw-text-opacity: 1; + color: rgba(74, 222, 128, var(--tw-text-opacity)); +} .text-\[\#dc2626\] { --tw-text-opacity: 1; color: rgba(220, 38, 38, var(--tw-text-opacity)); @@ -3010,6 +3059,25 @@ video { .btn-yellow:focus { --tw-text-opacity: 1; color: rgba(var(--color-200), var(--tw-text-opacity)); +} + .btn-purple { + --tw-border-opacity: 1; + border-color: rgba(88, 28, 135, var(--tw-border-opacity)); + background-image: linear-gradient(to top, var(--tw-gradient-stops)); + --tw-gradient-from: #7e22ce; + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(126, 34, 206, 0)); + --tw-gradient-to: #9333ea; + --tw-text-opacity: 1; + color: rgba(var(--color-100), var(--tw-text-opacity)); +} + .btn-purple:hover { + --tw-gradient-from: #9333ea; + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(147, 51, 234, 0)); + --tw-gradient-to: #7e22ce; +} + .btn-purple:focus { + --tw-text-opacity: 1; + color: rgba(var(--color-200), var(--tw-text-opacity)); } .btn-black { border-color: rgba(0, 0, 0, 0.1); @@ -3210,6 +3278,15 @@ video { text-transform: uppercase !important; } +.first\:pt-0:first-child { + padding-top: 0px; +} + +.odd\:bg-gray-300:nth-child(odd) { + --tw-bg-opacity: 1; + background-color: rgba(var(--color-300), var(--tw-bg-opacity)); +} + .odd\:bg-gray-200:nth-child(odd) { --tw-bg-opacity: 1; background-color: rgba(var(--color-200), var(--tw-bg-opacity)); @@ -3226,6 +3303,10 @@ video { transform: var(--tw-transform); } +.hover\:cursor-pointer:hover { + cursor: pointer; +} + .hover\:border-gray-400:hover { --tw-border-opacity: 1; border-color: rgba(var(--color-400), var(--tw-border-opacity)); @@ -3246,15 +3327,15 @@ video { background-color: rgba(var(--color-700), var(--tw-bg-opacity)); } -.hover\:bg-black\/30:hover { - background-color: rgba(0, 0, 0, 0.3); -} - .hover\:bg-gray-400:hover { --tw-bg-opacity: 1; background-color: rgba(var(--color-400), var(--tw-bg-opacity)); } +.hover\:bg-black\/30:hover { + background-color: rgba(0, 0, 0, 0.3); +} + .hover\:bg-gray-100:hover { --tw-bg-opacity: 1; background-color: rgba(var(--color-100), var(--tw-bg-opacity)); @@ -3354,6 +3435,11 @@ video { color: rgba(255, 255, 255, var(--tw-text-opacity)); } +.hover\:text-yellow-400:hover { + --tw-text-opacity: 1; + color: rgba(251, 191, 36, var(--tw-text-opacity)); +} + .hover\:text-green-700:hover { --tw-text-opacity: 1; color: rgba(21, 128, 61, var(--tw-text-opacity)); @@ -3416,6 +3502,11 @@ video { background-image: linear-gradient(to top, var(--tw-gradient-stops)); } +.focus\:from-gray-100:focus { + --tw-gradient-from: rgb(var(--color-100)); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(var(--color-100), 0)); +} + .focus\:from-red-800:focus { --tw-gradient-from: #991b1b; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(153, 27, 27, 0)); @@ -3426,16 +3517,15 @@ video { --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(217, 119, 6, 0)); } -.focus\:from-gray-100:focus { - --tw-gradient-from: rgb(var(--color-100)); - --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(var(--color-100), 0)); -} - .focus\:from-green-800:focus { --tw-gradient-from: #166534; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(22, 101, 52, 0)); } +.focus\:to-gray-200:focus { + --tw-gradient-to: rgb(var(--color-200)); +} + .focus\:to-red-700:focus { --tw-gradient-to: #b91c1c; } @@ -3444,10 +3534,6 @@ video { --tw-gradient-to: #f59e0b; } -.focus\:to-gray-200:focus { - --tw-gradient-to: rgb(var(--color-200)); -} - .focus\:to-green-700:focus { --tw-gradient-to: #15803d; } @@ -3574,6 +3660,11 @@ video { animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; } +.group:hover .group-hover\:text-primary { + --tw-text-opacity: 1; + color: rgba(var(--color-primary), var(--tw-text-opacity)); +} + .peer:checked ~ .peer-checked\:border-blue-500 { --tw-border-opacity: 1; border-color: rgba(14, 165, 233, var(--tw-border-opacity)); @@ -3593,6 +3684,11 @@ video { box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } +.dark .dark\:divide-gray-700 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgba(var(--color-700), var(--tw-divide-opacity)); +} + .dark .dark\:border-b { border-bottom-width: 1px; } @@ -3686,11 +3782,29 @@ video { color: rgba(var(--color-300), var(--tw-text-opacity)); } +.dark .dark\:text-gray-700 { + --tw-text-opacity: 1; + color: rgba(var(--color-700), var(--tw-text-opacity)); +} + +.dark .dark\:odd\:bg-white\/\[\.05\]:nth-child(odd) { + background-color: rgba(255, 255, 255, .05); +} + .dark .dark\:visited\:text-gray-400:visited { --tw-text-opacity: 1; color: rgba(var(--color-400), var(--tw-text-opacity)); } +.dark .dark\:hover\:bg-white\/10:hover { + background-color: rgba(255, 255, 255, 0.1); +} + +.dark .dark\:hover\:bg-gray-700:hover { + --tw-bg-opacity: 1; + background-color: rgba(var(--color-700), var(--tw-bg-opacity)); +} + .dark .dark\:hover\:bg-gray-600:hover { --tw-bg-opacity: 1; background-color: rgba(var(--color-600), var(--tw-bg-opacity)); @@ -3706,6 +3820,11 @@ video { color: rgba(var(--color-400), var(--tw-text-opacity)); } +.dark .dark\:hover\:text-primary:hover { + --tw-text-opacity: 1; + color: rgba(var(--color-primary), var(--tw-text-opacity)); +} + .dark .dark\:focus\:bg-transparent:focus { background-color: transparent; } @@ -3788,15 +3907,15 @@ video { padding-right: 0px; } - .sm\:text-lg { - font-size: 1.125rem; - line-height: 1.75rem; - } - .sm\:text-base { font-size: 1rem; line-height: 1.5rem; } + + .sm\:text-lg { + font-size: 1.125rem; + line-height: 1.75rem; + } } @media (min-width: 768px) { @@ -3809,6 +3928,11 @@ video { margin: 0px; } + .md\:my-3 { + margin-top: 0.75rem; + margin-bottom: 0.75rem; + } + .md\:mt-6 { margin-top: 1.5rem; } @@ -3869,6 +3993,10 @@ video { height: 5rem; } + .md\:h-12 { + height: 3rem; + } + .md\:w-4 { width: 1rem; } @@ -3893,6 +4021,10 @@ video { width: 50%; } + .md\:w-12 { + width: 3rem; + } + .md\:max-w-xl { max-width: 36rem; } @@ -3913,6 +4045,10 @@ video { justify-content: center; } + .md\:justify-around { + justify-content: space-around; + } + .md\:space-x-3 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(0.75rem * var(--tw-space-x-reverse)); @@ -3995,6 +4131,10 @@ video { padding: 0.75rem; } + .md\:p-5 { + padding: 1.25rem; + } + .md\:py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; @@ -4025,6 +4165,11 @@ video { padding-right: 0.75rem; } + .md\:py-4 { + padding-top: 1rem; + padding-bottom: 1rem; + } + .md\:pl-3 { padding-left: 0.75rem; } @@ -4049,6 +4194,10 @@ video { padding-top: 0.25rem; } + .md\:pl-4 { + padding-left: 1rem; + } + .md\:text-xl { font-size: 1.25rem; line-height: 1.75rem; @@ -4064,6 +4213,16 @@ video { line-height: 2.25rem; } + .md\:text-base { + font-size: 1rem; + line-height: 1.5rem; + } + + .md\:text-lg { + font-size: 1.125rem; + line-height: 1.75rem; + } + .md\:hover\:opacity-100:hover { opacity: 1; } diff --git a/files/static/src/main.css b/files/static/src/main.css index 84951e7dc..13682071e 100644 --- a/files/static/src/main.css +++ b/files/static/src/main.css @@ -407,6 +407,9 @@ .btn-yellow { @apply bg-gradient-to-t from-yellow-700 to-yellow-600 hover:from-yellow-600 hover:to-yellow-700 border-yellow-900 text-gray-100 focus:text-gray-200; } + .btn-purple { + @apply bg-gradient-to-t from-purple-700 to-purple-600 hover:from-purple-600 hover:to-purple-700 border-purple-900 text-gray-100 focus:text-gray-200; + } .btn-black { @apply bg-white bg-gradient-to-t from-black to-black/80 hover:from-black/90 hover:to-black border-black/10 text-gray-100 focus:text-gray-200; } diff --git a/files/templates/CHRISTMAS/admin/admin_home.html b/files/templates/CHRISTMAS/admin/admin_home.html index ffff55435..75b685001 100644 --- a/files/templates/CHRISTMAS/admin/admin_home.html +++ b/files/templates/CHRISTMAS/admin/admin_home.html @@ -1,3 +1,167 @@ +{% + set stats = [ + { + 'stat': 'users', + 'count': '6,506', + 'description': 'up 12% since last month' + }, + { + 'stat': 'posts', + 'count': '60,506', + 'description': 'up 6% since last month' + }, + { + 'stat': 'comments', + 'count': '495,267', + 'description': 'up 2% since last month' + } + ] +%} + + +{% + set sections = [ + { + 'title': 'content', + 'color': 'red', + 'content': [ + { + 'icon': 'fa-pencil', + 'title': 'Reported Posts', + 'description': 'Community-flagged posts', + 'link': '/admin/reported/posts' + }, + { + 'icon': 'fa-comment-alt', + 'title': 'Reported Comments', + 'description': 'Community-flagged comments', + 'link': '/admin/reported/comments' + }, + { + 'icon': 'fa-image', + 'title': 'Image Posts', + 'description': 'User-uploaded media', + 'link': '/admin/image_posts' + }, + { + 'icon': 'fa-align-slash', + 'title': 'Removed Posts', + 'description': 'Posts removed by mods', + 'link': '/admin/removed/posts' + }, + { + 'icon': 'fa-comment-alt-slash', + 'title': 'Removed Comments', + 'description': 'Comments removed by mods', + 'link': '/admin/removed/comments' + } + ] + }, + { + 'title': 'users', + 'color': 'blue', + 'content': [ + { + 'icon': 'fa-ghost', + 'title': 'Shadow Banned', + 'description': 'Users currently shadow banned', + 'link': '/admin/shadowbanned' + }, + { + 'icon': 'fa-republican', + 'title': 'Agenda Posters', + 'description': 'Users with agenda poster mode', + 'link': '/admin/agendaposters' + }, + { + 'icon': 'fa-seedling', + 'title': 'Grass Award', + 'description': 'Users with active grass award', + 'link': '/admin/grassed' + }, + { + 'icon': 'fa-users', + 'title': 'Users Feed', + 'description': 'Updated feed of sign ups', + 'link': '/admin/users' + } + ] + }, + { + 'title': 'grant', + 'color': 'pink', + 'content': [ + { + 'icon': 'fa-trophy', + 'title': 'Give Award', + 'description': 'Give users awards', + 'link': '/admin/awards' + }, + { + 'icon': 'fa-badge', + 'title': 'Grant Badge', + 'description': 'Grant users badges', + 'link': '/admin/badge_grant' + } + ] + }, + { + 'title': 'safety', + 'color': 'green', + 'content': [ + { + 'icon': 'fa-ban', + 'title': 'Banned Domains', + 'description': 'Domains banned site-wide', + 'link': '/admin/banned_domains' + }, + { + 'icon': 'fa-search', + 'title': 'Vote Fraud Analysis', + 'description': 'Check alt-account voting', + 'link': '/admin/alt_votes' + } + ] + }, + { + 'title': 'Metrics', + 'color': 'purple', + 'content': [ + { + 'icon': 'fa-list-ol', + 'title': 'Content stats', + 'description': 'Post, comment, etc. numbers', + 'link': '/stats' + }, + { + 'icon': 'fa-chart-bar', + 'title': 'Content charts', + 'description': 'Visualize site stats', + 'link': '/charts' + } + ] + }, + { + 'title': 'Meta', + 'color': 'gray', + 'content': [ + { + 'icon': 'fa-wrench', + 'title': 'API access', + 'description': 'Approved apps', + 'link': '/admin/apps' + }, + { + 'icon': 'fa-columns', + 'title': 'Sidebar', + 'description': 'Edit the frontpage sidebar', + 'link': '/admin/sidebar' + } + ] + } + ] +%} + {% extends "CHRISTMAS/default.html" %} {% block title %} @@ -5,56 +169,94 @@ {% endblock %} -{% block content %} -
++{% endblock %} \ No newline at end of file diff --git a/files/templates/CHRISTMAS/admin/apps.html b/files/templates/CHRISTMAS/admin/apps.html index c9f963a3d..e5474d1b2 100644 --- a/files/templates/CHRISTMAS/admin/apps.html +++ b/files/templates/CHRISTMAS/admin/apps.html @@ -5,6 +5,36 @@ {% endblock %} +{% block subHeader %} +++ {% if u1 and u2 %} ++ Vote Info +
+ ++- ++ Analysis +
++ +
++ + - -+ @{{u1.username}} only(% unique) +Both +@{{u2.username}} only (% unique) +Vote Info
++ +Post Upvotes +{{data['u1_only_post_ups']}} ({{data['u1_post_ups_unique']}}%) +{{data['both_post_ups']}} +{{data['u2_only_post_ups']}} ({{data['u2_post_ups_unique']}}%) ++ +Post Downvotes +{{data['u1_only_post_downs']}} ({{data['u1_post_downs_unique']}}%) +{{data['both_post_downs']}} +{{data['u2_only_post_downs']}} ({{data['u2_post_downs_unique']}}%) ++ +Comment Upvotes +{{data['u1_only_comment_ups']}} ({{data['u1_comment_ups_unique']}}%) +{{data['both_comment_ups']}} +{{data['u2_only_comment_ups']}} ({{data['u2_comment_ups_unique']}}%) ++ +Comment Downvotes +{{data['u1_only_comment_downs']}} ({{data['u1_comment_downs_unique']}}%) +{{data['both_comment_downs']}} +{{data['u2_only_comment_downs']}} ({{data['u2_comment_downs_unique']}}%) +++ {% endif %} - -+ Link Acocunts +
+ {% if u2 in u1.alts %} +Accounts are known alts of eachother.
+ {% else %} -{% if u1 and u2 %} +Two accounts controlled by different people should have most uniqueness percentages at or above 70-80%
+A sockpuppet account will have its uniqueness percentages significantly lower.
+ -Analysis
+ +- -
- -- - - -- @{{u1.username}} only(% unique) -Both -@{{u2.username}} only (% unique) -- -Post Upvotes -{{data['u1_only_post_ups']}} ({{data['u1_post_ups_unique']}}%) -{{data['both_post_ups']}} -{{data['u2_only_post_ups']}} ({{data['u2_post_ups_unique']}}%) -- -Post Downvotes -{{data['u1_only_post_downs']}} ({{data['u1_post_downs_unique']}}%) -{{data['both_post_downs']}} -{{data['u2_only_post_downs']}} ({{data['u2_post_downs_unique']}}%) -- -Comment Upvotes -{{data['u1_only_comment_ups']}} ({{data['u1_comment_ups_unique']}}%) -{{data['both_comment_ups']}} -{{data['u2_only_comment_ups']}} ({{data['u2_comment_ups_unique']}}%) -- -Comment Downvotes -{{data['u1_only_comment_downs']}} ({{data['u1_comment_downs_unique']}}%) -{{data['both_comment_downs']}} -{{data['u2_only_comment_downs']}} ({{data['u2_comment_downs_unique']}}%) -Link Accounts
- -{% if u2 in u1.alts %} -Accounts are known alts of eachother.
-{% else %} - -Two accounts controlled by different people should have most uniqueness percentages at or above 70-80%
-A sockpuppet account will have its uniqueness percentages significantly lower.
- -Link Accounts - - -{% endif %} - -{% endif %} + {% endif %}+ ++{% endblock %} + {% block content %}++++ ++ API Access +
++
+- + Admin Dashboard +
+- + +
+- + API Access +
+{% for app in apps %} diff --git a/files/templates/CHRISTMAS/admin/awards.html b/files/templates/CHRISTMAS/admin/awards.html index 847eb6fdb..8cfeba731 100644 --- a/files/templates/CHRISTMAS/admin/awards.html +++ b/files/templates/CHRISTMAS/admin/awards.html @@ -6,8 +6,43 @@ {% block pagetype %}message{% endblock %} -{% block content %} +{% block subHeader %} ++ ++{% endblock %} +{% block content %}+++++ Awards +
++
+- + Admin Dashboard +
+- + +
+- + Awards +
++ + {% if 'rdrama.net' not in request.host or v.admin_level > 2 %} + + {% endif %} ++{% if error %} @@ -33,41 +68,45 @@{% endif %} - - -User Award Grant
- -