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.views.generic import TemplateView, DetailView, ListView
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('',
url(r'^$',
@ -30,8 +30,12 @@ urlpatterns = patterns('',
name='machine_search'),
url(r'^review/$',
LayerReviewListView.as_view(
template_name='layerindex/index.html'),
template_name='layerindex/reviewlist.html'),
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]+)/$',
LayerDetailView.as_view(
template_name='layerindex/detail.html'),

View File

@ -128,7 +128,7 @@ def edit_layer_view(request, template_name, slug=None):
d = Context({
'user_name': user.get_full_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)
from_email = settings.SUBMIT_EMAIL_FROM
@ -216,6 +216,12 @@ class LayerDetailView(DetailView):
context['layerbranch'] = layer.get_layerbranch(self.request.session.get('branch', 'master'))
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):
context_object_name = 'recipe_list'
paginate_by = 50

View File

@ -38,10 +38,6 @@
<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>
@ -154,28 +150,6 @@
</div> <!-- end of row-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 %}
<div class="container-fluid" style="margin-bottom:1em;">
<div class="row-fluid">
@ -239,7 +213,6 @@
</div>
</div>
{% endif %}
{% endif %}
{% 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 %}