Rework on categories : add name in url
This commit is contained in:
parent
3f8390be16
commit
99c5a9e6e9
|
@ -10,7 +10,7 @@ class Category(Index):
|
|||
nb_pages = 0
|
||||
cur_article = 0
|
||||
articles_per_page = 0
|
||||
filename = 'category'
|
||||
filename = 'index'
|
||||
cur_category = None
|
||||
|
||||
def createCategory(self, articles, dom, root, node):
|
||||
|
@ -52,20 +52,24 @@ class Category(Index):
|
|||
|
||||
for category in categories:
|
||||
self.cur_category = category
|
||||
self.filename = category.name_slug
|
||||
filename = self.filename + '.html'
|
||||
articles = Article.objects.filter(category__exact=category).order_by('-creation_date')
|
||||
|
||||
self.nb_pages = 0
|
||||
self.cur_page = 0
|
||||
self.cur_article = 0
|
||||
|
||||
if articles.count() > self.articles_per_page:
|
||||
self.nb_pages = articles.count() / self.articles_per_page
|
||||
|
||||
if not os.path.exists(output + '/category/' + category.name_slug):
|
||||
os.mkdir(output + '/category/' + category.name_slug)
|
||||
|
||||
while self.cur_page <= self.nb_pages:
|
||||
#print 'Generate ' + filename
|
||||
nodes = dom.getElementsByTagName("*")
|
||||
self.parse(hooks, articles, dom, nodes[0])
|
||||
self.writeIfNotTheSame(output + '/category/' + filename, nodes[0].toxml('utf8'))
|
||||
self.writeIfNotTheSame(output + '/category/' + category.name_slug + '/' + filename, nodes[0].toxml('utf8'))
|
||||
self.cur_page = self.cur_page + 1
|
||||
filename = self.filename + str(self.cur_page) + '.html'
|
||||
dom = parse(src + '/_category.html')
|
||||
|
@ -78,7 +82,7 @@ class Category(Index):
|
|||
self.addReport('Removing unused ' + filename)
|
||||
os.unlink(filename)
|
||||
self.cur_page = self.cur_page + 1
|
||||
filename = output + '/category/' + self.filename + str(self.cur_page) + '.html'
|
||||
filename = output + '/category/' + category.name_slug + '/' + self.filename + str(self.cur_page) + '.html'
|
||||
|
||||
if not self.somethingWrote:
|
||||
self.addReport('Nothing changed')
|
||||
|
|
25
models.py
25
models.py
|
@ -148,29 +148,8 @@ class Category(models.Model):
|
|||
def remove(self, blog):
|
||||
blog.create_paths()
|
||||
|
||||
output = blob.output_path
|
||||
cur_cat = 0
|
||||
while True:
|
||||
found = False
|
||||
filename = output + '/category/'
|
||||
if cur_cat == 0:
|
||||
filename = filename + self.name_slug + '.html'
|
||||
else:
|
||||
filename = filename + self.name_slug + str(cur_cat) + '.html'
|
||||
if os.path.exists(filename):
|
||||
os.unlink(filename)
|
||||
found = True
|
||||
filename = filename + '.gz'
|
||||
if os.path.exists(filename):
|
||||
os.unlink(filename)
|
||||
found = True
|
||||
if not found:
|
||||
break
|
||||
cur_cat = cur_cat + 1
|
||||
|
||||
filename = output + '/category/'
|
||||
if len(os.listdir(filename)) == 0:
|
||||
os.rmdir(filename)
|
||||
output = blog.output_path + '/category/' + self.name_slug
|
||||
shutil.rmtree(output)
|
||||
|
||||
|
||||
class Tag(models.Model):
|
||||
|
|
5
views.py
5
views.py
|
@ -139,8 +139,11 @@ def edit_category(request, category_id):
|
|||
if 'cancel' in request.POST:
|
||||
return HttpResponseRedirect('/category')
|
||||
if 'edit' in request.POST and request.user.is_superuser:
|
||||
name = category.name
|
||||
form = CategoryForm(request.POST, instance=category) # A form bound to the POST data
|
||||
if form.is_valid(): # All validation rules pass
|
||||
if category.name != name:
|
||||
category.remove()
|
||||
form.save()
|
||||
else:
|
||||
form = CategoryForm(instance=category) # An unbound form
|
||||
|
@ -295,7 +298,7 @@ def edit_article(request, article_id):
|
|||
if 'edit' in request.POST:
|
||||
form = ArticleForm(request.POST, instance=article) # A form bound to the POST data
|
||||
if form.is_valid(): # All validation rules pass
|
||||
if title != article.title:
|
||||
if title != form.title:
|
||||
article.remove()
|
||||
form.save()
|
||||
# Process the data in form.cleaned_data
|
||||
|
|
Loading…
Reference in New Issue
Block a user