Esempio n. 1
0
 def links(request, username):
     session_account = None
     notify_count = None
     profile = get_object_or_404(User, username=username)
     profile_account = Account.get_by_user(user=profile)
     profile.user_avatar = profile_account.user_avatar
     if request.user.is_authenticated:
         session_account = Account.get_by_user(request.user)
         request.user.is_following = session_account.is_following(profile_account)
         notify_count = Notification.objects.filter(owner=session_account, viewed=False).count()
     posts = Post.links_by_user(username, session_account)
     return render(request, 'link/link.html', {'profile': profile, 'posts': posts, 'links': True,
                                               'notify_count': notify_count})
Esempio n. 2
0
 def login(request):
     form = None
     if request.method == 'POST':
         form = LoginForm(request.POST)
         if form.is_valid():
             data = form.data
             if '@' in data['identity']:
                 kwargs = {'email': data['identity'].lower()}
             else:
                 kwargs = {'username': data['identity'].lower()}
             try:
                 user = User.objects.get(**kwargs)
                 if user is not None and user.check_password(
                         data['password']):
                     login(request, user)
                     if 'keep_connected' in data:
                         request.session.set_expiry(0)
                     next_page = request.GET.get('next', None)
                     redirect_path = reverse('home')
                     if next_page is not None and next_page != '':
                         redirect_path = next_page
                     user_account = Account.get_by_user(user=user)
                     request.session[
                         'user_avatar'] = user_account.user_avatar
                     request.session.save()
                     return redirect(redirect_path)
             except User.DoesNotExist:
                 pass
     return render(request, 'index.html', {'form': form})
Esempio n. 3
0
 def add(request, post_id):
     if request.method == 'POST':
         post = Post.objects.get(id=post_id)
         account = Account.get_by_user(request.user)
         post.add_link(account)
         Notification.add(post.publisher, account, NotificationType.ADD, post)
     redirect_path = request.GET['next']
     return redirect(redirect_path)
Esempio n. 4
0
 def follow(request, username):
     if request.method == 'POST':
         relationship = Relationship()
         relationship.owner = Account.get_by_user(request.user)
         relationship.follow = Account.get_by_username(username)
         if not relationship.owner.is_following(relationship.follow):
             relationship.save()
             Notification.add(relationship.follow, relationship.owner,
                              NotificationType.FOLLOW)
         return redirect('profile', username)
Esempio n. 5
0
 def react(request, post_id):
     if request.method == 'POST':
         reaction = Reaction()
         reaction.post = Post.objects.get(id=post_id)
         reaction.owner = Account.get_by_user(request.user)
         reaction.save()
         Notification.add(reaction.post.owner, reaction.owner,
                          NotificationType.REACT, reaction.post)
     redirect_path = request.GET['next']
     return redirect(redirect_path)
Esempio n. 6
0
 def following(request, username):
     notify_count = None
     profile = get_object_or_404(User, username=username)
     accounts = Account.objects.filter(
         followers__owner__user__username=username)
     profile_account = Account.get_by_user(user=profile)
     profile.user_avatar = profile_account.user_avatar
     if request.user.is_authenticated:
         session_account = Account.get_by_user(request.user)
         request.user.is_following = session_account.is_following(
             profile_account)
         notify_count = Notification.objects.filter(owner=session_account,
                                                    viewed=False).count()
     return render(
         request, 'account/user.html', {
             'profile': profile,
             'accounts': accounts,
             'following': True,
             'notify_count': notify_count
         })
Esempio n. 7
0
 def comment(request, post_id):
     if request.method == 'POST':
         form = CommentForm(request.POST)
         if form.is_valid():
             comment = form.save(commit=False)
             comment.post = Post.objects.get(id=post_id)
             comment.owner = Account.get_by_user(request.user)
             comment.save()
             Notification.add(comment.post.owner, comment.owner,
                              NotificationType.COMMENT, comment.post)
     redirect_path = request.GET['next']
     return redirect(redirect_path)
Esempio n. 8
0
 def upload_avatar(request):
     user = request.user
     user_avatar = request.FILES.get('user_avatar', None)
     if request.method == 'POST' and user_avatar:
         ext = os.path.splitext(user_avatar.name)[1]
         if ext.lower() in ['.jpg', '.jpeg', '.png']:
             filename = user.username + '.jpg'
             fs = FileSystemStorage()
             if fs.exists(filename):
                 fs.delete(filename)
             fs.save(filename, user_avatar)
             user_account = Account.get_by_user(user=user)
             request.session['user_avatar'] = user_account.user_avatar
             request.session.save()
     return redirect('account_settings')
Esempio n. 9
0
    def list(request):
        query = request.GET.get('q', None)
        anonymous = request.GET.get('anonymous', False)
        owner = None

        if not anonymous:
            owner = Account.get_by_user(request.user)

        try:
            search = Search(query, owner)
            search.process()
        except SearchException:
            pass

        notify_count = Notification.objects.filter(owner__user=request.user, viewed=False).count()
        return render(request, 'search/list.html', {'search': search, 'notify_count': notify_count})
Esempio n. 10
0
 def new(request):
     form = None
     if request.method == 'POST':
         form = URLForm(request.POST)
         if form.is_valid():
             post = form.save(commit=False)
             user_account = Account.get_by_user(request.user)
             post.owner = user_account
             post.publisher = user_account
             try:
                 post.set_metadata()
                 post.save()
                 return redirect('home')
             except LinkException as e:
                 form.add_error(None, e)
     return render(request, 'home.html', {'form': form})
Esempio n. 11
0
 def unfollow(request, username):
     if request.method == 'POST':
         owner = Account.get_by_user(request.user)
         follow = Account.get_by_username(username)
         owner.unfollow(follow)
         return redirect('profile', username)