Added public pastes list view

Fixed css some more
This commit is contained in:
sebastian 2014-02-08 17:52:33 +01:00
parent ba571914a1
commit 0cef00ca8f
8 changed files with 148 additions and 46 deletions

View File

@ -20,10 +20,8 @@ class STLUploadForm(ModelForm):
stlfile = self.cleaned_data.get("file")
stlfile.open()
print dir(stlfile)
if stlfile.read(5) != "solid":
print "binary"
#print "binary"
#Skip header
stlfile.seek(80)
count = struct.unpack("i",stlfile.read(4))[0]
@ -31,7 +29,7 @@ class STLUploadForm(ModelForm):
raise forms.ValidationError("Not a valid binary STL file.")
else:
print "ascii"
#print "ascii"
next_patterns = [facet_pattern]
stlfile.readline()
line = stlfile.readline().strip()

View File

@ -0,0 +1,78 @@
{% extends "base.html" %}
{% block title %} All public pastes{% endblock %}
{% block headeraddons %}
{% endblock %}
{% block content %}
<div id="content">
<div id="prompt">
<!-- if IE without GCF, prompt goes here -->
</div>
<h1>All public pastes</h1>
<div class="pure-g-r">
<div class="pure-u-2-3">
<div class="textcontainer">
<table class="pure-table pure-table-bordered">
<thead>
<tr>
<th>Name</th>
<th>Uploader</th>
<th>Size (w x h x d)</th>
<th>Polygons</th>
<th>Expires</th>
<th>Date</th>
</tr>
</thead>
{% for geometry in geometries %}
<tr {% cycle '' 'class="odd-row"' %}>
<td><a href="{{geometry.get_absolute_url}}">{{geometry.name}}</a></td>
<td>
{% if geometry.user %}
{{geometry.user.username}}
{% else %}
Anonymous
{% endif %}
</td>
<td>{{geometry.get_width}} x {{geometry.get_height}} x {{geometry.get_depth}}</td>
<td>{{geometry.get_polycount}}</td>
<td>
{% if geometry.get_expiration_date %}
{{ geometry.get_expiration_date|timeuntil}}
{% else %}
never
{% endif %}
</td>
<td>{{geometry.date}}</td>
</tr>
{% endfor %}
</table>
<br/>
<br/>
{% if geometries.has_previous %}
<a href="?page={{ geometries.previous_page_number }}">previous... </a>
{% endif %}
{% if geometries.number %}
Page {{ geometries.number }} of {{ geometries.paginator.num_pages }}
{% endif %}
{% if geometries.has_next %}
<a href="?page={{ geometries.next_page_number }}"> ..next</a>
{% endif %}
</div>
</div>
<div class="pure-u-1-3">
{% include 'pastebin/latest_geometries.html' %}
</div>
</div>
</div>
{% endblock %}

View File

@ -1,8 +1,11 @@
from django.conf.urls import patterns, include, url
from views import GeometryView, GeometryCreate, GeometryDelete
from views import GeometryView, GeometryListView, 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'))
url(r'^list/$', GeometryListView.as_view(), name='geometry_list'),
url(r'^list/page/(?P<page>[0-9]+)/$', GeometryListView.as_view(), name='geometry_list'),
url(r'^delete/(?P<id>\d+)/$', GeometryDelete.as_view(), name='geometry_delete'),
url(r'^(?P<id>\d+)/$', GeometryView.as_view(), name='geometry_details'))

View File

@ -4,7 +4,7 @@ from django.core.urlresolvers import reverse
from django.views.generic.base import ContextMixin
from django.core.exceptions import PermissionDenied
from django.views.generic.base import TemplateView
from django.views.generic.list import ListView
from forms import GeometryForm, AnonymousGeometryForm
from models import Geometry
@ -16,6 +16,14 @@ class LastesGeometriesMixin(ContextMixin):
context['latest_geometries'] = Geometry.get_latest()
return context
class GeometryListView(ListView, LastesGeometriesMixin):
model = Geometry
paginate_by = 50
paginate_orphans = 25
page_kwarg = 'page'
context_object_name = 'geometries'
template_name = 'pastebin/geometry_list.html'
class GeometryView(DetailView):
model = Geometry

