Skip to content

Commit

Permalink
Recipes: cleanup dashboard and browsable interface
Browse files Browse the repository at this point in the history
  • Loading branch information
Guillaume Hélouis committed Oct 1, 2015
1 parent ca7d8bd commit 2e3802a
Show file tree
Hide file tree
Showing 9 changed files with 143 additions and 62 deletions.
25 changes: 25 additions & 0 deletions testing/templates/base_dashboard.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{% extends 'base.html' %}
{% load staticfiles %}

{% block content %}
<div class="container">

<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="{% url 'testing.views.dashboard' %}">Dashboard dev</a>
</div>
<a href="{% url 'testing.views.dashboard' %}">
<button class="btn btn-primary navbar-btn">Recettes</button>
</a>
<a href="{% url 'testing.views.dashboard_ingreds' %}">
<button class="btn btn-info navbar-btn">Ingrédients</button>
</a>
</div>
</nav>

{% block dash-content %}
{% endblock %}

</div>
{% endblock %}
27 changes: 11 additions & 16 deletions testing/templates/dashboard.html
Original file line number Diff line number Diff line change
@@ -1,24 +1,18 @@
{% extends 'base.html' %}
{% extends 'base_dashboard.html' %}
{% load staticfiles %}

{% block content %}
{% block dash-content %}
<div class="container">

<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="{% url 'testing.views.index' %}">Dashboard</a>
</div>
<div class="row col-sm-12">
<div class="alert alert-info col-sm-4">
<b>Nombre total de recettes: {{ nb_recipes }}</b>
</div>
</nav>

<button class="btn btn-primary">{{ nb_recipes }} Recettes</button>
<button class="btn btn-info">{{ nb_ingreds }} Ingrédients</button>
<button class="btn btn-warning">{{ nb_nut }} Nutriments</button>
<br/>
<br/>
<br/>
<br/>
<div class="pull-right">
<a href="{% url 'testing.views.recipes_default' %}">
<button class="btn btn-default navbar-btn">Toutes les recettes</button>
</a></div>
</div>

<div class="row">
<label for="difficultyPieChart">Difficulté des recettes</label>
Expand All @@ -28,6 +22,7 @@
<label for="pricePieChart">Prix des recettes</label>
<canvas id="pricePieChart" width="200" height="200"></canvas>
</div>

<div class="row">
<label for="mealTypesPieChart">Catégories de recettes</label>
<canvas id="mealTypesPieChart" width="200" height="200"></canvas>
Expand Down
24 changes: 24 additions & 0 deletions testing/templates/dashboard_ingreds.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{% extends 'base_dashboard.html' %}
{% load staticfiles %}

{% block dash-content %}
<div class="container">

<div class="row col-sm-12">
<div class="alert alert-info col-sm-4">
<b>Nombre total d'ingrédients: {{ nb_ingreds }}</b>
</div>
</div>
<div class="row col-sm-12">
<div class="alert alert-warning col-sm-4">
<b>Nombre total de familles d'ingrédients: {{ nb_family }}</b>
</div>
</div>
<div class="row col-sm-12">
<div class="alert alert-success col-sm-4">
<b>Nombre total de nutriments: {{ nb_nut }}</b>
</div>
</div>

</div>
{% endblock %}
23 changes: 0 additions & 23 deletions testing/templates/index.html

This file was deleted.

8 changes: 4 additions & 4 deletions testing/templates/recipe_details.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="{% url 'testing.views.index' %}">Recipe details of <b>{{ recipe.name }}</b></a>
<a class="navbar-brand" href="{% url 'testing.views.recipes_default' %}">Details of recipe <b>{{ recipe.name }}</b></a>
</div>
</div>
</nav>
Expand Down Expand Up @@ -101,9 +101,9 @@
</table>
</div>

<div class="row col-md-4 pull-right">
<p><img class="img-thumbnail" alt="" src="{{ recipe.picture }}"/></p>
</div>
<div class="row col-md-4 pull-right">
<p><img class="img-thumbnail" alt="Pas d'image pour cette recette :(" src="{{ recipe.picture }}"/></p>
</div>

</div>
{% endblock %}
Expand Down
8 changes: 2 additions & 6 deletions testing/templates/recipe_details_marmiton.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,11 @@
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="{% url 'testing.views.index' %}">Recipe details from marmiton</a>
<a class="navbar-brand" href="{% url 'testing.views.recipes_default' %}">Recipe details from marmiton</a>
</div>
</div>
</nav>

{% if com_saved %}
<div class="alert alert-success">Comment successfully saved!</div>
{% endif %}

<div class="row">
<div class="col-sm-12">
<div class="col-sm-1 pull-right">
Expand Down Expand Up @@ -141,7 +137,7 @@
<div class="row">
<div class="col-sm-12">
<div class="col-sm-1 pull-right">
<form class="form-horizontal" action="{% url 'testing.views.recipes' %}" method="POST">
<form class="form-horizontal" action="{% url 'testing.views.recipe_details_marmiton' %}" method="POST">
<input type="hidden" name="recipe_url" value="{{ recipe.url }}"/>
<input type="hidden" name="save" value="go"/>
{% csrf_token %}
Expand Down
32 changes: 30 additions & 2 deletions testing/templates/recipes.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,25 @@
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="{% url 'testing.views.index' %}">Recipes</a>
<a class="navbar-brand" href="{% url 'testing.views.recipes_default' %}">Recipes</a>
</div>
</div>
</nav>

