Added the ability to delete geometries for registered users
This commit is contained in:
parent
504773e01e
commit
f4231c9c28
|
@ -167,12 +167,16 @@
|
|||
{{geometry.get_depth}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<h2><i class="icon-download-alt"></i> Downloads</h2>
|
||||
<a class="pure-button button-green" href="{{geometry.file.url}}"><i class="icon-download"></i> Download Model</a><br/>
|
||||
{% if geometry.sourcefile %}
|
||||
<a class="pure-button button-lightblue" href="{{geometry.sourcefile.url}}"><i class="icon-edit-sign"></i> Download Source</a>
|
||||
{% endif %}
|
||||
{% if user.is_authenticated and user.id = geometry.user.id %}
|
||||
<h2><i class="icon-trash"></i> Delete</h2>
|
||||
<a class="pure-button button-red" href="{% url 'geometry_delete' id=geometry.id %}"><i class="icon-remove-circle"></i> Delete model</a><br/>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -0,0 +1,60 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
|
||||
{% block title %} New paste {% endblock %}
|
||||
|
||||
|
||||
{% block headeraddons %}
|
||||
<script src="{{STATIC_URL}}js/jquery-1.10.2.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$("input[type='file']").each(function () {
|
||||
$(this).hide();
|
||||
$(this).after(' <a href="#" class="browsebutton pure-button button-lightblue">Browse</a>');
|
||||
$(this).after('<input type="text" readonly/>');
|
||||
|
||||
$(this).change(function() {
|
||||
$(this).next().val($(this).val());
|
||||
});
|
||||
});
|
||||
|
||||
$(".browsebutton").click(function() {
|
||||
$(this).prev().prev().click();
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
<div id="prompt">
|
||||
<!-- if IE without GCF, prompt goes here -->
|
||||
</div>
|
||||
|
||||
<h1>New paste</h1>
|
||||
<div class="pure-g-r">
|
||||
<div class="pure-u-2-3">
|
||||
<div class="textcontainer">
|
||||
<form action="" method="post">
|
||||
{% csrf_token %}
|
||||
Are you sure you want to delete <b>{{ object.name }}</b>?<br/>
|
||||
The deletion can never be undone so be carefull now !</br>
|
||||
<br/>
|
||||
<button type="submit" class="pure-button button-red">
|
||||
<i class="icon-remove-circle"></i>
|
||||
Delete
|
||||
</button>
|
||||
<a class="pure-button button-green" href="{% url 'geometry_details' id=object.id %}">
|
||||
Abort
|
||||
</a>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pure-u-1-3">
|
||||
{% include 'pastebin/latest_geometries.html' %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -1,7 +1,8 @@
|
|||
from django.conf.urls import patterns, include, url
|
||||
|
||||
from views import GeometryView, GeometryCreate
|
||||
from views import GeometryView, GeometryCreate, GeometryDelete
|
||||
|
||||
urlpatterns = patterns('',
|
||||
url(r'^new/$', GeometryCreate.as_view(), name='geometry_create'),
|
||||
url(r'^g/delete/(?P<id>\d+)/$', GeometryDelete.as_view(), name='geometry_delete'),
|
||||
url(r'^g/(?P<id>\d+)/$', GeometryView.as_view(), name='geometry_details'))
|
|
@ -1,7 +1,9 @@
|
|||
from django.views.generic.edit import CreateView
|
||||
from django.views.generic.edit import CreateView, DeleteView
|
||||
from django.views.generic.detail import DetailView
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.views.generic.base import ContextMixin
|
||||
from django.core.exceptions import PermissionDenied
|
||||
|
||||
|
||||
from forms import GeometryForm, AnonymousGeometryForm
|
||||
from models import Geometry
|
||||
|
@ -41,4 +43,23 @@ class GeometryCreate(CreateView, LastesGeometriesMixin):
|
|||
self.object.user = self.request.user
|
||||
self.object.save()
|
||||
|
||||
return res
|
||||
return res
|
||||
|
||||
class GeometryDelete(DeleteView, LastesGeometriesMixin):
|
||||
model = Geometry
|
||||
pk_url_kwarg = 'id'
|
||||
template_name = 'pastebin/geometry_delete.html'
|
||||
success_url ='/'
|
||||
|
||||
def check_user(self, request):
|
||||
obj = self.get_object()
|
||||
if obj.user and obj.user.id != request.user.id:
|
||||
raise PermissionDenied
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
self.check_user(request)
|
||||
return super(GeometryDelete,self).get(self, request, *args, **kwargs)
|
||||
|
||||
def delete(self, request, *args, **kwargs):
|
||||
self.check_user(request)
|
||||
return super(GeometryDelete,self).delete(self, request, *args, **kwargs)
|
|
@ -29,7 +29,7 @@
|
|||
border-color: #eeeeee;
|
||||
border-radius: 3px;
|
||||
background-color: #eee;
|
||||
height: 60%; }
|
||||
min-height: 60%; }
|
||||
#fileinfos .pure-button {
|
||||
margin: 2px; }
|
||||
|
||||
|
@ -63,6 +63,10 @@
|
|||
background-color: #1CB841;
|
||||
color: #ffffff; }
|
||||
|
||||
.button-red {
|
||||
background-color: #ca3c3c;
|
||||
color: #ffffff; }
|
||||
|
||||
.button-lightblue {
|
||||
background-color: #42B8DD;
|
||||
color: #ffffff; }
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
@include gridcontainer;
|
||||
@include roundconers(#eee,6px);
|
||||
background-color: #eee;
|
||||
height: 60%;
|
||||
min-height: 60%;
|
||||
|
||||
.pure-button {
|
||||
margin: 2px;
|
||||
|
@ -94,6 +94,11 @@
|
|||
color: #ffffff;
|
||||
}
|
||||
|
||||
.button-red {
|
||||
background-color: #ca3c3c;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.button-lightblue {
|
||||
background-color: #42B8DD;
|
||||
color: #ffffff;
|
||||
|
|
Loading…
Reference in New Issue