feat: Users can create Activities

Resolves #22
This commit is contained in:
James Graham
2020-04-02 17:02:27 +01:00
parent 216e6b06fa
commit fef6e9d459
5 changed files with 59 additions and 2 deletions

14
activities/forms.py Normal file
View File

@@ -0,0 +1,14 @@
from django import forms
from . import models
class ActivityForm(forms.ModelForm):
class Meta:
model = models.Activity
fields = [
'name',
'series',
'type',
'medium',
]

View File

@@ -0,0 +1,27 @@
{% extends 'base.html' %}
{% block content %}
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="{% url 'activities:activity.list' %}">Activities</a>
</li>
<li class="breadcrumb-item active" aria-current="page">Create</li>
</ol>
</nav>
<hr>
<form class="form"
method="POST">
{% csrf_token %}
{% load bootstrap4 %}
{% bootstrap_form form %}
{% buttons %}
<button class="btn btn-success" type="submit">Submit</button>
{% endbuttons %}
</form>
{% endblock %}

View File

@@ -9,6 +9,9 @@
<hr>
<a class="btn btn-success"
href="{% url 'activities:activity.create' %}">New Activity</a>
<table class="table table-borderless">
<thead>
<tr>

View File

@@ -14,6 +14,10 @@ urlpatterns = [
views.ActivitySeriesDetailView.as_view(),
name='activity-series.detail'),
path('activities/create',
views.ActivityCreateView.as_view(),
name='activity.create'),
path('activities',
views.ActivityListView.as_view(),
name='activity.list'),

View File

@@ -5,12 +5,12 @@ import json
from django.contrib.auth.mixins import LoginRequiredMixin
from django.http import HttpResponse
from django.views.generic import DetailView, ListView, View
from django.views.generic import CreateView, DetailView, ListView, View
from django.views.generic.detail import SingleObjectMixin
from people import models as people_models
from people import permissions
from . import models
from . import forms, models
class ActivitySeriesListView(LoginRequiredMixin, ListView):
@@ -31,6 +31,15 @@ class ActivitySeriesDetailView(LoginRequiredMixin, DetailView):
context_object_name = 'activity_series'
class ActivityCreateView(LoginRequiredMixin, CreateView):
"""
View to create a new instance of :class:`Activity`.
"""
model = models.Activity
template_name = 'activities/activity/create.html'
form_class = forms.ActivityForm
class ActivityListView(LoginRequiredMixin, ListView):
"""
View displaying a list of :class:`Activity`.