Ejemplo n.º 1
0
def edit_sub_event( request ):
    if not users.is_current_user_admin():
        return HttpResponseRedirect('/')

    try:
        sekey = Key(request.POST['key'])
        se = Subevent.get(sekey)
        se.content = request.POST['content']
        pekey = memcache.get('event')
        pe = Event.get(pekey)
        # treat date from str to datetime type
        start_date = request.POST['start_date']
        li = start_date.split('-')
        se.start_date = datetime.date( int(li[0]),int(li[1]),int(li[2]))
       
        end_date = request.POST['end_date']
        li = end_date.split('-')
        se.end_date = datetime.date( int(li[0]),int(li[1]),int(li[2]))
        # adjust the parent event's start_date and end_date
        if se.start_date < pe.start_date:
            pe.start_date = se.start_date
        if se.end_date > pe.end_date:
            pe.end_date = se.end_date
        pe.put()
    except:
        return HttpResponse('error')
    
    if se.end_date < today():
        se.isexpired = True
    else:
        se.isexpired = False
    se.put()
    return HttpResponse( se.isexpired )
Ejemplo n.º 2
0
def done_sub_event(request):
    if not users.is_current_user_admin():
        return HttpResponseRedirect('/')
    
    try:
        sekey = Key(request.POST['key'])
        pekey = memcache.get('event')
        is_done = request.POST['is_done']
    except:
        return HttpResponse('error')
    # update event,sub_event,history info
    se = Subevent.get(sekey)
    pe = Event.get(pekey)
    if is_done == 'true':
        se.is_done = True
        se.end_date = today()
        hi = History()
        hi.event = pe
        hi.content = "acomplished:"+se.content
        hi.put()
        #adjust parent event's progress
        pe.progress = pe.progress+100/pe.num_se
        if pe.progress == 100:
            pe.is_done = True
    else:
        se.is_done = False
        if pe.progress == 100:
            pe.is_done = False
        pe.progress = pe.progress-100/pe.num_se
    pe.put()
    se.put()   
    return HttpResponse( se.key() )
Ejemplo n.º 3
0
def new_blog(ekey,title,content,tags_str,is_public):
    blog = Blog()
    if ekey!='None':
        blog.event = Event.get(Key(ekey))
    blog.title = title
    blog.content = content
    blog.publish_time = now()
    blog.is_public = is_public 
    blog.put()
    add_tags( tags_str,blog )
    return blog
Ejemplo n.º 4
0
def update_blog( bkey,ekey,title,is_public,content,tags_str ):
    blog = Blog.get(Key(bkey))
    if ekey!='None':
        blog.event = Event.get(Key(ekey))
    
    blog.title = title
    blog.is_public = is_public
    blog.content = content
    blog.put()
        # update tags
    update_tags( blog,tags_str )
Ejemplo n.º 5
0
def del_event(request):
    if not users.is_current_user_admin():
        return HttpResponseRedirect('/')

    ekey = memcache.get('event')
    memcache.delete('event')
    event = Event.get(ekey)
    # delete sub events
    se_list = Subevent.gql("where event = :1",event)
    db.delete( se_list )
    
    event.delete()
    # delete relate history
    history_li = History.all().filter('event =',event)
    db.delete( history_li )
    
    return HttpResponse("deleted")
Ejemplo n.º 6
0
def edit_event(request):
    if not users.is_current_user_admin():
        return HttpResponseRedirect('/')

    ekey = memcache.get('event')
    event = Event.get(ekey)
    
    if request.method == 'POST':
        event.is_public = request.POST['is_public'] =='1'
        event.title=request.POST['title'].strip()
        event.desc=request.POST['desc'].strip()
        event.put()
        return HttpResponseRedirect( '../event/?event=%s' % str(event.key()) )
    else:
        c = Context({
                  'logouturl':users.create_logout_url('/login'),
                  'is_admin':True,
                  'event':event,
                  })
        return render_to_response( 'newevent.htm',c )
Ejemplo n.º 7
0
def event(request):
    try:
        ekey = request.GET['event']
        # record the current event for further useage
    except KeyError:
        ekey = memcache.get('event')
        if not ekey:
            raise Http404
    
    event = Event.get(Key(ekey))
    memcache.set('event',event.key())

    # get sub event of this event
    se_list = Subevent.gql("where event = :1 order by start_date,end_date",event) 
    # check up wheather sub event is expired
    for se in se_list:
        if se.isexpired==False and se.end_date < today():
            se.isexpired = True
            se.put()
    # get host's history operation on this event
    history_li = History.all().filter('event =',event).order('-publish_time')
    # get blogs about this event
    blog_li = Blog.all().filter('event =',event )
    # get myevents
    myevents = Event.all()
    
    c = Context({
            'logouturl':LOGOUT,
            'loginurl':LOGIN,
            'cur_user':CURUSER,
            'is_admin':users.is_current_user_admin(),
            'event':event,
            'myevents':myevents,
            'se_list':se_list,
            'num_se':se_list.count(20),
            'history_li':history_li,
            'num_history_records':history_li.count(10),
            'blog_li':blog_li,
            'num_blogs':blog_li.count(100),
            })
    return render_to_response('event.htm',c)
Ejemplo n.º 8
0
def add_sub_event(request):
    if not users.is_current_user_admin():
        return HttpResponseRedirect('/')

    pekey = memcache.get('event')
    if not pekey:
        return render_to_response('error.htm',{'error':'No memcache find,please login again!'})
    pe = Event.get(pekey)
    
    if request.method == 'POST':
        se = Subevent( event=pe,content=request.POST['content'].strip() )
        # treat date from str to datetime type
        start_date = request.POST['start_date']
        li = start_date.split('-')
        se.start_date = datetime.date( int(li[0]),int(li[1]),int(li[2]))
        
        end_date = request.POST['end_date']
        li = end_date.split('-')
        se.end_date = datetime.date( int(li[0]),int(li[1]),int(li[2]))
        # adjust the parent event's start_date and end_date
        if se.start_date < pe.start_date:
            pe.start_date = se.start_date
        if se.end_date > pe.end_date:
            pe.end_date = se.end_date
        # adjust progress of parent event,mutipled by 100
        pe.num_se +=1
        pe.progress = pe.progress*(pe.num_se-1)/pe.num_se
        pe.put()
        
        if se.end_date < today():
            se.isexpired = True
        else:
            se.isexpired = False
        se.put()
        return HttpResponse( se.key() )
    else:
        return HttpResponse("error")
Ejemplo n.º 9
0
def del_sub_event(request):
    if not users.is_current_user_admin():
        return HttpResponseRedirect('/')
    try:
        sekey = Key(request.POST['key'])
        pekey = memcache.get('event')
    except:
        return HttpResponse('error')
    
    se = Subevent.get(sekey)
    pe = Event.get(pekey)
    pe.num_se -=1
    if pe.num_se!=0:
        pe.progress = pe.progress*(pe.num_se+1)/pe.num_se
    else:
        pe.progress = 0
        
    if pe.start_date == se.start_date:
        pe.start_date = Subevent.all().order('start_date').get().start_date
    if pe.end_date == se.end_date:
        pe.end_date = Subevent.all().order('-end_date').get().end_date
    pe.put()
    se.delete()
    return HttpResponse( str(sekey) )