Beispiel #1
0
    def post(self):
        user = users.get_current_user()
        email_address = user.nickname()
        schedify_user = SchedifyUser.query().filter(
            SchedifyUser.email == email_address).get()
        connections_template = the_jinja_env.get_template(
            'templates/connections.html')
        resolve_request = self.request.get('request_answer')
        if resolve_request == "Accept":
            requester_id = self.request.get('request_userid')
            requester_key = ndb.Key("SchedifyUser", int(requester_id))
            requester = requester_key.get()

            schedify_user.add_friend(requester_key)
            schedify_user.remove_request(requester_key)
            requester.add_friend(schedify_user.key)
        elif resolve_request == "Decline":
            requester_id = self.request.get('request_userid')
            requester_key = ndb.Key("SchedifyUser", int(requester_id))
            schedify_user.remove_request(requester_key)
        connections_data = {
            "friend_list": schedify_user.friends,
            "requestkey_list": schedify_user.requests
        }
        self.response.write(connections_template.render(connections_data))
Beispiel #2
0
    def post(self):
        # create new event?
        # look at the sign in if statement
        # grab the email adress through google users api then search
        #   for schedify through that email address
        newevent_template = the_jinja_env.get_template(
            'templates/newevent.html')

        user = users.get_current_user()
        email_address = user.nickname()
        schedify_user = SchedifyUser.query().filter(
            SchedifyUser.email == email_address).get()

        schedify_event = Event(owner=schedify_user.key,
                               title=self.request.get('event_title'),
                               summary=self.request.get('event_summary'),
                               exclusives=[],
                               attending=[],
                               not_attending=[])

        schedify_event.put()
        # Add later when you add the home page html and link it to this page
        #       You need to make sure you can call a user that is loged in
        #
        # schedify_attendance = Attendance (
        #      user =
        #      event = schedify_event,
        # )
        self.response.write(newevent_template.render())
Beispiel #3
0
    def post(self):
        event_template = the_jinja_env.get_template('templates/event.html')

        event_searched_id = self.request.get('event_searchid')
        # logging.log(Level.INFO, "event_searchid = " + event_searched_id)
        event_key = ndb.Key("Event", int(event_searched_id))
        event_searched = event_key.get()
        owner_instance = event_searched.owner.get()

        user = users.get_current_user()
        email_address = user.nickname()
        schedify_user = SchedifyUser.query().filter(
            SchedifyUser.email == email_address).get()

        event_data = {
            "event_instancekey": event_key,
            "event_title": event_searched.title,
            "user_instance": schedify_user,
            "owner_instance": owner_instance,
            "event_description": event_searched.summary,
            "attendingkey_list": event_searched.attending,
            "abesntkey_list": event_searched.not_attending,
        }

        self.response.write(event_template.render(event_data))
Beispiel #4
0
    def get(self):
        user = users.get_current_user()
        # If the user is logged in...
        if user:
            signout_link_html = '<a href="%s">sign out</a>' % (
                users.create_logout_url('/'))
            email_address = user.nickname()
            schedify_user = SchedifyUser.query().filter(
                SchedifyUser.email == email_address).get()
            # If the user is registered...
            if schedify_user:
                # Enter home page here:
                # Enter the page that the user sees after they have signed in
                # Greet them with their personal information

                # Home Handler
                user = users.get_current_user()
                email_address = user.nickname()
                email_list = email_address.split('@')
                email_start = email_list[0]

                signout_link = users.create_logout_url('/')

                home_data = {
                    "emailStart": email_start,
                    "sign_out": signout_link,
                    "first_name": schedify_user.first_name,
                    "last_name": schedify_user.last_name,
                    "friend_list": schedify_user.friends
                }
                home_template = the_jinja_env.get_template(
                    'templates/home.html')
                self.response.write(home_template.render(home_data))

                #  Coding to know
                # self.response.write('''
                #     ENTER HOME PAGE TEMPLATE HERE! <br>Welcome %s %s (%s)! <br> %s <br>''' % (
                #       schedify_user.first_name,
                #       schedify_user.last_name,
                #       email_address,
                #       signout_link_html))
            # If the user isn't registered...
            else:
                # Offer a registration form for a first-time visitor:
                sign_up_template = the_jinja_env.get_template(
                    'templates/sign-up.html')
                signout_link = users.create_logout_url('/')
                sign_up_data = {"sign_out": signout_link}
                self.response.write(sign_up_template.render(sign_up_data))
        else:
            # If the user isn't logged in...
            landing_template = the_jinja_env.get_template(
                'templates/landing.html')
            login_url = users.create_login_url('/')
            landing_data = {
                "login": login_url,
            }
            # Prompt the user to sign in.
            self.response.write(landing_template.render(landing_data))
