Advertisement
Guest User

Untitled

a guest
May 13th, 2017
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.59 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. # Create your views here.
  3. from django.shortcuts import get_object_or_404
  4. from django.contrib.auth.decorators import login_required
  5. from django.http                import HttpResponse, Http404
  6. from django.contrib.auth.models import User
  7. from django.template            import Context
  8. from django.template.loader     import get_template
  9. from django.shortcuts           import render_to_response
  10. from django.http                import HttpResponseRedirect
  11. from django.contrib.auth        import logout
  12. from django.template            import RequestContext
  13. from bookmarks.forms            import *
  14. from bookmarks.models           import *
  15.  
  16. def register_page(request):
  17.   if request.method == 'POST':
  18.      form = RegistrationForm(request.POST)
  19.      if form.is_valid():
  20.        user = User.objects.create_user(
  21.          username=form.cleaned_data['username'],
  22.          password=form.cleaned_data['password1'],
  23.          email=form.cleaned_data['email']
  24.        )
  25.        return HttpResponseRedirect('/register/success/')
  26.   else:
  27.      form = RegistrationForm()
  28.   variables = RequestContext(request, {
  29.       'form': form
  30.   })
  31.   return render_to_response(
  32.      'registration/register.html',
  33.      variables
  34.   )
  35.  
  36.  
  37. def logout_page(request):
  38.     logout(request)
  39.     return HttpResponseRedirect('/')
  40.  
  41. def main_page(request):
  42.   return render_to_response(
  43.     'main_page.html', RequestContext(request)
  44.   )
  45.  
  46. def user_page(request, username):
  47.   user = get_object_or_404(User, username=username)
  48.   bookmarks = user.bookmark_set.order_by('-id')
  49.   variables = RequestContext(request, {
  50.      'bookmarks': bookmarks,
  51.      'username': username,
  52.      'show_tags': True,
  53.      'show_edit': username == request.user.username,
  54.      
  55.   })
  56.   return render_to_response('user_page.html', variables)
  57.  
  58. ##Observar esta função, em relação à identação
  59. @login_required
  60. def bookmark_save_page(request):
  61.    
  62.      ##Inicio do if
  63.     if request.method == 'POST':
  64.         form = BookmarkSaveForm(request.POST)
  65.         if form.is_valid():
  66.             bookmark = _bookmark_save(request, form)
  67.             return HttpResponseRedirect(
  68.             '/~%s/' % request.user.username
  69.             )
  70.     ##Fim do if
  71.    
  72.     ##Inicio do elif
  73.     elif 'url' in request.GET:
  74.         url = request.GET['url']
  75.         title = ''
  76.         tags = ''
  77.         try:
  78.             link = Link.objects.get(url=url)
  79.             bookmark = Bookmark.objects.get(
  80.             link=link,
  81.             user=request.user
  82.             )
  83.             title = bookmark.title
  84.             tags = ' '.join(
  85.             tag.name for tag in bookmark.tag_set.all()
  86.             )
  87.         except (Link.DoesNotExist, Bookmark.DoesNotExist):
  88.             pass
  89.         form = BookmarkSaveForm({
  90.         'url': url,
  91.         'title': title,
  92.         'tags': tags
  93.         })
  94.     ##Fim do elif    
  95.    
  96.     ##Inicio do else
  97.     else:
  98.         form = BookmarkSaveForm()
  99.          variables = RequestContext(request, {
  100.         'form': form })
  101.     ##Fim do else    
  102.     return render_to_response('bookmark_save.html', variables)
  103.    
  104.    
  105. def tag_page(request, tag_name):
  106.   tag = get_object_or_404(Tag, name=tag_name)
  107.   bookmarks = tag.bookmarks.order_by('-id')
  108.   variables = RequestContext(request, {
  109.      'bookmarks': bookmarks,
  110.      'tag_name': tag_name,
  111.      'show_tags': True,
  112.      'show_user': True
  113.   })
  114.   return render_to_response('tag_page.html', variables)
  115.  
  116.  
  117. def tag_cloud_page(request):
  118.   MAX_WEIGHT = 5
  119.   tags = Tag.objects.order_by('name')
  120.   # Calculate tag, min and max counts.
  121.   min_count = max_count = tags[0].bookmarks.count()
  122.   for tag in tags:
  123.      tag.count = tag.bookmarks.count()
  124.      if tag.count < min_count:
  125.        min_count = tag.count
  126.      if max_count < tag.count:
  127.        max_count = tag.count
  128.   # Calculate count range. Avoid dividing by zero.
  129.   range = float(max_count - min_count)
  130.   if range == 0.0:
  131.      range = 1.0
  132.   # Calculate tag weights.
  133.   for tag in tags:
  134.      tag.weight = int(
  135.        MAX_WEIGHT * (tag.count - min_count) / range
  136.      )
  137.   variables = RequestContext(request, {
  138.      'tags': tags
  139.   })
  140.   return render_to_response('tag_cloud_page.html', variables)
  141.  
  142. def search_page(request):
  143.   form = SearchForm()
  144.   bookmarks = []
  145.   show_results = False
  146.   if 'query' in request.GET:
  147.      show_results = True
  148.      query = request.GET['query'].strip()
  149.      if query:
  150.        form = SearchForm({'query' : query})
  151.        bookmarks = Bookmark.objects.filter(
  152.          title__icontains=query
  153.        )[:10]
  154.   variables = RequestContext(request, {
  155.      'form': form,
  156.      'bookmarks': bookmarks,
  157.      'show_results': show_results,
  158.      'show_tags': True,
  159.      'show_user': True
  160.   })
  161.   if request.GET.has_key('ajax'):
  162.         return render_to_response('bookmark_list.html', variables)
  163.   else:
  164.         return render_to_response('search.html', variables)
  165.  
  166.  
  167. def _bookmark_save(request, form):
  168.     # Create or get link.
  169.     link, dummy = Link.objects.get_or_create(
  170.     url=form.cleaned_data['url']
  171.     )
  172.     # Create or get bookmark.
  173.     bookmark, created = Bookmark.objects.get_or_create(
  174.     user=request.user,
  175.     link=link
  176.     )
  177.     # Update bookmark title.
  178.     bookmark.title = form.cleaned_data['title']
  179.     # If the bookmark is being updated, clear old tag list.
  180.     if not created:
  181.         bookmark.tag_set.clear()
  182.     # Create new tag list.
  183.     tag_names = form.cleaned_data['tags'].split()
  184.     for tag_name in tag_names:
  185.         tag, dummy = Tag.objects.get_or_create(name=tag_name)
  186.         bookmark.tag_set.add(tag)
  187.     # Save bookmark to database.
  188.     bookmark.save()
  189.     return bookmark;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement