mirror of
git://git.yoctoproject.org/layerindex-web.git
synced 2025-07-19 20:59:01 +02:00
Add ability to delete unpublished layers
If we get bogus or duplicate entries we'll want the ability to delete them easily before publishing (without needing to have access to the admin interface), so add this ability. Being able to delete a published layer might be a bit dangerous and is less likely to be needed so that is disallowed for now. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
This commit is contained in:
parent
26ab9dbb28
commit
9a3bfac320
1
TODO
1
TODO
|
@ -19,7 +19,6 @@ Later:
|
||||||
* Style/extend about page?
|
* Style/extend about page?
|
||||||
* Style recipe info page?
|
* Style recipe info page?
|
||||||
* Style machine list on detail
|
* Style machine list on detail
|
||||||
* Provide a delete function for unpublished layers?
|
|
||||||
* Show count of layers to be reviewed next to review button
|
* Show count of layers to be reviewed next to review button
|
||||||
* Something to help with compatibility (although maybe this should just be handled using the existing versioned layer dependencies in layer.conf)
|
* Something to help with compatibility (although maybe this should just be handled using the existing versioned layer dependencies in layer.conf)
|
||||||
* Query backend service? i.e. special URL to query information for external apps/scripts
|
* Query backend service? i.e. special URL to query information for external apps/scripts
|
||||||
|
|
|
@ -38,6 +38,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if layeritem.status = "N" and perms.layeritem.publish_layer %}
|
{% 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>
|
<a href="{% url publish layeritem.name %}" class="btn btn-primary">Publish layer</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</span>
|
</span>
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
from django.conf.urls.defaults import *
|
from django.conf.urls.defaults import *
|
||||||
from django.views.generic import DetailView, ListView
|
from django.views.generic import DetailView, ListView
|
||||||
from layerindex.models import LayerItem, Recipe
|
from layerindex.models import LayerItem, Recipe
|
||||||
from layerindex.views import LayerListView, RecipeSearchView, MachineSearchView, PlainTextListView, LayerDetailView, edit_layer_view, edit_layernote_view, delete_layernote_view
|
from layerindex.views import LayerListView, RecipeSearchView, MachineSearchView, PlainTextListView, LayerDetailView, edit_layer_view, delete_layer_view, edit_layernote_view, delete_layernote_view
|
||||||
|
|
||||||
urlpatterns = patterns('',
|
urlpatterns = patterns('',
|
||||||
url(r'^$',
|
url(r'^$',
|
||||||
|
@ -41,6 +41,8 @@ urlpatterns = patterns('',
|
||||||
edit_layernote_view, {'template_name': 'layerindex/editlayernote.html'}, name="edit_layernote"),
|
edit_layernote_view, {'template_name': 'layerindex/editlayernote.html'}, name="edit_layernote"),
|
||||||
url(r'^layer/(?P<slug>[-\w]+)/deletenote/(?P<pk>[-\w]+)/$',
|
url(r'^layer/(?P<slug>[-\w]+)/deletenote/(?P<pk>[-\w]+)/$',
|
||||||
delete_layernote_view, {'template_name': 'layerindex/deleteconfirm.html'}, name="delete_layernote"),
|
delete_layernote_view, {'template_name': 'layerindex/deleteconfirm.html'}, name="delete_layernote"),
|
||||||
|
url(r'^layer/(?P<slug>[-\w]+)/delete/$',
|
||||||
|
delete_layer_view, {'template_name': 'layerindex/deleteconfirm.html'}, name="delete_layer"),
|
||||||
url(r'^recipe/(?P<pk>[-\w]+)/$',
|
url(r'^recipe/(?P<pk>[-\w]+)/$',
|
||||||
DetailView.as_view(
|
DetailView.as_view(
|
||||||
model=Recipe,
|
model=Recipe,
|
||||||
|
|
|
@ -62,6 +62,19 @@ def delete_layernote_view(request, template_name, slug, pk):
|
||||||
'return_url': layeritem.get_absolute_url()
|
'return_url': layeritem.get_absolute_url()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
def delete_layer_view(request, template_name, slug):
|
||||||
|
layeritem = get_object_or_404(LayerItem, name=slug)
|
||||||
|
if not (request.user.is_authenticated() and request.user.has_perm('layerindex.publish_layer') and layeritem.status == 'N'):
|
||||||
|
raise PermissionDenied
|
||||||
|
if request.method == 'POST':
|
||||||
|
layeritem.delete()
|
||||||
|
return HttpResponseRedirect(reverse('layer_list'))
|
||||||
|
else:
|
||||||
|
return render(request, template_name, {
|
||||||
|
'object': layeritem,
|
||||||
|
'object_type': layeritem._meta.verbose_name,
|
||||||
|
'return_url': layeritem.get_absolute_url()
|
||||||
|
})
|
||||||
|
|
||||||
def edit_layer_view(request, template_name, slug=None):
|
def edit_layer_view(request, template_name, slug=None):
|
||||||
useredit = False
|
useredit = False
|
||||||
|
|
Loading…
Reference in New Issue
Block a user