diff --git a/README.md b/README.md index 3c44f1ae..6313d50a 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ Install system dependencies (method depends on OS): ### Python packages Install pip packages: ``` - (venv) $ pip install -r src/requirements.txt + (venv) $ pip install -r src/requirements/dev.txt ``` ### Configuration file diff --git a/schedule/src/Views/ScheduleOverview.elm b/schedule/src/Views/ScheduleOverview.elm index 8e1f7fe9..9333862f 100644 --- a/schedule/src/Views/ScheduleOverview.elm +++ b/schedule/src/Views/ScheduleOverview.elm @@ -80,25 +80,25 @@ dayEventInstanceIcons eventInstance = case eventInstance.videoState of "has-recording" -> [ i - [ classList [ ( "fa", True ), ( "fa-film", True ), ( "pull-right", True ) ] ] + [ classList [ ( "fa", True ), ( "fa-film", True ), ( "pull-right", True ), ( "fa-fw", True ) ] ] [] ] "to-be-recorded" -> [ i - [ classList [ ( "fa", True ), ( "fa-video-camera", True ), ( "pull-right", True ) ] ] + [ classList [ ( "fa", True ), ( "fa-video-camera", True ), ( "pull-right", True ), ( "fa-fw", True ) ] ] [] ] "not-to-be-recorded" -> [ i - [ classList [ ( "fa", True ), ( "fa-ban", True ), ( "pull-right", True ) ] ] + [ classList [ ( "fa", True ), ( "fa-ban", True ), ( "pull-right", True ), ( "fa-fw", True ) ] ] [] ] _ -> [] in - [ i [ classList [ ( "fa", True ), ( "fa-" ++ eventInstance.locationIcon, True ), ( "pull-right", True ) ] ] [] + [ i [ classList [ ( "fa", True ), ( "fa-" ++ eventInstance.locationIcon, True ), ( "pull-right", True ), ( "fa-fw", True ) ] ] [] ] ++ videoIcon diff --git a/src/backoffice/templates/index.html b/src/backoffice/templates/index.html index bc9710cc..c8b94755 100644 --- a/src/backoffice/templates/index.html +++ b/src/backoffice/templates/index.html @@ -34,6 +34,22 @@
Use this view to manage SpeakerProposals and EventProposals
+ +Use this view to look at Merchandise Orders
+ + +Use this view to generate a list of merchandise that needs to be ordered
+ + +Use this view to look at Village category OrderProductRelations
+ + +Use this view to generate a list of village gear that needs to be ordered
+ diff --git a/src/backoffice/templates/merchandise_to_order.html b/src/backoffice/templates/merchandise_to_order.html new file mode 100644 index 00000000..bbf6a6b2 --- /dev/null +++ b/src/backoffice/templates/merchandise_to_order.html @@ -0,0 +1,44 @@ +{% extends 'base.html' %} +{% load commonmark %} +{% load static from staticfiles %} +{% load imageutils %} +{% block extra_head %} + + +{% endblock extra_head %} +{% block content %} +Merchandise Type | +Quantity | +
---|---|
{{ key }} | +{{ val }} | +
Order | +User | +OPR Id | +Product | +Quantity | +|
---|---|---|---|---|---|
Order #{{ productrel.order.id }} | +{{ productrel.order.user }} | +{{ productrel.order.user.email }} | +{{ productrel.id }} | +{{ productrel.product.name }} | +{{ productrel.quantity }} | +
Order | +User | +OPR Id | +Product | +Quantity | +|
---|---|---|---|---|---|
Order #{{ productrel.order.id }} | +{{ productrel.order.user }} | +{{ productrel.order.user.email }} | +{{ productrel.id }} | +{{ productrel.product.name }} | +{{ productrel.quantity }} | +
Type | +Quantity | +
---|---|
{{ key }} | +{{ val }} | +
{{ url.urltype }}: {{ url.url }}
+ {% endfor %} + {% else %} +No URLs found.
+ {% endif %} + +{{ url.urltype }}: {{ url.url }}
+ {% endfor %} +{% else %} +No URLs found.
+{% endif %} + +No speakers found for {{ camp.title }}
{% endif %} {% endblock program_content %} diff --git a/src/program/templates/url_delete.html b/src/program/templates/url_delete.html index 0c7ca6bf..5ebb0b51 100644 --- a/src/program/templates/url_delete.html +++ b/src/program/templates/url_delete.html @@ -2,8 +2,10 @@ {% load bootstrap3 %} {% block program_content %} -Really delete this URL? This action cannot be undone.
+Really delete this URL?
+{{ url.urltype }}: {{ url.url }}
+This action cannot be undone.
{% endblock %} diff --git a/src/teams/templates/task_detail.html b/src/teams/templates/task_detail.html index 69525bbe..f2938c71 100644 --- a/src/teams/templates/task_detail.html +++ b/src/teams/templates/task_detail.html @@ -1,14 +1,21 @@ -{% extends 'base.html' %} +{% extends 'team_base.html' %} {% load commonmark %} {% block title %} {{ task.name }} {% endblock %} -{% block content %} +{% block team_content %}Your membership status: {% membershipstatus user team %}
+ + {% if request.user in team.responsible_members.all %} + Manage Team + {% endif %} + + {% else %} + {% if team.needs_members %} + This team is looking for members! Join Team + {% endif %} + {% endif %} + + {% endif %} +The {{ team.name }} Team mailinglist is {{ team.mailing_list }}{% if team.mailing_list_archive_public %}, and the archives are publicly available{% endif %}. You should sign up for the list if you haven't already.
- {% elif team.mailing_list and team.mailinglist_nonmember_posts %} -The {{ team.name }} Team mailinglist is {{ team.mailing_list }}{% if team.mailing_list_archive_public %}, and the archives are publicly available{% endif %}. You do not need to be a member of the list to post to it.
- {% else %} -The {{ team.name }} Team does not have a public mailing list, but it can be contacted through our main email info@bornhack.dk. - {% endif %} - -
The {{ team.name }} Team public IRC channel is {{ team.public_irc_channel_name }} on {{ IRCBOT_SERVER_HOSTNAME }}. - {% else %} -
The {{ team.name }} Team does not have a public IRC channel, but it can be reached through our main IRC channel {{ IRCBOT_PUBLIC_CHANNEL }} on {{ IRCBOT_SERVER_HOSTNAME }}.
- {% endif %} - - {% if request.user in team.approved_members.all and team.private_irc_channel_name %} -The {{ team.name }} Team private IRC channel is {{ team.private_irc_channel_name }} on {{ IRCBOT_SERVER_HOSTNAME }}.
- {% endif %} - -The {{ team.name }} Team is responsible for the following tasks
-Name | -Description | -Action | -
---|---|---|
{{ task.name }} | -{{ task.description }} | -- Details - {% if request.user in team.responsible_members.all %} - Edit Task - {% endif %} - | -
The following {{ team.approved_members.count }} people {% if team.unapproved_members.count %}(and {{ team.unapproved_members.count }} pending){% endif %} are members of the {{ team.name }} Team:
-- Name - | -- Status - | -
---|---|
- {{ teammember.user.profile.get_public_credit_name }} {% if teammember.user == request.user %}(this is you!){% endif %} - | -- Team {% if teammember.responsible %}Responsible{% else %}Member{% endif %} - {% if not teammember.approved %}(pending approval){% endif %} - | -
Your membership status: {% membershipstatus user team %}
- - {% if request.user in team.members.all %} - {% if team.irc_channel and team.irc_channel_managed and request.user.profile.nickserv_username %} - Fix IRC ACL - {% endif %} - Leave Team - {% else %} - {% if team.needs_members %} - This team is looking for members! Join Team - {% endif %} - {% endif %} - - {% if request.user in team.responsible_members.all %} - Manage Team - {% endif %} - -Item name | -Action | -
---|---|
{{ item.headline }} | -- - Edit - - | -
The {{ team.name }} Team mailinglist is {{ team.mailing_list }}{% if team.mailing_list_archive_public %}, and the archives are publicly available{% endif %}. You should sign up for the list if you haven't already.
+ {% elif team.mailing_list and team.mailinglist_nonmember_posts %} +The {{ team.name }} Team mailinglist is {{ team.mailing_list }}{% if team.mailing_list_archive_public %}, and the archives are publicly available{% endif %}. You do not need to be a member of the list to post to it.
+ {% else %} +The {{ team.name }} Team does not have a public mailing list, but it can be contacted through our main email info@bornhack.dk. + {% endif %} + +
The {{ team.name }} Team public IRC channel is {{ team.public_irc_channel_name }} on {{ IRCBOT_SERVER_HOSTNAME }}. + {% else %} +
The {{ team.name }} Team does not have a public IRC channel, but it can be reached through our main IRC channel {{ IRCBOT_PUBLIC_CHANNEL }} on {{ IRCBOT_SERVER_HOSTNAME }}.
+ {% endif %} + + {% if request.user in team.approved_members.all and team.private_irc_channel_name %} +The {{ team.name }} Team private IRC channel is {{ team.private_irc_channel_name }} on {{ IRCBOT_SERVER_HOSTNAME }}.
+ {% endif %} + +Item name | +Action | +
---|---|
{{ item.headline }} | ++ + Edit + + | +
Really join the {{ team.name }} Team for {{ team.camp.title }}?
diff --git a/src/teams/templates/team_leave.html b/src/teams/templates/team_leave.html index 8cbc37e1..7e345e3d 100644 --- a/src/teams/templates/team_leave.html +++ b/src/teams/templates/team_leave.html @@ -1,11 +1,11 @@ -{% extends 'base.html' %} +{% extends 'team_base.html' %} {% load commonmark %} {% block title %} Leave Team: {{ team.name }} | {{ block.super }} {% endblock %} -{% block content %} +{% block team_content %}Really leave the {{ team.name }} team?
diff --git a/src/teams/templates/team_list.html b/src/teams/templates/team_list.html index d09f8217..c0a314da 100644 --- a/src/teams/templates/team_list.html +++ b/src/teams/templates/team_list.html @@ -33,7 +33,7 @@ Teams | {{ block.super }} {% for team in teams %}
- Username - | -- Name - | -- Email - | -- Description - | -- Public Credit Name - | -- Membership - | -- Action - | -
---|---|---|---|---|---|---|
- {{ membership.user }} - | -- {{ membership.user.profile.name }} - | -- {{ membership.user.profile.email }} - | -- {{ membership.user.profile.description }} - | -- {{ membership.user.profile.public_credit_name|default:"N/A" }} - {% if membership.user.profile.public_credit_name and not membership.user.profile.public_credit_name_approved %}(name not approved){% endif %} - | -- {% if membership.approved %}member{% else %}pending{% endif %} - | -
-
- Remove Member
- {% if not membership.approved %}
- Approve Member
- {% endif %}
-
- |
-
No members found!
- {% endif %} -The following {{ team.approved_members.count }} people {% if team.unapproved_members.count %}(and {{ team.unapproved_members.count }} pending){% endif %} are members of the {{ team.name }} Team:
++ Name + | ++ Status + | + {% if request.user in team.responsible_members.all %} ++ Action + | + {% endif %} +
---|---|---|
+ {{ member.user.profile.get_public_credit_name }} {% if member.user == request.user %}(this is you!){% endif %} + | ++ Team {% if member.responsible %}Responsible{% else %}Member{% endif %} + {% if not member.approved %}(pending approval){% endif %} + | + {% if request.user in team.responsible_members.all %} +
+
+
+ Remove
+
+ {% if not member.approved %}
+
+ Approve
+
+ {% endif %}
+
+ |
+ {% endif %}
+
Your membership status: {% membershipstatus user team %}
+ + {% if request.user in team.members.all %} + {% if team.irc_channel and team.irc_channel_managed and request.user.profile.nickserv_username %} + Fix IRC ACL + {% endif %} + Leave Team + {% else %} + {% if team.needs_members %} + This team is looking for members! Join Team + {% endif %} + {% endif %} + {% endif %} + +The {{ team.name }} Team is responsible for the following tasks
+Name | +Description | +When | +Completed? | +Action | +
---|---|---|---|---|
{{ task.name }} | +{{ task.description }} | +
+
|
+ {{ task.completed }} | ++ Details + {% if request.user in team.responsible_members.all %} + Edit Task + {% endif %} + | +
Really approve the user {{ teammember.user.profile.name }} for the {{ teammember.team.name }} team? The user will receive an email with a message.
@@ -13,6 +13,7 @@ Approve team member {{ teammember.user.profile.name }} for the {{ teammember.tea {% csrf_token %} {{ form }} - Cancel + Cancel + {% endblock %} diff --git a/src/teams/templates/teammember_remove.html b/src/teams/templates/teammember_remove.html index 775e2577..222c9083 100644 --- a/src/teams/templates/teammember_remove.html +++ b/src/teams/templates/teammember_remove.html @@ -1,11 +1,11 @@ -{% extends 'base.html' %} +{% extends 'team_base.html' %} {% load commonmark %} {% block title %} Remove member {{ teammember.user.profile.name }} from the {{ teammember.team.name }} team {% endblock %} -{% block content %} +{% block team_content %}
Really remove the user {{ teammember.user.profile.name }} from the {{ teammember.team.name }} team? The user will receive an email with a message.
@@ -13,6 +13,6 @@ Remove member {{ teammember.user.profile.name }} from the {{ teammember.team.nam
{% csrf_token %}
{{ form }}
- Cancel
+ Cancel
{% endblock %}
diff --git a/src/teams/urls.py b/src/teams/urls.py
index 6c848d07..61b9cda7 100644
--- a/src/teams/urls.py
+++ b/src/teams/urls.py
@@ -2,17 +2,28 @@ from django.urls import path, include
from teams.views.base import (
TeamListView,
- TeamMemberRemoveView,
- TeamMemberApproveView,
- TeamDetailView,
- TeamJoinView,
- TeamLeaveView,
+ TeamGeneralView,
TeamManageView,
FixIrcAclView,
)
-from teams.views.info import InfoItemUpdateView, InfoItemCreateView, InfoItemDeleteView
+
+from teams.views.members import (
+ TeamMembersView,
+ TeamMemberRemoveView,
+ TeamMemberApproveView,
+ TeamJoinView,
+ TeamLeaveView,
+)
+
+from teams.views.info import (
+ InfoCategoriesListView,
+ InfoItemUpdateView,
+ InfoItemCreateView,
+ InfoItemDeleteView,
+)
from teams.views.tasks import (
+ TeamTasksView,
TaskCreateView,
TaskDetailView,
TaskUpdateView,
@@ -35,26 +46,12 @@ urlpatterns = [
TeamListView.as_view(),
name='list'
),
- path(
- 'members/', include([
- path(
- '