コード例 #1
0
ファイル: views.py プロジェクト: onem-developer/post-demo-app
    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)
コード例 #2
0
ファイル: views.py プロジェクト: onem-developer/reviews
    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)
コード例 #3
0
ファイル: views.py プロジェクト: onem-developer/post-demo-app
    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)
コード例 #4
0
ファイル: views.py プロジェクト: onem-developer/reviews
    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)
コード例 #5
0
ファイル: views.py プロジェクト: bogdanta/postdev
    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)
コード例 #6
0
    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)