<div class="row col-sm-12">
<form class="form-horizontal" action="{% url 'testing.views.recipes_default' %}" method="POST">
<label for="search-input" class="col-sm-1 control-label">Search </label>
<div class="col-sm-2">
<input type="text" id="search-input" name="search_term" class="form-control">
</div>
{% csrf_token %}
<button class="btn btn-default" type="submit">Go</button>
</form>
</div>
<br/>
<br/>

<div class="row">
<div class="row col-sm-12">
<table class="table table-striped tab-pane active" id="infos">
<tbody>
{% for recipe in recipes %}
Expand All @@ -25,5 +37,21 @@
</table>
</div>

<div class="row col-sm-12">
<nav>
<ul class="pager">
{% if results != None %}
<li><b>{{ results }} results</b></li>
{% else %}
<li><a href="{% url 'testing.views.recipes_default' %}">First</a></li>
<li><a href="{% url 'testing.views.recipes' prev %}">Previous</a></li>
<li><b>Page {{ page }}</b></li>
<li><a href="{% url 'testing.views.recipes' next %}">Next</a></li>
<li><a href="{% url 'testing.views.recipes' 10000 %}">Last</a></li>
{% endif %}
</ul>
</nav>
</div>

</div>
{% endblock %}
6 changes: 4 additions & 2 deletions testing/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@

urlpatterns = patterns(
'testing.views',
url(r'^testing$', 'index'),
url(r'^testing/recipes$', 'recipes'),
url(r'^testing$', 'dashboard'),
url(r'^testing/recipes$', 'recipes_default'),
url(r'^testing/recipes/([0-9]+)$', 'recipes'),
url(r'^testing/dashboard$', 'dashboard'),
url(r'^testing/dashboard/ingredients$', 'dashboard_ingreds'),
url(r'^testing/recipe_details/([0-9]+)$', 'recipe_details', name='recipe_details'),
url(r'^testing/recipe_details_marmiton$', 'recipe_details_marmiton', name='recipe_details_marmiton'),
)
52 changes: 43 additions & 9 deletions testing/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,16 @@

import testing.recipe_engine.scraper
from testing.recipe_engine.db_link import get_matching_ingredients, save_recipe
from menus.models import Recipe, RecipeToIngredient, Ingredient, Nutriment
from testing.recipe_engine.main import retrieve_recipes
from menus.models import Recipe, RecipeToIngredient, Ingredient, Nutriment, IngredientFamily

def index(request):
return render(request, 'index.html', {})

def dashboard(request):
return render(request, 'dashboard.html', {
'nb_recipes': Recipe.objects.count(),
'nb_ingreds': Ingredient.objects.count(),
'nb_nut': Nutriment.objects.count(),
'nb_recipes': Recipe.objects.all().count(),
'nb_ingreds': Ingredient.objects.all().count(),
'nb_nut': Nutriment.objects.all().count(),
'nb_very_easy': Recipe.objects.filter(difficulty=0).count(),
'nb_easy': Recipe.objects.filter(difficulty=1).count(),
'nb_medium': Recipe.objects.filter(difficulty=2).count(),
Expand All @@ -37,11 +36,46 @@ def dashboard(request):
'cat_plat_principal': Recipe.objects.filter(category='Plat principal').count(),
})

def recipes(request):
# todo: show all recipe and paginate
recipes = Recipe.objects.all()[:50]
def dashboard_ingreds(request):
return render(request, 'dashboard_ingreds.html', {
'nb_recipes': Recipe.objects.all().count(),
'nb_ingreds': Ingredient.objects.all().count(),
'nb_nut': Nutriment.objects.all().count(),
'nb_family': IngredientFamily.objects.all().count()
})

def recipes_default(request):
results = None
if 'search_term' in request.POST and request.POST['search_term']:
recipes = Recipe.objects.filter(name__icontains=request.POST['search_term'])
results = recipes.count()
else:
recipes = Recipe.objects.all()[:50]
return render(request, 'recipes.html', {
'recipes': recipes,
'prev': 1,
'page': 1,
'next': 2,
'results': results
})

def recipes(request, page_nb):
page_nb = int(page_nb)
max = int(Recipe.objects.all().count() / 50)
if page_nb > max:
index = Recipe.objects.all().count()
recipes = Recipe.objects.all()[index-50:index]
page_nb = max
else:
if page_nb < 1:
page_nb = 1
index = 50 * page_nb
recipes = Recipe.objects.all()[index:index+50]
return render(request, 'recipes.html', {
'recipes': recipes
'recipes': recipes,
'prev': page_nb - 1,
'page': page_nb,
'next': page_nb + 1
})

def recipe_details(request, recipe_id):
Expand Down

0 comments on commit 2e3802a

Please sign in to comment.