예제 #1
0
파일: views.py 프로젝트: shula/citytree
def show_blog_or_workshop( request, blog_slug ):
    b = get_object_or_404(Blog, slug=blog_slug)
    posts = b.post_set.filter(draft=0)
    
    #------------ Get List of flags in blog ---------
    flags = Flag.objects.filter( post__blog = b.id ).filter( blog__post__draft = 0 ).distinct()
  
    #------------ If a specific flag was requested, then show only that flag -------
    if( request.method == 'GET' and request.GET.has_key('flag') ):
        flagId = int(request.GET['flag'])
        posts = posts.filter( flags__id =  flagId )
  
    #------------ Create Objects for Hebrew Calender ----
    calLinkType     = FRONTPAGE_URL_TYPE
    calLinkTemplate = CALENDAR_URL_TYPE_REGISTRY[calLinkType]
  
    dateToShow = date.today()
    bgColorProcessor = makeHebBGColorProcessor( dateToShow )
    dayLinks = makeHebCalLinks( '/?date=%s', date.today() )
    calender = makeHebCalRequestContext(dayLinks, engDate=date.today(), urlType=calLinkType, highlightToday=True)

    render_dict = add_render_variables({
        'blog': b, 'flags': flags
        }, obj=b)

    if b.is_workshop():
        for p in posts:
            p.make_sure_workshop_exists()
    #------------- Takes care of workshops --------
        no_events = posts.filter(workshop__workshopevent=None)
        now = datetime.datetime.now()
        start_of_today = datetime.datetime(now.year, now.month, now.day)
        _have_events = posts.filter(
                workshop__workshopevent__workshopeventpart__start_time__gte=start_of_today
                ).order_by('workshop__workshopevent__workshopeventpart__start_time')
        temp_set = set()
        have_events = []
        for p in _have_events:
            if p not in temp_set:
                have_events.append(p)
                temp_set.add(p)
        if settings.SHOW_WORKSHOPS_WITH_NO_EVENTS:
            posts = itertools.chain(have_events, no_events)
        else:
            posts = have_events
        render_dict['post_list'] = posts

        # don't show no_events for now
        return render_to_response('cityblog/blog_workshops.html',
            render_dict, context_instance = RequestContext(request, {}, [calender, bgColorProcessor])
            )
    else:
    #------------ Standard blog with normal, non workshop, posts --------
        return generic_object_list( request, queryset=posts,
              template_object_name='post',
              template_name='cityblog/blog_posts.html',
              allow_empty=True, 
              extra_context=render_dict,
              context_processors =[calender,bgColorProcessor],
              paginate_by=NUM_POSTS_PER_PAGE)
예제 #2
0
파일: views.py 프로젝트: shula/citytree
def display_workshop(request, workshop_slug, preview=False):

    # get workshop, get all workshopevents for it, get all workshopeventparts (ok - delegate)
    # render using template. add registration form at the bottom (reuse top - or just move it here)

    if( not preview ):
        workshop = get_object_or_404(Workshop, slug=workshop_slug, defining_post__draft=0)
    else:
        workshop = get_object_or_404(Workshop, slug=workshop_slug, defining_post__author=request.user.id )
      
    p = workshop.defining_post
    blog    = p.blog
    pImages = p.postimage_set.all().order_by( 'index' )
  
    #------------ Get List of flags in blog ---------
    flags = Flag.objects.filter( post__blog = blog.id ).filter( post__draft = 0 ).distinct()
      
    #------------ Create Objects for Hebrew Calender ----
    calLinkType     = FRONTPAGE_URL_TYPE
    calLinkTemplate = CALENDAR_URL_TYPE_REGISTRY[calLinkType]
  
    return generic_object_detail(
        request,
        object_id = workshop.id, #p.id,
        queryset  = Workshop.objects.all(),
        template_name = "workshop/workshop.html",
        #context_processors =[calendar,bgColorProcessor],
        extra_context = add_render_variables(
            { 'post':p, 'workshop':workshop, 'blog':blog,
            'flags':flags, 'galleryImages':pImages }, obj=p),
        template_object_name = 'post'
    )
예제 #3
0
파일: views.py 프로젝트: shula/citytree
def display_post( request, post_id, preview = False ):
  if( not preview ):
      p    = get_object_or_404(Post, id=post_id, draft=0)
  else:
      p    = get_object_or_404(Post, id=post_id, author=request.user.id )
      
  # redirect to workshop (#35)
  if p.is_workshop():
      return HttpResponseRedirect(reverse('workshop', args=[p.workshop.slug]))

  blog    = p.blog
  pImages = p.postimage_set.all().order_by( 'index' )            
  
  #-------------- Get Correct Template ----------------
  if( p.post_style == 2 ):
      template_name = "post_long.html"
  elif( p.post_style == 3 ):
      template_name = "post_gallery.html"
  else:
      template_name = "post_short.html"
      
  #------------ Get List of flags in blog ---------
  flags = Flag.objects.filter( post__blog = blog.id ).filter( post__draft = 0 ).distinct()
      
  #------------ Create Objects for Hebrew Calender ----
  calLinkType     = FRONTPAGE_URL_TYPE
  calLinkTemplate = CALENDAR_URL_TYPE_REGISTRY[calLinkType]
  
  #dateToShow = date.today()
  #bgColorProcessor = makeHebBGColorProcessor( dateToShow )
  #dayLinks = makeHebCalLinks( calLinkTemplate, date.today() )
  #calendar = makeHebCalRequestContext(dayLinks, engDate=date.today(), urlType=calLinkType, highlightToday=True)

  #-------------- Extra Info ----------------
  
  return generic_object_detail(
    request,
    object_id =  post_id,
    queryset  = Post.objects.all(),
    template_name = 'cityblog/%s'%template_name,
    #context_processors =[calendar,bgColorProcessor],
    extra_context = add_render_variables({
        'blog' : blog, 'flags' : flags, 'galleryImages': pImages }, obj=p),
    template_object_name = 'post'
  )
예제 #4
0
파일: views.py 프로젝트: shula/citytree
def subject_view( request, subject_slug ):
    theSubject = get_object_or_404(Subject, slug=subject_slug)
    flags = theSubject.flags.all()
    
    cat_ids = [ cat.id for cat in flags ]
    
    thePosts = Post.objects.filter( draft=0, flags__in = cat_ids )
    
    frontpage = FrontPage.objects.filter(draft=False).latest()
    
    return generic_object_list( request, queryset=thePosts,
                  template_object_name='post',
                  template_name='cityblog/subject_view.html',
                  allow_empty=True, 
                  extra_context=add_render_variables(
                                { 'theSubject' : theSubject,
                                  'frontpage' : frontpage }, obj=theSubject),
                  context_processors =[],
                  paginate_by=NUM_SUBJECTS_PER_PAGE)