edit + tables
This commit is contained in:
@ -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')
|
||||
|
@ -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/>
|
||||
|
@ -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 %}
|
@ -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 %}
|
@ -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'),
|
||||
]
|
||||
|
@ -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})
|
||||
|
Reference in New Issue
Block a user