Sharing code is good. Also store page update (need to actually make store site proper already)
This commit is contained in:
@@ -20,5 +20,6 @@ from . import views
|
||||
urlpatterns = [
|
||||
path('admin/', admin.site.urls),
|
||||
path('books/',include('books.urls')),
|
||||
path('comment/',include('comment.urls')),
|
||||
path('', include('main.urls')),
|
||||
]
|
||||
|
41
rakka/utils.py
Normal file
41
rakka/utils.py
Normal file
@@ -0,0 +1,41 @@
|
||||
from django.shortcuts import render
|
||||
from django.template import loader
|
||||
import functools
|
||||
|
||||
def rerender(funky):
|
||||
@functools.wraps(funky)
|
||||
def wrap(req,*args,**kwargs):
|
||||
with open('main/utils/navs') as b:
|
||||
navs=parsecat(b,4)
|
||||
namednavs=[{'id':blah[0], 'link':blah[1], 'text':blah[2], 'align':int(blah[3])} for blah in navs['']]
|
||||
out=funky(*args,**kwargs)
|
||||
temp=loader.get_template('main/nav.html')
|
||||
out['nav']=temp.render({"navs":namednavs},None)
|
||||
return render(req, 'main/temp.html', out)
|
||||
return wrap
|
||||
|
||||
def parsecat(file,n):
|
||||
if not isinstance(file,str):
|
||||
# Assume open handle
|
||||
stuff=file.read()
|
||||
else:
|
||||
with open(f'main/pages/{file}') as b:
|
||||
stuff=b.read()
|
||||
cats=stuff.split('\n\n')
|
||||
out={}
|
||||
head=''
|
||||
out['']=[]
|
||||
for cat in cats:
|
||||
if ':' in cat[:cat.index('\n')]:
|
||||
# We have a category name
|
||||
head,cat=cat.split('\n',1)
|
||||
head=head[:-1]
|
||||
out[head]=[]
|
||||
else: head=''
|
||||
for line in cat.split('\n'):
|
||||
lin=line.split(',',n-1)
|
||||
pad=n-len(lin)
|
||||
lin.extend(['']*pad)
|
||||
out[head].append(lin)
|
||||
if out['']==[]: del(out[''])
|
||||
return out
|
Reference in New Issue
Block a user