def addfriend(request): if request.user.username == "": return HttpResponse('Please sign in!', status=401) if request.method == 'POST': form = AddfriendsForm(request.POST) # A form bound to the POST data if form.is_valid(): this_user = MyUser.objects.get(username = request.user.username) try: friends_obj = Friends.objects.get(name = this_user) except ObjectDoesNotExist: friends_obj = Friends() friends_obj.name = this_user friends_obj.save() name = form.cleaned_data['name'] try: user = MyUser.objects.get(username = name) friends_obj.friends.add(user) except ObjectDoesNotExist: # error!! return HttpResponse('User not found!', status=401) friends_obj.save() return HttpResponseRedirect('/frontend/personal') return HttpResponseRedirect('/frontend/personal') # else: # form = AddfriendForm() # An unbound form # return render(request, 'frontend/personal.html', { # 'form': form, # }) return HttpResponseRedirect('/')
def personal(request): if request.user.username == "": return HttpResponse('Please sign in', status=401) this_user = MyUser.objects.get(username = request.user.username) # groups = MyGroup.objects.filter(creator = request.user.username) #groups = this_user.users_set.all() groups = MyGroup.objects.filter(users = this_user) invites = Invite.objects.filter(invitee = this_user) my_events = NewEvent.objects.filter(Q(creator = this_user), (Q(private = False) | Q(groups__in=groups))).order_by("startTime") rsvped = NewEvent.objects.filter(rsvp = this_user).order_by("startTime") if len(invites) != 0 and len(rsvped) != 0: invites = invites.filter(~Q(event__in = rsvped)) recommended = [] all_users_obj = MyUser.objects.all() all_users = [unicodedata.normalize('NFKD', user.username).encode('ascii', 'ignore') for user in all_users_obj] friends = [] try: friends_obj = Friends.objects.get(name = this_user) friends = friends_obj.friends.all() if (len(friends) != 0 and len(groups) != 0): recommended = NewEvent.objects.filter(((reduce(operator.or_, (Q(rsvp=x) | Q(creator=x) for x in friends))) | (reduce(operator.or_, (Q(groups=x) for x in groups)))), (Q(private = False) | Q(groups__in=groups))).distinct() elif (len(friends) != 0): recommended = NewEvent.objects.filter((reduce(operator.or_, (Q(rsvp=x) | Q(creator=x) for x in friends))), (Q(private = False) | Q(groups__in=groups))).distinct() elif (len(groups) != 0): recommended = NewEvent.objects.filter((reduce(operator.or_, (Q(groups=x) for x in groups))), (Q(private = False) | Q(groups__in=groups))).distinct() if len(recommended) != 0: recommended = recommended.filter(~Q(rsvp=this_user)).order_by("startTime").distinct() other_users = all_users_obj.exclude(pk__in = friends) except ObjectDoesNotExist: friends_obj = Friends() friends_obj.name = this_user friends_obj.save() other_users = all_users_obj events_list = list(my_events) events_list.extend(rsvped) events_list.extend(recommended); form = AddgroupForm() # An unbound form form2 = AddfriendsForm() fb_groups = facebook.get_fb_groups(request) fb_friends = facebook.get_friends(request) return render(request, 'frontend/personal.html', { 'form': form, 'form2':form2, 'groups_list': groups, 'my_events': my_events, 'rsvped': rsvped, 'events_list': events_list, 'recommended':recommended, "friends":friends, 'other_users': other_users, 'all_users': all_users, 'fb_groups': fb_groups, 'fb_friends': fb_friends, 'invites':invites })
def filter(request): tags = request.POST.getlist('tags') personal_type = request.POST.get('type') search = request.POST.get('search_query') events_list = [] context = {'events_list': events_list, 'user': request.user, 'rsvped': [],'tags': tags, 'cal_events': []} username = request.user.username groups = [] if username != "" and\ len(MyUser.objects.filter(username = username)) == 0: return HttpResponseRedirect('/signup') else: try: user = MyUser.objects.get(username=username) invites = Invite.objects.filter(invitee = user) rsvped = NewEvent.objects.filter(rsvp = user).order_by("startTime") if len(invites) != 0 and len(rsvped) != 0: invites = invites.filter(~Q(event__in = rsvped)) lat = user.latitude lon = user.longitude groups = MyGroup.objects.filter(users = user) context['rsvped'] = NewEvent.objects.filter(Q(rsvp = user), (Q(private = False) | Q(groups__in=groups))) except MyUser.DoesNotExist: user = None latitude = MyUser._meta.get_field_by_name('latitude') longitude = MyUser._meta.get_field_by_name('longitude') lat = latitude[0].default lon = longitude[0].default invites = [] context['invites'] = invites context['center_lat'] = lat context['center_lon'] = lon time_threshold = datetime.now() - timedelta(days = 1) if search != None: form = SearchForm(request.POST) if form.is_valid(): query = form.cleaned_data['search_query'] try: user = MyUser.objects.get(username=username) try: tags_list = [Tag.objects.get(name = query)] except ObjectDoesNotExist: tags_list = [] events_list = NewEvent.objects.filter( (Q(name__icontains=query) | Q(location__icontains=query) | Q(tags__in=tags_list)), (Q(private = False) | Q(groups__in=groups))).order_by("startTime") except ObjectDoesNotExist: events_list = NewEvent.objects.filter( Q(name__icontains=query) | Q(location__icontains=query) | Q(tags__in=query)).order_by("startTime") show_list = True elif tags != None and len(tags) != 0: tags_list = [] groups_list = [] for tag in tags: try: tags_list += [Tag.objects.get(name = tag)] except ObjectDoesNotExist: try: groups_list += [MyGroup.objects.get(name=tag)] except ObjectDoesNotExist: continue events_list = NewEvent.objects.filter((reduce(operator.or_, [Q(tags__in=tags_list) | Q(groups__in =groups_list)])), (Q(private = False) | Q(groups__in=groups))) show_list = False elif personal_type != None: if personal_type == 'recommended': if user == None: events_list = NewEvent.objects.filter(Q(private = False) | Q(groups__in=groups)) else: try: friends_obj = Friends.objects.get(name = user) friends = friends_obj.friends.all() groups = MyGroup.objects.filter(users = user) if (len(friends) != 0 and len(groups) != 0): events_list = NewEvent.objects.filter(((reduce(operator.or_, (Q(rsvp=x) | Q(creator=x) for x in friends))) | (reduce(operator.or_, (Q(groups=x) for x in groups)))), (Q(private = False) | Q(groups__in=groups))) elif (len(friends) != 0): events_list = NewEvent.objects.filter((reduce(operator.or_, (Q(rsvp=x) | Q(creator=x) for x in friends))), (Q(private = False) | Q(groups__in=groups))) elif (len(groups) != 0): events_list = NewEvent.objects.filter((reduce(operator.or_, (Q(groups=x) for x in groups))), (Q(private = False) | Q(groups__in=groups))) except ObjectDoesNotExist: friends_obj = Friends() friends_obj.name = this_user friends_obj.save() if personal_type == 'my_events': if user == None: events_list = [] else: events_list = NewEvent.objects.filter(Q(creator = user) | Q(rsvp = user)) else: try: user = MyUser.objects.get(username=username) groups = MyGroup.objects.filter(users = user) events_list = NewEvent.objects.filter(Q(startTime__gt=time_threshold),(Q(private = False) | Q(groups__in=groups))).order_by("startTime") except ObjectDoesNotExist: events_list = NewEvent.objects.filter(Q(startTime__gt=time_threshold)).order_by("startTime") show_list = False if len(events_list) != 0: events_list = events_list.order_by("startTime").distinct() context['events_list'] = events_list tags = ['cos', '333', 'music', 'needs', 'database', 'integration'] cal_events = [] description = "" from_zone = tz.gettz('UTC') to_zone = tz.gettz('America/New_York') for e in events_list: # e.description="a" e.startTime.replace(tzinfo=from_zone) e.endTime.replace(tzinfo=from_zone) startTimeEDT = e.startTime.astimezone(to_zone) endTimeEDT = e.endTime.astimezone(to_zone) startTime = startTimeEDT.strftime("%s %s" % ("%Y-%m-%d", "%H:%M:%S")); if e.endTime != None: endTime = endTimeEDT.strftime("%s %s" % ("%Y-%m-%d", "%H:%M:%S")); read_only = True cal_events.append({'start_date': startTime, 'end_date': endTime, 'text': e.name, 'readonly': read_only}); context['cal_events'] = json.dumps(cal_events, cls=DjangoJSONEncoder); return render_to_response('frontend/list.html', context, context_instance=RequestContext(request))