Skip to content

Commit

Permalink
WIP: changed Blog to Biblion and removed Section bits
Browse files Browse the repository at this point in the history
  • Loading branch information
brosner committed Oct 19, 2011
1 parent 06d9002 commit f4ca882
Show file tree
Hide file tree
Showing 6 changed files with 37 additions and 110 deletions.
22 changes: 11 additions & 11 deletions biblion/admin.py
@@ -1,7 +1,8 @@
from django.contrib import admin
from django.utils.functional import curry

from biblion.models import Blog, Post, Image
from django.contrib import admin

from biblion.models import Biblion, Post, Image
from biblion.forms import AdminPostForm
from biblion.utils import can_tweet

Expand All @@ -11,13 +12,18 @@ class ImageInline(admin.TabularInline):
fields = ["image_path"]


class BiblionAdmin(admin.ModelAdmin):
prepopulated_fields = {
"slug": ["title"],
}


class PostAdmin(admin.ModelAdmin):
list_display = ["blog", "title", "published_flag", "section"]
list_filter = ["blog", "section"]
form = AdminPostForm
fields = [
"blog",
"section",
"biblion",
"title",
"slug",
"author",
Expand Down Expand Up @@ -57,12 +63,6 @@ def save_form(self, request, form, change):
return form.save()


class BlogAdmin(admin.ModelAdmin):
prepopulated_fields = {
"slug": ["title"],
}

admin.site.register(Biblion, BiblionAdmin)
admin.site.register(Post, PostAdmin)
admin.site.register(Image)
admin.site.register(Blog, BlogAdmin)

6 changes: 3 additions & 3 deletions biblion/forms.py
Expand Up @@ -5,15 +5,15 @@
from django.core.exceptions import ImproperlyConfigured
from django.utils.functional import curry

from biblion.models import Blog, Post, Revision
from biblion.models import Biblion, Post, Revision
from biblion.settings import PARSER
from biblion.utils import can_tweet, load_path_attr


class BlogForm(forms.ModelForm):
class BiblionForm(forms.ModelForm):

class Meta:
model = Blog
model = Biblion


class AdminPostForm(forms.ModelForm):
Expand Down
19 changes: 4 additions & 15 deletions biblion/models.py
Expand Up @@ -21,7 +21,7 @@
from biblion.utils import can_tweet


class Blog(models.Model):
class Biblion(models.Model):

title = models.CharField(max_length=128)
subtitle = models.CharField(max_length=256, null=True, blank=True)
Expand All @@ -31,23 +31,12 @@ def __unicode__(self):
return unicode(self.title)

def get_absolute_url(self):
return reverse("blog_detail", kwargs={"slug": self.slug})


class Section(models.Model):

blog = models.ForeignKey(Blog, related_name="sections")
name = models.CharField(max_length=128)
slug = models.SlugField()

def __unicode__(self):
return u"%s - %s" % (self.blog, self.name)
return reverse("biblion_detail", kwargs={"slug": self.slug})


class Post(models.Model):

blog = models.ForeignKey(Blog, related_name="posts")
section = models.ForeignKey(Section, related_name="posts")
biblion = models.ForeignKey(Blog, related_name="posts")

title = models.CharField(max_length=90)
slug = models.SlugField()
Expand Down Expand Up @@ -180,8 +169,8 @@ def __unicode__(self):
else:
return "deleted image"


class FeedHit(models.Model):

request_data = models.TextField()
created = models.DateTimeField(default=datetime.now)

44 changes: 0 additions & 44 deletions biblion/templatetags/biblion_tags.py
Expand Up @@ -41,47 +41,3 @@ def render(self, context):
def latest_blog_post(parser, token):
bits = token.split_contents()
return LatestBlogPostNode(bits[2])


class LatestSectionPostNode(template.Node):

def __init__(self, section, context_var):
self.section = template.Variable(section)
self.context_var = context_var

def render(self, context):
section = self.section.resolve(context)
try:
post = Post.objects.filter(section__slug=section).latest("published")
except Post.DoesNotExist:
post = None
context[self.context_var] = post
return u""


@register.tag
def latest_section_post(parser, token):
"""
{% latest_section_post "articles" as latest_article_post %}
"""
bits = token.split_contents()
return LatestSectionPostNode(bits[1], bits[3])


class BlogSectionsNode(template.Node):

def __init__(self, context_var):
self.context_var = context_var

def render(self, context):
context[self.context_var] = Section.objects.all()
return u""


@register.tag
def blog_sections(parser, token):
"""
{% blog_sections as blog_sections %}
"""
bits = token.split_contents()
return BlogSectionsNode(bits[2])
5 changes: 3 additions & 2 deletions biblion/utils.py
Expand Up @@ -12,8 +12,9 @@


def can_tweet():
creds_available = (hasattr(settings, "TWITTER_USERNAME") and
hasattr(settings, "TWITTER_PASSWORD"))
creds_available = (
hasattr(settings, "TWITTER_USERNAME") and hasattr(settings, "TWITTER_PASSWORD")
)
return twitter and creds_available


Expand Down
51 changes: 16 additions & 35 deletions biblion/views.py
Expand Up @@ -11,56 +11,43 @@
from django.contrib.sites.models import Site

from biblion.forms import BlogForm
from biblion.models import Blog, FeedHit, Section
from biblion.models import Biblion, FeedHit, Section



# def blog_index(request, blog_slug):
# def blog_index(request, biblion_slug):
#
# blog = get_object_or_404(Blog, slug=blog_slug)
# posts = blog.posts.current()
# biblion = get_object_or_404(Biblion, slug=biblion_slug)
# posts = biblion.posts.current()
#
# return render_to_response("biblion/blog_list.html", {
# "posts": posts,
# }, context_instance=RequestContext(request))


class BlogList(ListView):
class BiblionList(ListView):

model = Blog
model = Biblion


class BlogCreate(CreateView):

model = Blog
form_class = BlogForm


def blog_section_list(request, blog_slug, slug):

blog = get_object_or_404(Blog, slug=blog_slug)
section = get_object_or_404(Section, slug=slug)
posts = blog.posts.filter(section=section)

return render_to_response("biblion/blog_section_list.html", {
"section_slug": slug,
"section_name": section.name,
"posts": posts,
}, context_instance=RequestContext(request))
model = Biblion
form_class = BiblionForm


def blog_post_detail(request, **kwargs):

blog = get_object_or_404(Blog, slug=kwargs["blog_slug"])
biblion = get_object_or_404(Biblion, slug=kwargs["biblion_slug"])

if "post_pk" in kwargs:
if request.user.is_authenticated() and request.user.is_staff:
queryset = blog.posts.all()
queryset = biblion.posts.all()
post = get_object_or_404(queryset, pk=kwargs["post_pk"])
else:
raise Http404()
else:
queryset = blog.posts.current()
queryset = biblion.posts.current()
queryset = queryset.filter(
published__year = int(kwargs["year"]),
published__month = int(kwargs["month"]),
Expand Down Expand Up @@ -88,24 +75,18 @@ def serialize_request(request):
return json.dumps(data)


def blog_feed(request, blog_slug, slug=None):

blog = get_object_or_404(Blog, slug=blog_slug)
def blog_feed(request, biblion_slug):

if slug:
section = get_object_or_404(Section, slug=slug)
posts = blog.posts.filter(section=section)
else:
section = Section.objects.get(slug="all")
posts = blog.posts()
biblion = get_object_or_404(Biblion, slug=biblion_slug)
posts = biblion.posts()

current_site = Site.objects.get_current()

feed_title = "%s Blog: %s" % (current_site.name, section.blog.title.upper() + section.name)
feed_title = "%s Blog" % current_site.name

blog_url = "http://%s%s" % (current_site.domain, reverse("blog"))

url_name, kwargs = "blog_feed", {"section": section.slug}
url_name, kwargs = "blog_feed", {}
feed_url = "http://%s%s" % (current_site.domain, reverse(url_name, kwargs=kwargs))

if posts:
Expand Down

0 comments on commit f4ca882

Please sign in to comment.