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> <hr>
<a class="btn btn-success"
href="{% url 'activities:activity.create' %}">New Activity</a>
<table class="table table-borderless"> <table class="table table-borderless">
<thead> <thead>
<tr> <tr>

View File

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

View File

@@ -5,12 +5,12 @@ import json
from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.auth.mixins import LoginRequiredMixin
from django.http import HttpResponse 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 django.views.generic.detail import SingleObjectMixin
from people import models as people_models from people import models as people_models
from people import permissions from people import permissions
from . import models from . import forms, models
class ActivitySeriesListView(LoginRequiredMixin, ListView): class ActivitySeriesListView(LoginRequiredMixin, ListView):
@@ -29,6 +29,15 @@ class ActivitySeriesDetailView(LoginRequiredMixin, DetailView):
model = models.ActivitySeries model = models.ActivitySeries
template_name = 'activities/activity_series/detail.html' template_name = 'activities/activity_series/detail.html'
context_object_name = 'activity_series' 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): class ActivityListView(LoginRequiredMixin, ListView):