def POST(self, link_id=None): if link_id: link = Link.get_by_id(int(link_id)) else: link = Link() max_sort_link = Link.all().order('-sort').get() if max_sort_link: # max_sort_category = max_sort_category.pop() max_sort = max_sort_link.sort if not max_sort: max_sort = 1 else: max_sort = 0 link.sort = max_sort + 1 inp = web.input() link.name = inp.name url = inp.get('url') if not url.startswith(('http://', 'https://')): url = 'http://' + url link.url = url link.save() clear_cache() return web.seeother('/admin/links')
class LinkDataSerializer(Serializer): link = ForeignKeyField(slug_field='url', queryset=lambda: Link.all(), many=False) class Meta: model = LinkData fields = ('id', 'link', 'created') read_only_fields = ('created', )
def body(self): content = memcache.get('widget_links') if not content: links = Link.all().order('sort') content = [] write = content.append write('<ul>') for link in links: write('<li><a href="%s" target="_blank">%s</a></li>' % (link.url, link.name)) write('</ul>') content = '\n'.join(content) memcache.set('widget_links', content) return content
def site_context(request): site=get_site() additional_context={'site': site, 'user':get_current_profile(), 'admin':users.is_current_user_admin(), 'logout':users.create_logout_url(reverse('account-signout')), 'links':Link.all().filter('status =','approved').fetch(20) } #additional_context['logo']=get_serving_url(str(site.original_logo.key()), 512) return additional_context
def event_queue(request): def save_details(event): data=request.POST event.title=data['title'] event.link=data['link'] or None event.cost=data['cost'] or None tz=request.site.tz event.start=tz.localize(parser.parse(data['start'])) event.end=tz.localize(parser.parse(data['end'])) if request.POST.has_key('tags'): event.tags=[t.strip() for t in request.POST.get("tags","").lower().split(',')] event.put() timezone=pytz.timezone(request.site.timezone) pending_events=request.site.event_set.filter('status = ', 'submitted') today=utc.localize(datetime.utcnow()).astimezone(timezone).date() pending_events_future=pending_events.filter('local_start >=', today).order('local_start').fetch(50) if request.method == 'POST' and request.POST.has_key('button'): profile=get_current_profile() if request.POST['button'] == 'Reject' and (profile.userlevel == 10): event_results=request.site.event_set.filter(' __key__ =', db.Key(request.POST['event_key']) ) event=event_results.get() event.status="rejected-%s" % request.POST.get('rejection-reason','unspecified') event.put() messages.add_message(request, messages.INFO,'Rejected! Feels good, right?') if request.POST['button'] == 'Save': event_results=request.site.event_set.filter(' __key__ =', db.Key(request.POST['event_key']) ) event=event_results.get() if profile.userlevel == 10: save_details(event) messages.add_message(request, messages.INFO,'%s saved' % event.title) if request.POST['button'] == 'Approve': event_results= request.site.event_set.filter(' __key__ =', db.Key(request.POST['event_key']) ) event=event_results.get() if profile.userlevel == 10: event.status='approved' event.approved_by=profile event.approved_on=datetime.now() save_details(event) messages.add_message(request, messages.INFO,'%s approved' % event.title) if request.POST['button'] == 'Back to queue': event_results= request.site.event_set.filter(' __key__ =', db.Key(request.POST['event_key']) ) event=event_results.get() if profile.userlevel == 10: event.status='submitted' event.approved_by=None event.approved_on=None save_details(event) messages.add_message(request, messages.INFO,'%s sent back' % event.title) request.site.expire_assets() if request.POST.has_key('return'):return HttpResponseRedirect(request.POST['return']) pending_events=request.site.event_set.filter('status = ', 'submitted') has_pending_sources=submitted_icals=ICalendarSource.all().filter('status =', 'submitted').get() has_pending_links=Link.all().filter('status =','submitted').get() return render_to_response('events/queue.html', locals(), context_instance=RequestContext(request))
def get_queryset(self): return Link.all()
def GET(self): links = Link.all().order('sort') return render('admin/links.html', links=links)
def event_queue(request): def save_details(event): data = request.POST event.title = data['title'] event.link = data['link'] or None event.cost = data['cost'] or None tz = request.site.tz event.start = tz.localize(parser.parse(data['start'])) event.end = tz.localize(parser.parse(data['end'])) if request.POST.has_key('tags'): event.tags = [ t.strip() for t in request.POST.get("tags", "").lower().split(',') ] event.put() timezone = pytz.timezone(request.site.timezone) pending_events = request.site.event_set.filter('status = ', 'submitted') today = utc.localize(datetime.utcnow()).astimezone(timezone).date() pending_events_future = pending_events.filter( 'local_start >=', today).order('local_start').fetch(50) if request.method == 'POST' and request.POST.has_key('button'): profile = get_current_profile() if request.POST['button'] == 'Reject' and (profile.userlevel == 10): event_results = request.site.event_set.filter( ' __key__ =', db.Key(request.POST['event_key'])) event = event_results.get() event.status = "rejected-%s" % request.POST.get( 'rejection-reason', 'unspecified') event.put() messages.add_message(request, messages.INFO, 'Rejected! Feels good, right?') if request.POST['button'] == 'Save': event_results = request.site.event_set.filter( ' __key__ =', db.Key(request.POST['event_key'])) event = event_results.get() if profile.userlevel == 10: save_details(event) messages.add_message(request, messages.INFO, '%s saved' % event.title) if request.POST['button'] == 'Approve': event_results = request.site.event_set.filter( ' __key__ =', db.Key(request.POST['event_key'])) event = event_results.get() if profile.userlevel == 10: event.status = 'approved' event.approved_by = profile event.approved_on = datetime.now() save_details(event) messages.add_message(request, messages.INFO, '%s approved' % event.title) if request.POST['button'] == 'Back to queue': event_results = request.site.event_set.filter( ' __key__ =', db.Key(request.POST['event_key'])) event = event_results.get() if profile.userlevel == 10: event.status = 'submitted' event.approved_by = None event.approved_on = None save_details(event) messages.add_message(request, messages.INFO, '%s sent back' % event.title) request.site.expire_assets() if request.POST.has_key('return'): return HttpResponseRedirect(request.POST['return']) pending_events = request.site.event_set.filter('status = ', 'submitted') has_pending_sources = submitted_icals = ICalendarSource.all().filter( 'status =', 'submitted').get() has_pending_links = Link.all().filter('status =', 'submitted').get() return render_to_response('events/queue.html', locals(), context_instance=RequestContext(request))