diff --git a/.gitignore b/.gitignore index c4bb9c0..86b4cf9 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ db.sqlite3 *.mo .env venv/ +.venv/ diff --git a/src/membership/templates/membership/members_admin_detail.html b/src/membership/templates/membership/members_admin_detail.html index c3e02b7..88cbd4a 100644 --- a/src/membership/templates/membership/members_admin_detail.html +++ b/src/membership/templates/membership/members_admin_detail.html @@ -7,6 +7,7 @@ {% block content %} +

{{ member.username }}

@@ -39,5 +40,6 @@ {% else %} {% trans "No memberships" %} {% endif %} +
{% endblock %} diff --git a/src/membership/templates/membership/membership_overview.html b/src/membership/templates/membership/membership_overview.html index 3e12bb7..88cc24f 100644 --- a/src/membership/templates/membership/membership_overview.html +++ b/src/membership/templates/membership/membership_overview.html @@ -7,6 +7,8 @@ {% block content %} +
+

Membership settings

{% if not current_membership %}

{% trans "You do not have an active membership!" %}

@@ -24,4 +26,38 @@

{% trans "Period" %}: {{ current_period.lower|date:"SHORT_DATE_FORMAT" }} to {{ current_period.upper|date:"SHORT_DATE_FORMAT"|default:next_general_assembly }}

{% trans "Type" %}: {{ current_membership.membership_type }}

{% endif %} - {% endblock %} +
+ +
+

Profile settings

+
+
+ + +
+ +
+ + +
+ +
+ + +
+ + +
+
+ +
+

Email settings

