rudimentary version of an offline pile
This commit is contained in:
parent
7337a31192
commit
9d63e361b4
6 changed files with 28 additions and 8 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -2,6 +2,7 @@ db.sqlite3
|
||||||
docs
|
docs
|
||||||
/static
|
/static
|
||||||
dev
|
dev
|
||||||
|
/static_pile
|
||||||
|
|
||||||
*.ttf
|
*.ttf
|
||||||
*.woff
|
*.woff
|
||||||
|
|
|
@ -44,19 +44,21 @@
|
||||||
{% block content %}{% endblock %}
|
{% block content %}{% endblock %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="login">
|
{% if not STATIC_PILE %}
|
||||||
|
<div id="login">
|
||||||
<a href="/admin">[login // maintain]</a>
|
<a href="/admin">[login // maintain]</a>
|
||||||
</div>
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
(function () {
|
(function () {
|
||||||
window.counter = 'https://sdbs_pile.goatcounter.com/count'
|
window.counter = 'https://sdbs_pile.goatcounter.com/count';
|
||||||
|
|
||||||
var script = document.createElement('script');
|
var script = document.createElement('script');
|
||||||
script.async = 1;
|
script.async = 1;
|
||||||
script.src = '//gc.zgo.at/count.js';
|
script.src = '//gc.zgo.at/count.js';
|
||||||
var ins = document.getElementsByTagName('script')[0];
|
var ins = document.getElementsByTagName('script')[0];
|
||||||
ins.parentNode.insertBefore(script, ins)
|
ins.parentNode.insertBefore(script, ins);
|
||||||
})();
|
})();
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -17,6 +17,7 @@ from django.utils.text import slugify
|
||||||
from django.views import View
|
from django.views import View
|
||||||
from django.views.generic import TemplateView
|
from django.views.generic import TemplateView
|
||||||
|
|
||||||
|
from sdbs_pile import settings
|
||||||
from sdbs_pile.pile.models import Tag, Document, DocumentLink
|
from sdbs_pile.pile.models import Tag, Document, DocumentLink
|
||||||
|
|
||||||
|
|
||||||
|
@ -31,7 +32,8 @@ class BasePileView(TemplateView):
|
||||||
'tags': tags,
|
'tags': tags,
|
||||||
'document_count': Document.objects.count(),
|
'document_count': Document.objects.count(),
|
||||||
'untagged_count': Document.objects.all().untagged().count(),
|
'untagged_count': Document.objects.all().untagged().count(),
|
||||||
'can_see_hidden': self.request.user.has_perm('pile.see_hidden')
|
'can_see_hidden': settings.STATIC_PILE or self.request.user.has_perm('pile.see_hidden'),
|
||||||
|
'STATIC_PILE': settings.STATIC_PILE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -43,7 +45,8 @@ class IndexView(BasePileView):
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'recent_documents': Document.objects.order_by('-uploaded')[:10],
|
'recent_documents': Document.objects.order_by('-uploaded')[:10],
|
||||||
'random_document': choice(Document.objects.all()[5:]) if Document.objects.count() > 0 else None,
|
'random_document': choice(Document.objects.all()[5:]) \
|
||||||
|
if not settings.STATIC_PILE and Document.objects.count() > 0 else None,
|
||||||
**base_context_data
|
**base_context_data
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,7 +131,7 @@ class DocumentWithLabelView(View):
|
||||||
except ObjectDoesNotExist:
|
except ObjectDoesNotExist:
|
||||||
raise Http404
|
raise Http404
|
||||||
|
|
||||||
if not self.request.user.has_perm('pile.see_hidden') and not document.public:
|
if not self.request.user.has_perm('pile.see_hidden') and not document.public and not settings.STATIC_PILE:
|
||||||
raise PermissionDenied()
|
raise PermissionDenied()
|
||||||
|
|
||||||
if document.is_local_pdf:
|
if document.is_local_pdf:
|
||||||
|
|
|
@ -28,6 +28,8 @@ else:
|
||||||
DEBUG = False
|
DEBUG = False
|
||||||
ALLOWED_HOSTS = ["pile.sdbs.cz"]
|
ALLOWED_HOSTS = ["pile.sdbs.cz"]
|
||||||
|
|
||||||
|
STATIC_PILE = bool(os.getenv("STATIC"))
|
||||||
|
|
||||||
# Application definition
|
# Application definition
|
||||||
|
|
||||||
INSTALLED_APPS = [
|
INSTALLED_APPS = [
|
||||||
|
|
|
@ -13,10 +13,16 @@ Including another URLconf
|
||||||
1. Import the include() function: from django.urls import include, path
|
1. Import the include() function: from django.urls import include, path
|
||||||
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
|
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
|
||||||
"""
|
"""
|
||||||
|
from django.conf.urls.static import static
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.urls import path, include
|
from django.urls import path, include
|
||||||
|
|
||||||
|
from sdbs_pile import settings
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('', include('sdbs_pile.pile.urls')),
|
path('', include('sdbs_pile.pile.urls')),
|
||||||
path('admin/', admin.site.urls),
|
path('admin/', admin.site.urls),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
if settings.STATIC_PILE:
|
||||||
|
urlpatterns += static("/docs/", document_root=settings.BASE_DIR + "/docs")
|
6
static_mirror.sh
Executable file
6
static_mirror.sh
Executable file
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
rsync -vr --delete sdbs:/var/www/sdbs-pile/docs/ docs/
|
||||||
|
rsync sdbs:/var/www/sdbs-pile/db.sqlite3 .
|
||||||
|
rm -rf static_pile
|
||||||
|
wget --mirror --convert-links --adjust-extension --page-requisites --no-parent --directory-prefix=static_pile http://localhost:4002
|
Loading…
Reference in a new issue