Beispiel #5
0
    def get(self):
        user = users.get_current_user()
        email_address = user.nickname()
        schedify_user = SchedifyUser.query().filter(
            SchedifyUser.email == email_address).get()
        connections_template = the_jinja_env.get_template(
            'templates/connections.html')
        search_username = self.request.get('username_search')
        searches = SchedifyUser.query().filter(
            SchedifyUser.username == search_username).fetch()

        connections_data = {
            "friend_list": schedify_user.friends,
            "requestkey_list": schedify_user.requests,
            "search_list": searches
        }
        self.response.write(connections_template.render(connections_data))
Beispiel #6
0
    def post(self):
        profile_template = the_jinja_env.get_template('templates/profile.html')
        user = users.get_current_user()
        email_address = user.nickname()
        schedify_user = SchedifyUser.query().filter(
            SchedifyUser.email == email_address).get()

        # there should only be one username per account
        username_id = self.request.get('username_searchid')
        username_key = ndb.Key("SchedifyUser", int(username_id))
        user_search = username_key.get()

        # checks to see if user is passing in their own Account
        if user_search == schedify_user:
            account_status = "self"
            friend_status = None
            request_status = None
            user_key = None
        else:
            account_status = "other"
            friend_status = self.request.get('friend_status')
            request_status = False

            # if button to add/remove friend was cliked launch this code
            if (friend_status == "add friend"):
                request_status = True
                user_search.add_request(schedify_user.key)
            elif (friend_status == "remove friend"):
                schedify_user.remove_friend(user_search.key)
                user_search.remove_friend(schedify_user.key)
                request_status = False
            elif (friend_status == "request"):
                user_search.remove_request(schedify_user.key)
                request_status = False

            # checks if profile is part of friends group
            friend_status = False

            for friend_key in schedify_user.friends:
                if friend_key == user_search.key:
                    friend_status = True

            # check if you requested a connections
            for request_key in user_search.requests:
                if request_key == schedify_user.key:
                    request_status = True

        profile_data = {
            "user_instance": user_search,
            "friend_status": friend_status,
            "request_status": request_status,
            "account": account_status,
            "search_id": username_id,
        }
        self.response.write(profile_template.render(profile_data))
Beispiel #7
0
 def get(self):
     user = users.get_current_user()
     if user:
         email_address = user.nickname()
         schedify_user = SchedifyUser.query().filter(
             SchedifyUser.email == email_address).get()
         if schedify_user:
             newevent_template = the_jinja_env.get_template(
                 'templates/newevent.html')
             self.response.write(newevent_template.render())
             return
     self.error(403)
     return
Beispiel #8
0
    def get(self):
        profile_template = the_jinja_env.get_template('templates/profile.html')
        user = users.get_current_user()
        email_address = user.nickname()
        schedify_user = SchedifyUser.query().filter(
            SchedifyUser.email == email_address).get()

        logout_url = users.create_logout_url('/')

        profile_data = {
            "user_instance": schedify_user,
            "account": "self",
            "sign_out": logout_url
        }
        self.response.write(profile_template.render(profile_data))
Beispiel #9
0
    def get(self):
        user = users.get_current_user()
        email_address = user.nickname()
        schedify_user = SchedifyUser.query().filter(
            SchedifyUser.email == email_address).get()

        delete_response = self.request.get('delete_user')
        if delete_response == "Delete user":
            schedify_user.key.delete()

        delete_data = {
            "user": schedify_user,
        }

        logout_template = the_jinja_env.get_template('templates/log-out.html')
        self.response.write(logout_template.render(delete_data))
Beispiel #10
0
    def get(self):
        welcome_template = the_jinja_env.get_template(
            'templates/schedule.html')
        user = users.get_current_user()
        email_address = user.nickname()
        email_list = email_address.split('@')
        email_start = email_list[0]
        schedify_user = SchedifyUser.query().filter(
            SchedifyUser.email == email_address).get()

        welcome_data = {
            "emailStart": email_start,
            "friend_list": schedify_user.friends,
            "friendIndex": 0,
            "friendEmailStart": None
        }
        self.response.write(welcome_template.render(welcome_data))