View File

@ -60,27 +60,10 @@ body {
color: #4C5B89; }
.textcontainer a:hover {
color: #7E98E5; }
.textcontainer .button-green {
color: white;
background-color: #1CB841; }
.textcontainer .button-green:visited {
color: white; }
.textcontainer .button-green:hover {
color: white; }
.textcontainer .button-red {
color: white;
background-color: #ca3c3c; }
.textcontainer .button-red:visited {
color: white; }
.textcontainer .button-red:hover {
color: white; }
.textcontainer .button-lightblue {
color: white;
background-color: #42B8DD; }
.textcontainer .button-lightblue:visited {
color: white; }
.textcontainer .button-lightblue:hover {
color: white; }
.textcontainer table {
background-color: #ffffff; }
.textcontainer table .odd-row {
background-color: #e4eef2; }
.textcontainer .uploads-list {
list-style: none; }
.textcontainer .pure-form label {
@ -94,3 +77,27 @@ body {
.textcontainer .resetlink {
font-size: 75%;
text-decoration: none; }
#fileinfos .button-green, .textcontainer .button-green {
color: white;
background-color: #1CB841; }
#fileinfos .button-green:visited, .textcontainer .button-green:visited {
color: white; }
#fileinfos .button-green:hover, .textcontainer .button-green:hover {
color: white; }
#fileinfos .button-red, .textcontainer .button-red {
color: white;
background-color: #ca3c3c; }
#fileinfos .button-red:visited, .textcontainer .button-red:visited {
color: white; }
#fileinfos .button-red:hover, .textcontainer .button-red:hover {
color: white; }
#fileinfos .button-lightblue, .textcontainer .button-lightblue {
color: white;
background-color: #42B8DD; }
#fileinfos .button-lightblue:visited, .textcontainer .button-lightblue:visited {
color: white; }
#fileinfos .button-lightblue:hover, .textcontainer .button-lightblue:hover {
color: white; }

View File

@ -100,24 +100,14 @@ body{
}
}
table {
background-color: #ffffff;
.button-green {
@include fixlinkcolor(#ffffff);
background-color: #1CB841;
.odd-row {
background-color: #e4eef2;
}
}
.button-red {
@include fixlinkcolor(#ffffff);
background-color: #ca3c3c;
}
.button-lightblue {
@include fixlinkcolor(#ffffff);
background-color: #42B8DD;
}
.uploads-list {
list-style: none;
}
@ -144,4 +134,19 @@ body{
}
}
#fileinfos .button-green, .textcontainer .button-green {
@include fixlinkcolor(#ffffff);
background-color: #1CB841;
}
#fileinfos .button-red, .textcontainer .button-red {
@include fixlinkcolor(#ffffff);
background-color: #ca3c3c;
}
#fileinfos .button-lightblue, .textcontainer .button-lightblue {
@include fixlinkcolor(#ffffff);
background-color: #42B8DD;
}

View File

@ -22,6 +22,7 @@
<ul>
<li><a href="{% url 'home' %}">Home</a></li>
<li><a href="{% url 'geometry_create' %}">New Paste</a></li>
<li><a href="{% url 'geometry_list' %}">Public Pastes</a></li>
{% if user.is_authenticated %}
<li><a href="{% url 'user_update' user_id=user.pk %}">Account</a></li>
<li><a href="{% url 'logout' %}">Logout</a></li>

View File

@ -35,8 +35,10 @@
<li>Models uploaded by registred user stay online indefinitely</li>
</ul>
<i>Private</i> only means that past3d will not show the link to anyone else.
Whereas a public paste can be shown at various places on this site,
e.g. the Latest Uploads sidebar.
Whereas a public paste can be shown the Latest Uploads sidebar and
the list of all public pastes.
So if you want your stuff to stay <i>private</i> don't post the link on twitter
or your favorite 3 printing forum, because once the googlebot has it it's public.
<br/>
<br/>
Also note that as an unregistered user your models will only stay online for a limited time span (up to one month maximum).<br/>