def get(self, request, post_id=None): user = self.get_user() if user.username == '': form_items = [ FormItem(type=FormItemType.string, name='username', description='Please choose a username', header='MENU', footer='Send username') ] content = Form(body=form_items, method='POST', path=reverse('home'), meta=FormMeta(confirmation_needed=False, completion_status_in_header=False, completion_status_show=False)) else: menu_items = [ MenuItem(description='Add post', method='GET', path=reverse('add_post')), MenuItem(description='Search', method='GET', path=reverse('search_wizard')), MenuItem(description='My posts', method='GET', path=reverse('my_posts')) ] posts = Post.objects.exclude(user=self.get_user()).exclude( is_private=True).order_by('-created_at').all()[:3] if posts: for post in posts: menu_items.append( MenuItem(description=u'{}..'.format(post.title[:17]), method='GET', path=reverse('post_detail', args=[post.id]))) content = Menu(body=menu_items) return self.to_response(content)
def get(self, request): menu_items = [] # check if an item has just been rated rating_added = cache.get('rating_added') if rating_added: menu_items.append( MenuItem(description='Rating of {value} was added to {item}'. format(value=rating_added['rating_value'], item=rating_added['rated_item']))) cache.set('rating_added', None) items = Item.objects.all() # local sqlite DB is already populated menu_items.extend([ MenuItem(description=item.name, method='GET', path=reverse('item_detail', args=[item.id])) for item in items ]) content = Menu(body=menu_items, header=u'REVIEWS HOME') return self.to_response(content)
def get(self, request): menu_items = [] if cache.get('post_deleted'): menu_items.extend( [MenuItem(description='Post successfuly deleted!')]) posts = Post.objects.filter( user=self.get_user()).order_by('-created_at') if posts: for post in posts: menu_items.append( MenuItem(description=u'{}..'.format(post.title[:15]), method='GET', path=reverse('post_detail', args=[post.id]))) else: menu_items.append( MenuItem(description='You currently have no posts.')) content = Menu(body=menu_items, footer='Reply MENU') return self.to_response(content)
def get(self, request, id): menu_items = [ MenuItem(description='Add comment', method='GET', path=reverse('add_comment', args=[id])) ] item = Item.objects.get(id=id) comments = Comment.objects.filter(item=item) if comments: for comment in comments: menu_items.append( MenuItem(description=u'{}..'.format(comment.text[:18]), method='GET', path=reverse('comment_detail', args=[comment.id]))) else: menu_items.append( MenuItem(description='This item has no comments yet.')) content = Menu(body=menu_items, footer='Reply MENU') return self.to_response(content)
def get(self, request, id): post = get_object_or_404(Post, id=id) post.views += 1 post.save() menu_items = [] body_pre = [ post.description, 'Author: {}'.format(post.user.username), 'Expires in: {}'.format(human(post.expires_at)), 'Code: {}'.format(post.code), 'Views: {}'.format(post.views) ] # check to see if we have notifications set in cache for this post if cache.get('new_post'): body_pre.insert(0, 'Post successfuly created!') cache.delete('new_post') elif cache.get('post_private'): body_pre.insert(0, 'Post marked as private!') cache.delete('post_private') elif cache.get('post_renewed'): body_pre.insert(0, 'Post successfuly renewed!') cache.delete('post_renewed') elif cache.get('msg_sent'): body_pre.insert(0, 'Your message successfuly sent!') cache.delete('msg_sent') elif cache.get('msg_not_sent'): body_pre.insert(0, 'Message was not sent, please try again later!') cache.delete('msg_sent') menu_items.extend([MenuItem(description=u'\n'.join(body_pre))]) if post.user == self.get_user(): # viewing user is the post owner menu_items.extend([ MenuItem(description='Renew', method='PUT', path=reverse('post_detail', args=[post.id]) + '?attr=renew'), MenuItem(description='Delete', method='DELETE', path=reverse('post_detail', args=[post.id])) ]) if not post.is_private: menu_items.extend([ MenuItem(description='Make private', method='PUT', path=reverse('post_detail', args=[post.id]) + '&attr=is_private') ]) else: menu_items.extend([ MenuItem(description='Send message', method='GET', path=reverse('send_msg', args=[post.id])), MenuItem(description='Comments - WIP', method='GET', path=reverse('post_detail', args=[post.id])) ]) content = Menu(body=menu_items, header=post.title, footer='Reply MENU') return self.to_response(content)
def get(self, request): all_events = (Event.objects.annotate( year=ExtractYear('start_datetime')).annotate( start_week=ExtractWeek('start_datetime'))) today = datetime.datetime.today() current_year = today.isocalendar()[0] current_week = today.isocalendar()[1] this_week_events = [] future_events = [] past_events = [] for event in all_events: if event.year == current_year and event.start_week == current_week: this_week_events.append(event) elif (event.year == current_year and event.start_week > current_week) or event.year > current_year: future_events.append(event) else: past_events.append(event) menu_items = [ MenuItem(description='Search', method='GET', path=reverse('search_wizard')) ] if not this_week_events: menu_items.append(MenuItem(description='No events this week')) else: menu_items.append( MenuItem(description='This week events ({})'.format( len(this_week_events)), method='GET', path=reverse('events', args=('current_week', )))) if not future_events: menu_items.append(MenuItem(description='No future events')) else: menu_items.append( MenuItem(description='Future evens ({})'.format( len(future_events)), method='GET', path=reverse('events', args=('future_events', )))) if not past_events: menu_items.append(MenuItem(description='No past events')) else: menu_items.append( MenuItem(description='Past evens ({})'.format( len(past_events)), method='GET', path=reverse('events', args=('past_events', )))) user = self.get_user() if user.is_staff: menu_items.insert( 0, MenuItem(description='Add event', method='GET', path=reverse('add_event'))) # check to see if we have notifications set in cache if cache.get('event_added'): menu_items.insert(0, MenuItem(description='Event added successfully')) cache.delete('event_added') if cache.get('event_edited'): menu_items.insert( 0, MenuItem(description='Event edited successfully')) cache.delete('event_edited') if cache.get('event_deleted'): menu_items.insert( 0, MenuItem(description='Event deleted successfully')) cache.delete('event_deleted') content = Menu(body=menu_items, header='menu') return self.to_response(content)