Beispiel #11
0
    def post(self):
        #  user info
        user = users.get_current_user()
        email_address = user.nickname()
        schedify_user = SchedifyUser.query().filter(
            SchedifyUser.email == email_address).get()

        event_ownership = self.request.get('event-type')

        # event info
        attendance_value = "none"
        response = self.request.get('attendance')

        if event_ownership == "self":
            event_list = Event.query(Event.owner == schedify_user.key).fetch()
        elif event_ownership == "friends":
            friends_key_list = schedify_user.friends
            event_list = []
            for friend_key in friends_key_list:
                events = Event.query(Event.owner == friend_key).fetch()
                event_list.extend(events)
        else:
            friends_key_list = schedify_user.friends
            users_key = [schedify_user.key]
            users_key.extend(friends_key_list)

            event_list = []
            for user_key in users_key:
                events = Event.query(Event.owner == user_key).fetch()
                event_list.extend(events)

        # checks to see which button was pressed
        if response == "Attending":
            #  event information
            event_searched_id = self.request.get('event_searchid')
            event_key = ndb.Key("Event", int(event_searched_id))
            event_searched = event_key.get()

            event_searched.add_attending(schedify_user.key)
        elif response == "Will not attend":
            #  event information
            event_searched_id = self.request.get('event_searchid')
            event_key = ndb.Key("Event", int(event_searched_id))
            event_searched = event_key.get()

            event_searched.add_not_attending(schedify_user.key)
        elif response == "Will no longer attend":
            #  event information
            event_searched_id = self.request.get('event_searchid')
            event_key = ndb.Key("Event", int(event_searched_id))
            event_searched = event_key.get()

            event_searched.add_not_attending(schedify_user.key)
            event_searched.remove_attending(schedify_user.key)
        elif response == "Will be attending":
            #  event information
            event_searched_id = self.request.get('event_searchid')
            event_key = ndb.Key("Event", int(event_searched_id))
            event_searched = event_key.get()

            event_searched.add_attending(schedify_user.key)
            event_searched.remove_not_attending(schedify_user.key)

        # creates a list is user is attending or not
        user_attending_status = []
        for event in event_list:
            user_status = "neither"
            atendees_key_list = event.attending
            absentee_key_list = event.not_attending
            logging.log(logging.INFO, "atendee: " + str(atendees_key_list))
            logging.log(logging.INFO, "absentee: " + str(absentee_key_list))

            for atendee_key in atendees_key_list:
                if atendee_key == schedify_user.key:
                    user_status = "yes"
                    break

            for absentee_key in absentee_key_list:
                if absentee_key == schedify_user.key:
                    user_status = "no"
                    break

            user_attending_status.append(user_status)

        event_template = the_jinja_env.get_template(
            'templates/event-feed.html')

        event_data = {
            "event_info": event_list,
            "answer": attendance_value,
            "user_key": schedify_user.key,
            "attending_list": user_attending_status
        }
        self.response.write(event_template.render(event_data))
Beispiel #12
0
    def get(self):

        # if somebody deleted an event...
        delete_response = self.request.get('delete_event')
        if delete_response == "Delete event":
            event_id = self.request.get('event_id')
            event_key = ndb.Key("Event", int(event_id))
            event_info = event_key.get()
            event_info.key.delete()

        user = users.get_current_user()
        email_address = user.nickname()
        schedify_user = SchedifyUser.query().filter(
            SchedifyUser.email == email_address).get()

        # attending variables
        attendance_value = "none"
        response = self.request.get('event-type')

        user = users.get_current_user()
        email_address = user.nickname()
        schedify_user = SchedifyUser.query().filter(
            SchedifyUser.email == email_address).get()

        event_ownership = self.request.get('attendance')

        friends_key_list = schedify_user.friends
        users_key = [schedify_user.key]
        users_key.extend(friends_key_list)

        event_list = []
        for user_key in users_key:
            events = Event.query(Event.owner == user_key).fetch()
            event_list.extend(events)

        event_template = the_jinja_env.get_template(
            'templates/event-feed.html')

        # creates a list is user is attending or not
        user_attending_status = []
        for event in event_list:
            user_status = "neither"
            atendees_key_list = event.attending
            absentee_key_list = event.not_attending
            logging.log(logging.INFO, "atendee: " + str(atendees_key_list))
            logging.log(logging.INFO, "absentee: " + str(absentee_key_list))

            for atendee_key in atendees_key_list:
                if atendee_key == schedify_user.key:
                    user_status = "yes"
                    break

            for absentee_key in absentee_key_list:
                if absentee_key == schedify_user.key:
                    user_status = "no"
                    break

            user_attending_status.append(user_status)

        logging.log(logging.INFO, user_attending_status)

        if response == "Attending":
            event_searched.add_attending(schedify_user.key)
            attendance_value == "yes"
        elif response == "Will not attend":
            event_searched.add_not_attending(schedify_user.key)
            attendance_value == "no"
        elif response == "Will no longer attend":
            event_searched.add_not_attending(schedify_user.key)
            event_searched.remove_attending(schedify_user.key)
            attendance_value == "no"
        elif response == "Will be attending":
            event_searched.add_attending(schedify_user.key)
            event_searched.remove_not_attending(schedify_user.key)
            attendance_value == "yes"

        event_data = {
            "event_info": event_list,
            "answer": attendance_value,
            "user_key": schedify_user.key,
            "attending_list": user_attending_status
        }
        self.response.write(event_template.render(event_data))