edit + tables

This commit is contained in:
Unknown
2018-02-01 15:34:43 +01:00
parent 4d3e8e6b53
commit e9dc2dc48f
8 changed files with 154 additions and 136 deletions

View File

@ -1,10 +1,31 @@
import django_tables2 as tables
from django_tables2.utils import A # alias for Accessor
from .models import *
class RecipeTable(tables.Table):
id = tables.LinkColumn('edit_recipe', args=[A('id')])
class Meta:
model = Recipe
template_name = 'tables/table_template.html'
fields = ('name', 'category', 'all_tags')
fields = ('id', 'name', 'category', 'all_tags')
class CategoryTable(tables.Table):
id = tables.LinkColumn('edit_recipe', args=[A('id')])
class Meta:
model = Category
template_name = 'tables/table_template.html'
fields = ('id', 'name')
class KeywordTable(tables.Table):
id = tables.LinkColumn('edit_recipe', args=[A('id')])
class Meta:
model = Keyword
template_name = 'tables/table_template.html'
fields = ('id', 'name')

View File

@ -28,7 +28,8 @@
<div class="collapse navbar-collapse" id="navbarText">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="{% url 'index' %}">{% trans 'Cookbook' %}<span class="sr-only">(current)</span></a>
<a class="nav-link" href="{% url 'index' %}">{% trans 'Cookbook' %}<span
class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'new_recipe' %}">{% trans 'New Recipe' %}</a>
@ -40,13 +41,20 @@
<a class="nav-link" href="{% url 'new_keyword' %}">{% trans 'New Keyword' %}</a>
</li>
</ul>
<span class="navbar-text">
{% if user.is_authenticated %}
<a href="{% url 'logout' %}">Logout {{ user.get_username }}</a>
{% else %}
<a href="{% url 'login' %}">Login</a>
{% endif %}
</span>
<ul class="navbar-nav ml-auto">
<li class="nav-item">
<a class="nav-link" href="{% url 'admin:index' %}">{% trans 'Admin' %}</a>
</li>
<li class="nav-item">
{% if user.is_authenticated %}
<a class="nav-link" href="{% url 'logout' %}">{% trans 'Logout' %} {{ user.get_username }}</a>
{% else %}
<a class="nav-link" href="{% url 'login' %}">{% trans 'Login' %}</a>
{% endif %}
</li>
</ul>
</div>
</nav>
<br/>

View File

@ -1,6 +1,7 @@
{% extends "base.html" %}
{% load crispy_forms_tags %}
{% load i18n %}
{% load django_tables2 %}
{% block title %}{% trans 'New Category' %}{% endblock %}
@ -15,4 +16,7 @@
{% crispy form %}
</form>
{% if table %}
{% render_table table %}
{% endif %}
{% endblock %}

View File

@ -1,6 +1,7 @@
{% extends "base.html" %}
{% load crispy_forms_tags %}
{% load i18n %}
{% load django_tables2 %}
{% block title %}{% trans 'New Keyword' %}{% endblock %}
@ -15,4 +16,7 @@
{% crispy form %}
</form>
{% if table %}
{% render_table table %}
{% endif %}
{% endblock %}

View File

@ -7,4 +7,7 @@ urlpatterns = [
path('new_recipe', views.new_recipe, name='new_recipe'),
path('new_category', views.new_category, name='new_category'),
path('new_keyword', views.new_keyword, name='new_keyword'),
path('edit_recipe/<int:id>/', views.edit_recipe, name='edit_recipe'),
path('edit_category/<int:id>/', views.edit_category, name='edit_category'),
path('edit_keyword/<int:id>/', views.new_keyword, name='edit_keyword'),
]

View File

@ -1,11 +1,10 @@
from django.utils.translation import gettext as _
from django.contrib.auth.decorators import login_required
from django.shortcuts import render, redirect
from django_tables2 import RequestConfig
from cookbook.filters import RecipeFilter
from cookbook.forms import *
from cookbook.tables import RecipeTable
from cookbook.tables import RecipeTable, CategoryTable, KeywordTable
def index(request):
@ -20,6 +19,21 @@ def index(request):
return render(request, 'index.html')
@login_required
def edit_recipe(request, id):
return render(request, 'index.html')
@login_required
def edit_category(request, id):
return render(request, 'index.html')
@login_required
def edit_keyword(request, id):
return render(request, 'index.html')
@login_required
def new_recipe(request):
if request.method == "POST":
@ -44,11 +58,14 @@ def new_category(request):
category = form.save(commit=False)
category.created_by = request.user.id
category.save()
return redirect('index')
return redirect('new_category')
else:
form = CategoryForm()
return render(request, 'new_category.html', {'form': form})
table = CategoryTable(Category.objects.all())
RequestConfig(request, paginate={'per_page': 25}).configure(table)
return render(request, 'new_category.html', {'form': form, 'table': table})
@login_required
@ -59,8 +76,11 @@ def new_keyword(request):
keyword = form.save(commit=False)
keyword.created_by = request.user.id
keyword.save()
return redirect('index')
return redirect('new_keyword')
else:
form = KeywordForm()
return render(request, 'new_keyword.html', {'form': form})
table = KeywordTable(Keyword.objects.all())
RequestConfig(request, paginate={'per_page': 25}).configure(table)
return render(request, 'new_keyword.html', {'form': form, 'table': table})