Add separate templates for review list and detail

This cuts out a lot of the elements that aren't needed for the review
list, shows fields in a more suitable way for review purposes than the
standard detail (and includes some fields that don't currently get shown
on the standard detail e.g. layer type and short description).

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
This commit is contained in:
Paul Eggleton 2013-03-06 19:10:04 +00:00
parent fecc907687
commit a643aeba33
5 changed files with 280 additions and 30 deletions

View File

@ -7,7 +7,7 @@
from django.conf.urls.defaults import * from django.conf.urls.defaults import *
from django.views.generic import TemplateView, DetailView, ListView from django.views.generic import TemplateView, DetailView, ListView
from layerindex.models import LayerItem, Recipe from layerindex.models import LayerItem, Recipe
from layerindex.views import LayerListView, LayerReviewListView, RecipeSearchView, MachineSearchView, PlainTextListView, LayerDetailView, edit_layer_view, delete_layer_view, edit_layernote_view, delete_layernote_view, switch_branch_view from layerindex.views import LayerListView, LayerReviewListView, LayerReviewDetailView, RecipeSearchView, MachineSearchView, PlainTextListView, LayerDetailView, edit_layer_view, delete_layer_view, edit_layernote_view, delete_layernote_view, switch_branch_view
urlpatterns = patterns('', urlpatterns = patterns('',
url(r'^$', url(r'^$',
@ -30,8 +30,12 @@ urlpatterns = patterns('',
name='machine_search'), name='machine_search'),
url(r'^review/$', url(r'^review/$',
LayerReviewListView.as_view( LayerReviewListView.as_view(
template_name='layerindex/index.html'), template_name='layerindex/reviewlist.html'),
name='layer_list_review'), name='layer_list_review'),
url(r'^review/(?P<slug>[-\w]+)/$',
LayerReviewDetailView.as_view(
template_name='layerindex/reviewdetail.html'),
name='layer_review'),
url(r'^layer/(?P<slug>[-\w]+)/$', url(r'^layer/(?P<slug>[-\w]+)/$',
LayerDetailView.as_view( LayerDetailView.as_view(
template_name='layerindex/detail.html'), template_name='layerindex/detail.html'),

View File

@ -128,7 +128,7 @@ def edit_layer_view(request, template_name, slug=None):
d = Context({ d = Context({
'user_name': user.get_full_name(), 'user_name': user.get_full_name(),
'layer_name': layeritem.name, 'layer_name': layeritem.name,
'layer_url': request.build_absolute_uri(layeritem.get_absolute_url()) + '?branch=master', 'layer_url': request.build_absolute_uri(reverse('layer_review', args=(layeritem.name,))) + '?branch=master',
}) })
subject = '%s - %s' % (settings.SUBMIT_EMAIL_SUBJECT, layeritem.name) subject = '%s - %s' % (settings.SUBMIT_EMAIL_SUBJECT, layeritem.name)
from_email = settings.SUBMIT_EMAIL_FROM from_email = settings.SUBMIT_EMAIL_FROM
@ -216,6 +216,12 @@ class LayerDetailView(DetailView):
context['layerbranch'] = layer.get_layerbranch(self.request.session.get('branch', 'master')) context['layerbranch'] = layer.get_layerbranch(self.request.session.get('branch', 'master'))
return context return context
class LayerReviewDetailView(LayerDetailView):
def dispatch(self, request, *args, **kwargs):
if not request.user.has_perm('layerindex.publish_layer'):
raise PermissionDenied
return super(LayerReviewDetailView, self).dispatch(request, *args, **kwargs)
class RecipeSearchView(ListView): class RecipeSearchView(ListView):
context_object_name = 'recipe_list' context_object_name = 'recipe_list'
paginate_by = 50 paginate_by = 50

View File

@ -38,10 +38,6 @@
<a href="{% url add_layernote layeritem.name %}" class="btn">Add note</a> <a href="{% url add_layernote layeritem.name %}" class="btn">Add note</a>
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if layeritem.status = "N" and perms.layeritem.publish_layer %}
<a href="{% url delete_layer layeritem.name %}" class="btn btn-warning">Delete layer</a>
<a href="{% url publish layeritem.name %}" class="btn btn-primary">Publish layer</a>
{% endif %}
</span> </span>
{% endif %} {% endif %}
</h1> </h1>
@ -154,28 +150,6 @@
</div> <!-- end of row-fluid --> </div> <!-- end of row-fluid -->
</div> <!-- end of container-fluid --> </div> <!-- end of container-fluid -->
{% if layeritem.status = 'N' and layerbranch %}
<div class="container-fluid" style="margin-bottom:1em;">
{% if layeritem.vcs_web_file_base_url %}
<span class="label label-important">
<a href="{{ layerbranch.test_file_url }}">test file link</a>
</span>
{% else %}
<span class="label">
No base file URL provided
</span>
{% endif %}
{% if layeritem.vcs_web_tree_base_url %}
<span class="label label-important">
<a href="{{ layerbranch.test_tree_url }}">test tree link</a>
</span>
{% else %}
<span class="label">
No base tree URL provided
</span>
{% endif %}
</div>
{% else %}
{% if layerbranch.machine_set.count > 0 %} {% if layerbranch.machine_set.count > 0 %}
<div class="container-fluid" style="margin-bottom:1em;"> <div class="container-fluid" style="margin-bottom:1em;">
<div class="row-fluid"> <div class="row-fluid">
@ -239,7 +213,6 @@
</div> </div>
</div> </div>
{% endif %} {% endif %}
{% endif %}
{% endautoescape %} {% endautoescape %}

View File

@ -0,0 +1,190 @@
{% extends "base.html" %}
{% load i18n %}
{% load static %}
{% comment %}
layerindex-web - review layer detail page template
Copyright (C) 2013 Intel Corporation
Licensed under the MIT license, see COPYING.MIT for details
{% endcomment %}
<!--
{% autoescape on %}
{% block title_append %} - {{ layeritem.name }}{% endblock %}
{% endautoescape %}
-->
{% block content %}
{% autoescape on %}
<div class="container-fluid">
<div class="row-fluid">
<div class="page-header">
<h1>{{ layeritem.name }}
{% if layeritem.status = "N" %}
<span class="label label-warning">Unpublished</span>
{% else %}
<span class="label label-info">Published</span>
{% endif %}
{% if user.is_authenticated %}
<span class="pull-right">
{% if perms.layeritem.publish_layer or useredit %}
<a href="{% url edit_layer layeritem.name %}" class="btn">Edit layer</a>
{% if layeritem.layernote_set.count = 0 %}
<a href="{% url add_layernote layeritem.name %}" class="btn">Add note</a>
{% endif %}
{% endif %}
{% if layeritem.status = "N" and perms.layeritem.publish_layer %}
<a href="{% url delete_layer layeritem.name %}" class="btn btn-warning">Delete layer</a>
<a href="{% url publish layeritem.name %}" class="btn btn-primary">Publish layer</a>
{% endif %}
</span>
{% endif %}
</h1>
</div>
</div> <!-- end of row-fluid -->
</div> <!-- end of container-fluid -->
<div class="container-fluid">
{% if not layerbranch %}
<div class="row-fluid">
<div class="alert alert-error">
This layer does not exist for branch {{ current_branch }}.
</div>
</div>
{% endif %}
<div class="row-fluid">
{% for note in layeritem.layernote_set.all %}
<div class="alert">
<p>{{ note.text }}</p>
{% if perms.layeritem.publish_layer or useredit %}
<p>
<a href="{% url edit_layernote layeritem.name note.pk %}" class="btn">Edit note</a>
<a href="{% url delete_layernote layeritem.name note.pk %}" class='btn'>Delete note</a>
</p>
{% endif %}
</div>
{% endfor %}
</div>
<div class="row-fluid">
<div>
<table class="table table-striped table-bordered">
<tbody>
<tr>
<th>Name</th>
<td>{{ layeritem.name }}</td>
</tr>
<tr>
<th>Type</th>
<td>{{ layeritem.get_layer_type_display }}</td>
</tr>
<tr>
<th>Summary</th>
<td>{{ layeritem.summary }}</td>
</tr>
<tr>
<th>Description</th>
<td>{{ layeritem.description }}</td>
</tr>
<tr>
<th>Repository</th>
<td>{{ layeritem.vcs_url }}</td>
</tr>
<tr>
<th>Repository subdirectory</th>
<td>{{ layeritem.vcs_subdir }}</td>
</tr>
<tr>
<th>Repo web interface</th>
<td>
{% if layeritem.vcs_web_url %}
<a href="{{ layeritem.vcs_web_url }}">{{ layeritem.vcs_web_url }}</a>
{% endif %}
</td>
</tr>
<tr>
<th>Repo web interface test links</th>
<td>
{% if layeritem.vcs_web_file_base_url %}
<span class="label label-important">
<a href="{{ layerbranch.test_file_url }}">test file link</a>
</span>
{% else %}
<span class="label">
No base file URL provided
</span>
{% endif %}
{% if layeritem.vcs_web_tree_base_url %}
<span class="label label-important">
<a href="{{ layerbranch.test_tree_url }}">test tree link</a>
</span>
{% else %}
<span class="label">
No base tree URL provided
</span>
{% endif %}
</td>
</tr>
<tr>
<th>Setup info URL</th>
<td>
{% if layeritem.usage_url %}
<a href="{{ layerbranch.get_usage_url }}">{{ layeritem.usage_url }}</a>
{% endif %}
</td>
</tr>
<tr>
<th>Mailing list URL</th>
<td>
{% if layeritem.mailing_list_url %}
<a href="{{ layerbranch.mailing_list_url }}">{{ layeritem.mailing_list_url }}</a>
{% endif %}
</td>
</tr>
<tr>
<th>Maintainers</th>
<td>
<ul class="unstyled">
{% for maintainer in layerbranch.active_maintainers %}
<li>
{{ maintainer.name }}
{% if maintainer.responsibility %}
<span>({{ maintainer.responsibility }})</span>
{% endif %}
- <a href="mailto:{{ maintainer.email }}">{{ maintainer.email }}</a>
</li>
{% endfor %}
</ul>
</td>
</tr>
<tr>
<th>Dependencies</th>
<td>
<ul class="unstyled">
{% for dep in layerbranch.dependencies_set.all %}
<li><a href="{% url layer_item dep.dependency.name %}">{{ dep.dependency.name }}</a></li>
{% endfor %}
</ul>
</td>
</tr>
</tbody>
</table>
</div>
</div> <!-- end of row-fluid -->
</div> <!-- end of container-fluid -->
{% endautoescape %}
{% endblock %}

View File

@ -0,0 +1,77 @@
{% extends "base.html" %}
{% load i18n %}
{% load static %}
{% comment %}
layerindex-web - layer review list page template
Copyright (C) 2013 Intel Corporation
Licensed under the MIT license, see COPYING.MIT for details
{% endcomment %}
<!--
{% block title_append %} - review{% endblock %}
-->
{% block content %}
{% autoescape on %}
{% if layerbranch_list %}
<div class="row-fluid">
<div class="span9 offset1">
<table class="table table-striped table-bordered layerstable">
<thead>
<tr>
<th>Layer name</th>
<th class="span4">Description</th>
<th>Type</th>
<th>Repository</th>
</tr>
</thead>
<tbody>
{% for layerbranch in layerbranch_list %}
<tr class="layertype_{{ layerbranch.layer.layer_type }}">
<td><a href="{% url layer_review layerbranch.layer.name %}">{{ layerbranch.layer.name }}</a></td>
<td>{{ layerbranch.layer.summary }}</td>
<td>{{ layerbranch.layer.get_layer_type_display }}</td>
<td class="showRollie">
{{ layerbranch.layer.vcs_url }}
{% if layerbranch.layer.vcs_web_url %}
<a class="rollie" href="{{ layerbranch.layer.vcs_web_url }}">
<span class="label label-info">
web repo
</span>
</a>
{% endif %}
{% if layerbranch.tree_url %}
<a class="rollie" href="{{ layerbranch.tree_url }}">
<span class="label label-info">
tree
</span>
</a>
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
{% if is_paginated %}
{% load pagination %}
{% pagination page_obj %}
{% endif %}
{% else %}
<p>No unpublished layers to review.</p>
{% endif %}
{% endautoescape %}
{% endblock %}