def like_event(request, pk): """Adds a like to an event. Creates and saves a Like object which contains the User who liked the event. Args: request: Django's HttpRequest object that contains metadata. https://docs.djangoproject.com/en/dev/ref/request-response/ pk: ID of event receiving the "Like". Returns: redirect to index. Raises: None. """ template_var = base_template_vals(request) previousLike = Like.objects.filter(event=Event.objects.get(id=pk), user=UserProfile.objects.filter( django_user=request.user)[0]) if(len(previousLike) == 0): like = Like(event=Event.objects.get(id=pk)) like.user = UserProfile.objects.filter(django_user=request.user)[0] like.save() #sys notification from_user = UserProfile.objects.get(django_user = User.objects.get( username__exact='admin')) to_user = UserProfile.objects.get(django_user=request.user) event_id = pk sys_notification(to_user, "save_event", from_user, event_id) return redirect('index')
def add_comment(request, pk, pk2): """Posts comment to specific event. Checks if the request has "content" and the user is authenticated. If they both are "True", creates and saves comment object. Then sends a notification to the event poster with the sys_notification function. Args: request: Django's HttpRequest object that contains metadata. https://docs.djangoproject.com/en/dev/ref/request-response/ pk: ID for event that's recieving comment. pk2: ID for user posting the comment. Returns: Calls "single"" function passing in "request" from input args Raises: None. """ template_var = base_template_vals(request) p = request.POST if p.has_key("content") and p["content"]: if request.user.is_authenticated(): comment = Comment(event=Event.objects.get(id=pk)) comment.user = UserProfile.objects.get(django_user=request.user) comment.content = p["content"] comment.save() # Sys notification from_user = UserProfile.objects.get(django_user=pk2) # Who's event that is commented on to_user = Event.objects.get(id=pk).author event_id = pk sys_notification(to_user, "add_comment", from_user, event_id) return single(request, pk)
def approve_event(request, pk): template_var = base_template_vals(request) user = template_var["u"] if user.is_superuser: approved_event = Event.objects.get(id=pk) approved_event.is_approved = True approved_event.save() #system notification to_user = approved_event.author from_user = template_var["u"] event_id = pk sys_notification(to_user, "approve_event", from_user, event_id) return HttpResponseRedirect(reverse('overview')) else: return HttpResponseRedirect(reverse('index'))
def approve_user(request, pk): template_var = base_template_vals(request) user = template_var["u"] if user.is_superuser: approved_user = UserProfile.objects.get(id=pk) approved_user.affiliation_msg = "" approved_user.is_moderator = True approved_user.is_approved = True approved_user.save() #system notification to_user = approved_user from_user = template_var["u"] event_id = 0 sys_notification(to_user, "approve_user", from_user, event_id) return HttpResponseRedirect(reverse('overview')) else: return HttpResponseRedirect(reverse('index'))
def add_friend(request, pk): """Adds targeted user as a friend of the current user. Only works if current user is authenticated. Retrieves the current user and the targeted user's (user_id = pk) UserProfile objects, check if they are friends already; and if not, create a new friendship object and store it in database. Args: request: Django's HttpRequest object that contains metadata. https://docs.djangoproject.com/en/dev/ref/request-response/ pk: Parameter in URL, representing targeted user's UserProfile id. Returns: HttpResponseRedirect, to the homepage (index) with no parameters. Raises: Http404, if either of the friendship participants is non-existent. """ template_var = base_template_vals(request) try: from_user = UserProfile.objects.get(django_user=request.user) except UserProfile.DoesNotExist: raise Http404 try: to_user = UserProfile.objects.get(id=pk) except UserProfile.DoesNotExist: raise Http404 if(from_user == to_user):#should not follow self return HttpResponseRedirect(reverse('index')) size = len(Friendship.objects.filter(friend_from=from_user, friend_to=to_user)) if(size == 0): f = Friendship(friend_from=from_user, friend_to=to_user) f.save() # System notification event_id = 0 # Should be nothing in this case print str(to_user) print str(from_user) sys_notification(to_user, "followed", from_user, event_id) return HttpResponseRedirect(reverse('index'))