+ +
+{% endblock %} diff --git a/src/membership/views.py b/src/membership/views.py index 17005eb..a325e29 100644 --- a/src/membership/views.py +++ b/src/membership/views.py @@ -70,6 +70,7 @@ def members_admin_detail(request, member_id): context = { "member": member, "subscription_periods": subscription_periods, + "base_path": "admin-members", } return render( diff --git a/src/project/static/css/style.css b/src/project/static/css/style.css new file mode 100644 index 0000000..7a6f045 --- /dev/null +++ b/src/project/static/css/style.css @@ -0,0 +1,362 @@ +/* Reset */ +*, *::before, *::after { + box-sizing: border-box; +} +* { + margin: 0; +} +body { + line-height: 1.5; +} +img, picture, video, canvas, svg { + display: block; + max-width: 100%; +} +input, button, textarea, select { + font: inherit; +} +p, h1, h2, h3, h4, h5, h6 { + overflow-wrap: break-word; +} +#root, #__next { + isolation: isolate; +} + +/* Variables */ +:root { + /* Colors */ + --light : #fff; + --light-dust : #f6f6f6; + --dust : #f1f1f1; + --dark-dust : #bfbfbf; + --fade : #878787; + --twilight : #4a4a4a; + --dark : #2a2a2a; + --custard : #f0dcac; + --water : #a8f3f4; + --splash : #4b3aba; + + /* Sizes */ + --space : 12px; + --double-space : calc(var(--space) * 2); + --half-space : calc(var(--space) / 2); + --quarter-space : calc(var(--space) / 4); + --outer-space : var(--double-space); +} + +@media (min-width: 1380px) { + :root { + --outer-space : 15%; + } +} + +html, body { + height : 100%; +} + +h1, h2, h3, h4, h5, h6 { + font-weight : 600; + color : var(--twilight); +} + +a { + font-weight : 500; +} + +body { + margin : 0; + padding : 0; + background : var(--custard); + font-family : Inter; + font-weight : 400; + line-height : 1.6; + color : var(--dark); +} + +header { + display : flex; + padding : var(--double-space) var(--outer-space); + background : var(--light); + justify-content : space-between; + align-items : center; +} + +header > h1 { + font-size : 1.44em; +} + +header > a.logout { + padding : 6px 12px; + border-radius : 6px; + background : var(--twilight); + text-decoration : none; + color : var(--dust); +} + +header > a.logout:hover { + background : var(--splash); + color : var(--light); +} + +aside { + padding : var(--double-space) var(--outer-space); + background : var(--light); +} + +aside > div { + background : var(--dust); + padding : var(--double-space); + border-radius : var(--quarter-space); + overflow : hidden; +} + +aside > div > h2 { + font-size : 1.22em; + margin : 0 0 6px 0; +} + +aside > div > figure { + width : 100px; + height : 100px; + border : 1px solid var(--dark-dust); + float : left; + margin-right : var(--double-space); +} + +aside > div > dl { + overflow : hidden; +} + +aside > div > dl > dt { + float : left; + clear : left; + margin : 0 var(--double-space) 0 0; + width : 180px; + font-weight : 600; + color : var(--twilight); +} + +nav { + display : block; + border-bottom : 1px solid var(--dark-dust); + background : var(--light); +} + +nav ol { + margin: 0 calc(var(--outer-space)); + padding : 0; + list-style-type : none; + overflow : hidden; +} + +nav ol li { + margin : 0; + padding : 0; + float : left; +} + +nav > ol > li > a { + display : block; + padding : var(--half-space) var(--half-space) var(--quarter-space); + margin : 0 var(--space); + border-bottom : var(--half-space) solid transparent; + text-decoration : none; + color : var(--dark); + cursor : pointer; + font-weight : 500; + letter-spacing : 0.04em; +} + +nav > ol > li:first-child > a { + margin-left : 0; +} + +nav ol li a:hover { + border-color : rgba(0,0,0,0.6); +} + +nav ol li a.current { + font-weight : bold; + border-color : var(--splash); + color : var(--splash); +} + +article { + padding : var(--double-space) var(--outer-space); +} + +article > div { + background : var(--dust); + padding : var(--double-space); + margin-bottom : var(--double-space); +} + +div.content-view > h2 { + margin : 0 0 var(--double-space) 0; +} + +div.services { + display : flex; + justify-content : space-between; + gap : var(--double-space); + flex-wrap: wrap; +} + +div.services > div, +div.infobox { + background : var(--light); + padding : var(--double-space); + border-radius : 6px; + flex : 240px; + max-width : 420px; + display : flex; + flex-flow : column; + justify-content : space-between; +} + +div.infobox button { + margin-top : var(--double-space); +} + +div.services > div > div.description { + margin-bottom : var(--double-space); +} + +div.services > div > div.description > p { + margin-top : var(--half-space); +} + +div.services > div > a, +a.button, +button { + display : block; + color : var(--light); + background : var(--splash); + padding : var(--space) var(--double-space); + border-radius : 3px; + opacity : 0.9; + cursor : pointer; + text-align : center; + border : 0; + font-weight : 600; + letter-spacing : 0.03em; + text-decoration : none; +} + +div.services > div > a:hover, +a.button:hover, +button:hover { + opacity : 1.0; +} + +form > div { + margin : 0 0 var(--double-space); +} + +form > div >label { + display : block; + margin : 0 0 6px; +} + +form > div > input[type="text"], +form > div > input[type="password"] { + border : 2px solid var(--twilight); + border-radius : 6px; + padding : 8px; + background : var(--light-dust); + width : 100%; +} + +#login { + height : 100%; + display : flex; + align-items : center; + justify-content : center; +} + +#loginbox { + border-radius : var(--space); + border : 6px solid white; + width : 800px; + height : 500px; + + display : flex; + flex-flow : row; +} + +#loginbox > div { + padding : var(--double-space); + flex : 1; +} + +#loginbox label { + color : var(--twilight); +} + +#loginbox > div.login { + background : var(--light-dust); + display: flex; + flex-flow: column; + justify-content: space-between; +} + +#loginbox > div.signup { + background : var(--water); + display: flex; + flex-flow: column; + align-items: center; +} + +#loginbox > div:first-child { + border-radius : var(--half-space) 0 0 var(--half-space); +} + +#loginbox > div:last-child { + border-radius : 0 var(--half-space) var(--half-space) 0; +} + +#loginbox > div:last-child > * { + flex : 1; +} + +#loginbox div.new_here { + margin-top : var(--double-space); +} + +#loginbox div.new_here h2 { + margin: var(--double-space) 0; +} + +#loginbox button { + width : 100%; +} + +#loginbox img { + padding : 0 var(--double-space); +} + +footer { + margin : var(--space) var(--outer-space); + padding : var(--space); + border-radius : var(--quarter-space); + background : var(--dark); + color : var(--dust); + font-size : 0.78em; + opacity : 0.8; +} + +span.time_remaining { + color : var(--fade); +} + +.pagination { + display : flex; + justify-content : center; + list-style : none; + padding : 0; + margin : 0; +} + +.pagination > li { + margin : 0 6px; +} diff --git a/src/project/static/fonts/Inter-Black.woff b/src/project/static/fonts/Inter-Black.woff new file mode 100644 index 0000000..a18593a Binary files /dev/null and b/src/project/static/fonts/Inter-Black.woff differ diff --git a/src/project/static/fonts/Inter-Black.woff2 b/src/project/static/fonts/Inter-Black.woff2 new file mode 100644 index 0000000..68f64c9 Binary files /dev/null and b/src/project/static/fonts/Inter-Black.woff2 differ diff --git a/src/project/static/fonts/Inter-BlackItalic.woff b/src/project/static/fonts/Inter-BlackItalic.woff new file mode 100644 index 0000000..b6b0194 Binary files /dev/null and b/src/project/static/fonts/Inter-BlackItalic.woff differ diff --git a/src/project/static/fonts/Inter-BlackItalic.woff2 b/src/project/static/fonts/Inter-BlackItalic.woff2 new file mode 100644 index 0000000..1c9c7ca Binary files /dev/null and b/src/project/static/fonts/Inter-BlackItalic.woff2 differ diff --git a/src/project/static/fonts/Inter-Bold.woff b/src/project/static/fonts/Inter-Bold.woff new file mode 100644 index 0000000..eaf3d4b Binary files /dev/null and b/src/project/static/fonts/Inter-Bold.woff differ diff --git a/src/project/static/fonts/Inter-Bold.woff2 b/src/project/static/fonts/Inter-Bold.woff2 new file mode 100644 index 0000000..2846f29 Binary files /dev/null and b/src/project/static/fonts/Inter-Bold.woff2 differ diff --git a/src/project/static/fonts/Inter-BoldItalic.woff b/src/project/static/fonts/Inter-BoldItalic.woff new file mode 100644 index 0000000..3275076 Binary files /dev/null and b/src/project/static/fonts/Inter-BoldItalic.woff differ diff --git a/src/project/static/fonts/Inter-BoldItalic.woff2 b/src/project/static/fonts/Inter-BoldItalic.woff2 new file mode 100644 index 0000000..0b1fe8e Binary files /dev/null and b/src/project/static/fonts/Inter-BoldItalic.woff2 differ diff --git a/src/project/static/fonts/Inter-ExtraBold.woff b/src/project/static/fonts/Inter-ExtraBold.woff new file mode 100644 index 0000000..c2c17ed Binary files /dev/null and b/src/project/static/fonts/Inter-ExtraBold.woff differ diff --git a/src/project/static/fonts/Inter-ExtraBold.woff2 b/src/project/static/fonts/Inter-ExtraBold.woff2 new file mode 100644 index 0000000..c24c2bd Binary files /dev/null and b/src/project/static/fonts/Inter-ExtraBold.woff2 differ diff --git a/src/project/static/fonts/Inter-ExtraBoldItalic.woff b/src/project/static/fonts/Inter-ExtraBoldItalic.woff new file mode 100644 index 0000000..c42f705 Binary files /dev/null and b/src/project/static/fonts/Inter-ExtraBoldItalic.woff differ diff --git a/src/project/static/fonts/Inter-ExtraBoldItalic.woff2 b/src/project/static/fonts/Inter-ExtraBoldItalic.woff2 new file mode 100644 index 0000000..4a81dc7 Binary files /dev/null and b/src/project/static/fonts/Inter-ExtraBoldItalic.woff2 differ diff --git a/src/project/static/fonts/Inter-ExtraLight.woff b/src/project/static/fonts/Inter-ExtraLight.woff new file mode 100644 index 0000000..d0de5f3 Binary files /dev/null and b/src/project/static/fonts/Inter-ExtraLight.woff differ diff --git a/src/project/static/fonts/Inter-ExtraLight.woff2 b/src/project/static/fonts/Inter-ExtraLight.woff2 new file mode 100644 index 0000000..f2ea706 Binary files /dev/null and b/src/project/static/fonts/Inter-ExtraLight.woff2 differ diff --git a/src/project/static/fonts/Inter-ExtraLightItalic.woff b/src/project/static/fonts/Inter-ExtraLightItalic.woff new file mode 100644 index 0000000..81f1a28 Binary files /dev/null and b/src/project/static/fonts/Inter-ExtraLightItalic.woff differ diff --git a/src/project/static/fonts/Inter-ExtraLightItalic.woff2 b/src/project/static/fonts/Inter-ExtraLightItalic.woff2 new file mode 100644 index 0000000..9af717b Binary files /dev/null and b/src/project/static/fonts/Inter-ExtraLightItalic.woff2 differ diff --git a/src/project/static/fonts/Inter-Italic.woff b/src/project/static/fonts/Inter-Italic.woff new file mode 100644 index 0000000..a806b38 Binary files /dev/null and b/src/project/static/fonts/Inter-Italic.woff differ diff --git a/src/project/static/fonts/Inter-Italic.woff2 b/src/project/static/fonts/Inter-Italic.woff2 new file mode 100644 index 0000000..a619fc5 Binary files /dev/null and b/src/project/static/fonts/Inter-Italic.woff2 differ diff --git a/src/project/static/fonts/Inter-Light.woff b/src/project/static/fonts/Inter-Light.woff new file mode 100644 index 0000000..c496464 Binary files /dev/null and b/src/project/static/fonts/Inter-Light.woff differ diff --git a/src/project/static/fonts/Inter-Light.woff2 b/src/project/static/fonts/Inter-Light.woff2 new file mode 100644 index 0000000..bc4be66 Binary files /dev/null and b/src/project/static/fonts/Inter-Light.woff2 differ diff --git a/src/project/static/fonts/Inter-LightItalic.woff b/src/project/static/fonts/Inter-LightItalic.woff new file mode 100644 index 0000000..f84a9de Binary files /dev/null and b/src/project/static/fonts/Inter-LightItalic.woff differ diff --git a/src/project/static/fonts/Inter-LightItalic.woff2 b/src/project/static/fonts/Inter-LightItalic.woff2 new file mode 100644 index 0000000..842b2df Binary files /dev/null and b/src/project/static/fonts/Inter-LightItalic.woff2 differ diff --git a/src/project/static/fonts/Inter-Medium.woff b/src/project/static/fonts/Inter-Medium.woff new file mode 100644 index 0000000..d546843 Binary files /dev/null and b/src/project/static/fonts/Inter-Medium.woff differ diff --git a/src/project/static/fonts/Inter-Medium.woff2 b/src/project/static/fonts/Inter-Medium.woff2 new file mode 100644 index 0000000..f92498a Binary files /dev/null and b/src/project/static/fonts/Inter-Medium.woff2 differ diff --git a/src/project/static/fonts/Inter-MediumItalic.woff b/src/project/static/fonts/Inter-MediumItalic.woff new file mode 100644 index 0000000..459a656 Binary files /dev/null and b/src/project/static/fonts/Inter-MediumItalic.woff differ diff --git a/src/project/static/fonts/Inter-MediumItalic.woff2 b/src/project/static/fonts/Inter-MediumItalic.woff2 new file mode 100644 index 0000000..0e3019f Binary files /dev/null and b/src/project/static/fonts/Inter-MediumItalic.woff2 differ diff --git a/src/project/static/fonts/Inter-Regular.woff b/src/project/static/fonts/Inter-Regular.woff new file mode 100644 index 0000000..62d3a61 Binary files /dev/null and b/src/project/static/fonts/Inter-Regular.woff differ diff --git a/src/project/static/fonts/Inter-Regular.woff2 b/src/project/static/fonts/Inter-Regular.woff2 new file mode 100644 index 0000000..6c2b689 Binary files /dev/null and b/src/project/static/fonts/Inter-Regular.woff2 differ diff --git a/src/project/static/fonts/Inter-SemiBold.woff b/src/project/static/fonts/Inter-SemiBold.woff new file mode 100644 index 0000000..a815f43 Binary files /dev/null and b/src/project/static/fonts/Inter-SemiBold.woff differ diff --git a/src/project/static/fonts/Inter-SemiBold.woff2 b/src/project/static/fonts/Inter-SemiBold.woff2 new file mode 100644 index 0000000..611e90c Binary files /dev/null and b/src/project/static/fonts/Inter-SemiBold.woff2 differ diff --git a/src/project/static/fonts/Inter-SemiBoldItalic.woff b/src/project/static/fonts/Inter-SemiBoldItalic.woff new file mode 100644 index 0000000..909e43a Binary files /dev/null and b/src/project/static/fonts/Inter-SemiBoldItalic.woff differ diff --git a/src/project/static/fonts/Inter-SemiBoldItalic.woff2 b/src/project/static/fonts/Inter-SemiBoldItalic.woff2 new file mode 100644 index 0000000..545685b Binary files /dev/null and b/src/project/static/fonts/Inter-SemiBoldItalic.woff2 differ diff --git a/src/project/static/fonts/Inter-Thin.woff b/src/project/static/fonts/Inter-Thin.woff new file mode 100644 index 0000000..62bc58c Binary files /dev/null and b/src/project/static/fonts/Inter-Thin.woff differ diff --git a/src/project/static/fonts/Inter-Thin.woff2 b/src/project/static/fonts/Inter-Thin.woff2 new file mode 100644 index 0000000..abbc3a5 Binary files /dev/null and b/src/project/static/fonts/Inter-Thin.woff2 differ diff --git a/src/project/static/fonts/Inter-ThinItalic.woff b/src/project/static/fonts/Inter-ThinItalic.woff new file mode 100644 index 0000000..700a7f0 Binary files /dev/null and b/src/project/static/fonts/Inter-ThinItalic.woff differ diff --git a/src/project/static/fonts/Inter-ThinItalic.woff2 b/src/project/static/fonts/Inter-ThinItalic.woff2 new file mode 100644 index 0000000..ab0b200 Binary files /dev/null and b/src/project/static/fonts/Inter-ThinItalic.woff2 differ diff --git a/src/project/static/fonts/Inter-italic.var.woff2 b/src/project/static/fonts/Inter-italic.var.woff2 new file mode 100644 index 0000000..b826d5a Binary files /dev/null and b/src/project/static/fonts/Inter-italic.var.woff2 differ diff --git a/src/project/static/fonts/Inter-roman.var.woff2 b/src/project/static/fonts/Inter-roman.var.woff2 new file mode 100644 index 0000000..6a256a0 Binary files /dev/null and b/src/project/static/fonts/Inter-roman.var.woff2 differ diff --git a/src/project/static/fonts/Inter.var.woff2 b/src/project/static/fonts/Inter.var.woff2 new file mode 100644 index 0000000..365eedc Binary files /dev/null and b/src/project/static/fonts/Inter.var.woff2 differ diff --git a/src/project/static/fonts/inter.css b/src/project/static/fonts/inter.css new file mode 100644 index 0000000..f450010 --- /dev/null +++ b/src/project/static/fonts/inter.css @@ -0,0 +1,200 @@ +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 100; + font-display: swap; + src: url("Inter-Thin.woff2?v=3.19") format("woff2"), + url("Inter-Thin.woff?v=3.19") format("woff"); +} +@font-face { + font-family: 'Inter'; + font-style: italic; + font-weight: 100; + font-display: swap; + src: url("Inter-ThinItalic.woff2?v=3.19") format("woff2"), + url("Inter-ThinItalic.woff?v=3.19") format("woff"); +} + +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 200; + font-display: swap; + src: url("Inter-ExtraLight.woff2?v=3.19") format("woff2"), + url("Inter-ExtraLight.woff?v=3.19") format("woff"); +} +@font-face { + font-family: 'Inter'; + font-style: italic; + font-weight: 200; + font-display: swap; + src: url("Inter-ExtraLightItalic.woff2?v=3.19") format("woff2"), + url("Inter-ExtraLightItalic.woff?v=3.19") format("woff"); +} + +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url("Inter-Light.woff2?v=3.19") format("woff2"), + url("Inter-Light.woff?v=3.19") format("woff"); +} +@font-face { + font-family: 'Inter'; + font-style: italic; + font-weight: 300; + font-display: swap; + src: url("Inter-LightItalic.woff2?v=3.19") format("woff2"), + url("Inter-LightItalic.woff?v=3.19") format("woff"); +} + +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url("Inter-Regular.woff2?v=3.19") format("woff2"), + url("Inter-Regular.woff?v=3.19") format("woff"); +} +@font-face { + font-family: 'Inter'; + font-style: italic; + font-weight: 400; + font-display: swap; + src: url("Inter-Italic.woff2?v=3.19") format("woff2"), + url("Inter-Italic.woff?v=3.19") format("woff"); +} + +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url("Inter-Medium.woff2?v=3.19") format("woff2"), + url("Inter-Medium.woff?v=3.19") format("woff"); +} +@font-face { + font-family: 'Inter'; + font-style: italic; + font-weight: 500; + font-display: swap; + src: url("Inter-MediumItalic.woff2?v=3.19") format("woff2"), + url("Inter-MediumItalic.woff?v=3.19") format("woff"); +} + +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url("Inter-SemiBold.woff2?v=3.19") format("woff2"), + url("Inter-SemiBold.woff?v=3.19") format("woff"); +} +@font-face { + font-family: 'Inter'; + font-style: italic; + font-weight: 600; + font-display: swap; + src: url("Inter-SemiBoldItalic.woff2?v=3.19") format("woff2"), + url("Inter-SemiBoldItalic.woff?v=3.19") format("woff"); +} + +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url("Inter-Bold.woff2?v=3.19") format("woff2"), + url("Inter-Bold.woff?v=3.19") format("woff"); +} +@font-face { + font-family: 'Inter'; + font-style: italic; + font-weight: 700; + font-display: swap; + src: url("Inter-BoldItalic.woff2?v=3.19") format("woff2"), + url("Inter-BoldItalic.woff?v=3.19") format("woff"); +} + +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 800; + font-display: swap; + src: url("Inter-ExtraBold.woff2?v=3.19") format("woff2"), + url("Inter-ExtraBold.woff?v=3.19") format("woff"); +} +@font-face { + font-family: 'Inter'; + font-style: italic; + font-weight: 800; + font-display: swap; + src: url("Inter-ExtraBoldItalic.woff2?v=3.19") format("woff2"), + url("Inter-ExtraBoldItalic.woff?v=3.19") format("woff"); +} + +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: url("Inter-Black.woff2?v=3.19") format("woff2"), + url("Inter-Black.woff?v=3.19") format("woff"); +} +@font-face { + font-family: 'Inter'; + font-style: italic; + font-weight: 900; + font-display: swap; + src: url("Inter-BlackItalic.woff2?v=3.19") format("woff2"), + url("Inter-BlackItalic.woff?v=3.19") format("woff"); +} + +/* ------------------------------------------------------- +Variable font. +Usage: + + html { font-family: 'Inter', sans-serif; } + @supports (font-variation-settings: normal) { + html { font-family: 'Inter var', sans-serif; } + } +*/ +@font-face { + font-family: 'Inter var'; + font-weight: 100 900; + font-display: swap; + font-style: normal; + font-named-instance: 'Regular'; + src: url("Inter-roman.var.woff2?v=3.19") format("woff2"); +} +@font-face { + font-family: 'Inter var'; + font-weight: 100 900; + font-display: swap; + font-style: italic; + font-named-instance: 'Italic'; + src: url("Inter-italic.var.woff2?v=3.19") format("woff2"); +} + + +/* -------------------------------------------------------------------------- +[EXPERIMENTAL] Multi-axis, single variable font. + +Slant axis is not yet widely supported (as of February 2019) and thus this +multi-axis single variable font is opt-in rather than the default. + +When using this, you will probably need to set font-variation-settings +explicitly, e.g. + + * { font-variation-settings: "slnt" 0deg } + .italic { font-variation-settings: "slnt" 10deg } + +*/ +@font-face { + font-family: 'Inter var experimental'; + font-weight: 100 900; + font-display: swap; + font-style: oblique 0deg 10deg; + src: url("Inter.var.woff2?v=3.19") format("woff2"); +} diff --git a/src/project/templates/account/login.html b/src/project/templates/account/login.html index afa7422..cfcac05 100644 --- a/src/project/templates/account/login.html +++ b/src/project/templates/account/login.html @@ -4,55 +4,61 @@ {% block non_login_content %} - {% if form.non_field_errors %} - {% for error in form.non_field_errors %} - - - + + diff --git a/src/project/templates/index.html b/src/project/templates/index.html index affce2e..2cc3490 100644 --- a/src/project/templates/index.html +++ b/src/project/templates/index.html @@ -3,3 +3,26 @@ {% block head_title %} {% trans "Home" %} {% endblock %} + +{% block content %} +
+

Welcome {{ user }}!

+

+ This is the new member area. +

+

+ It is very much under construction. +

+ + {% comment %} +
+
+
+

+ To get started we need you to verify your email! +

+ +
+ {% endcomment %} +
+{% endblock %} diff --git a/src/project/templates/services_overview.html b/src/project/templates/services_overview.html index f2a2aed..139165e 100644 --- a/src/project/templates/services_overview.html +++ b/src/project/templates/services_overview.html @@ -1,10 +1,62 @@ {% extends "base.html" %} {% block content %} -

- Services and signup to these will be -

-

- This is yet to be implemented. -

+ +
+ Coming soon! +
+ + {% comment %} +
+

Services you subscribe to

+
+
+
+

Passit

+

Passit is a service that blabla

+ Read more … +
+ Unsubscribe +
+
+
+ +
+

Available services

+
+
+
+

Forgejo

+

Forgejo is a service that blabla

+ Read more … +
+ Subscribe +
+
+
+

Mastodon

+

Mastodon is a service where you can write things to people around the world.

+ Read more … +
+ Subscribe +
+
+
+

Matrix

+

Matrix is a service that blabla

+ Read more … +
+ Subscribe +
+
+
+

NextCloud

+

NextCloud is a service that blabla

+ Read more … +
+ Subscribe +
+
+
+ {% endcomment %} {% endblock %} diff --git a/src/project/urls.py b/src/project/urls.py index f7d189b..ecc691b 100644 --- a/src/project/urls.py +++ b/src/project/urls.py @@ -13,7 +13,7 @@ from membership.views import membership_overview urlpatterns = [ path("", login_required(index), name="index"), - path("services/", login_required(services_overview), name="services-overview"), + path("services/", login_required(services_overview), name="services"), path("membership/", membership_overview, name="membership-overview"), path("admin/members/", members_admin, name="admin-members"), path( diff --git a/src/utils/templates/utils/list.html b/src/utils/templates/utils/list.html index e67ff3e..495c9cc 100644 --- a/src/utils/templates/utils/list.html +++ b/src/utils/templates/utils/list.html @@ -7,6 +7,8 @@ {% block content %} +
+

{{ entity_name_plural|capfirst }} {{ total_count }}

@@ -48,7 +50,6 @@ {% if is_paginated %} - {% endif %} +
+ {% endblock %} diff --git a/src/utils/templatetags/utils.py b/src/utils/templatetags/utils.py index 07b9307..cd3097a 100644 --- a/src/utils/templatetags/utils.py +++ b/src/utils/templatetags/utils.py @@ -5,9 +5,17 @@ register = template.Library() @register.simple_tag(takes_context=True) -def active_path(context, path_name, class_name): +def active_path(context, path_name, class_name) -> str | None: + """Return the given class name if the current path matches the given path name.""" + path = reverse(path_name) request_path = context.get("request").path - if path == request_path or ("basepath" in context and context["basepath"] == path): + # Check if the current path matches the given path name. + is_path = path == request_path + + # Check if the current path is a sub-path of the given path name. + is_base_path = "base_path" in context and reverse(context["base_path"]) == path + + if is_path or is_base_path: return class_name