コード例 #1
0
def createCode(request, roomid):
    newRoom = Room(code=roomid)
    if isExists(roomid):
        return HttpResponse("Error: Room exists")
    else:
        newRoom.save()
        return HttpResponse("Room created")
コード例 #2
0
def _save_room(cd):
    room = Room()
    room.id = cd['id'] or None
    room.number = cd['number']
    room.description = cd['description']
    room.syndic = cd['syndic']
    room.save()
    return room
コード例 #3
0
 def test_name(self):
     k = Room.objects.filter(name__startswith='Blue')
     self.assertEqual(k.count(), 1)
     p = Room(name='Magenta', capacity=1)
     p.save()
     self.assertEqual(Room.objects.count(), 4)
     p.delete()
     self.assertEqual(Room.objects.count(), 3)
コード例 #4
0
 def test_description(self):
     k = Room.objects.filter(description__contains='Nice')
     self.assertEqual(k.count(), 1)
     p = Room(name='a', capacity=1, description='Not nice')
     p.save()
     self.assertEqual(Room.objects.count(), 4)
     p.delete()
     self.assertEqual(Room.objects.count(), 3)
コード例 #5
0
ファイル: manager.py プロジェクト: zuma710/g4_prototype
 def register(self, password):
     room = Room()
     room.password = password
     try:
         room.save()
     except:
         return None, False
     return room.id, True
コード例 #6
0
ファイル: views.old.py プロジェクト: JanetGuo/lupalo
def handlefbrequestcallback(request):
    fp = open( 'tmp.3.log', 'w' ) 
    print >> fp, request
    request_str   = ( request.GET.get('request') )
    request_to    = ( request.GET.get('to') )
    #request_from  = ( request.GET.get('from') )
    request_id    = ( request.GET.get('id') )
    request_from  = request.session['fb_id']
 
    #if request_to:
    #   request_to = int(request_to.encode('ascii'))

    #if request_from:
    #   request_from = int(request_from.encode('ascii'))

    #if request_id:
    #   request_id = int(request_id.encode('ascii'))

    print >> fp, "request id", request_id
    print >> fp, "request string", request_str
    print >> fp, "request to", request_to
    print >> fp, "request from", request_from
    print >> fp, "request fb id", request.session['fb_id']

    try:
    	m_to   = Member.objects.get(fb_id=request_to)
    except: 
	# need to make member    	
        m_to   = Member(fb_id=request_to)
  
    try: 
        m_from = Member.objects.get(fb_id=request_from)
    except:
	# need to make member    	
        m_from = Member(fb_id=request_from)

    # name is set
    gamename = "%s_%s_%s" % ( request_from, request_to, time.asctime(time.gmtime()) ) 
    r = Room(name=gamename)
    r.fb_request_id = request_id
    r.save()

    g = Game(room=r)
    # game name and room name duplicated 
    g.name = gamename
    g.save()

    p = Player(game=g,turn=0)
    p.member = m_from
    p.save()

    # TODO assumes two player game - generalize
    p = Player(game=g,turn=1)
    p.member = m_to
    p.save()

    #return HttpResponseRedirect('requestpage.html')
    return HttpResponseRedirect( reverse('lupalo.views.lupalo') ) # Redirect after POST
コード例 #7
0
ファイル: views.py プロジェクト: jaceyen/vocmon
def createRoom(request):
	if request.method == "POST":
		req = json.loads(request.body)
		master = Trainer.objects.get(name=req['trainer'])
		new_room = Room(master=master)
		new_room.save()
		response_data = {}
		response_data['msg'] = 'success'
		response_data['channel'] = new_room.id
		return HttpResponse(json.dumps(response_data), content_type="application/json")
コード例 #8
0
ファイル: views.py プロジェクト: sreedharbadri/django1
def create_room(request):
    if request.method == "POST":
        form = RoomModelForm(request.POST)
        if form.is_valid():
            data = form.cleaned_data
            room_inst = Room(**data)
            room_inst.save()

    form = RoomModelForm()
    return render(request, "app1/create_room.html", {"form": form})
コード例 #9
0
ファイル: views.py プロジェクト: robgolding/mydebate
def create_room(request, extra_context={}):
	"""
	View for creating a room. Uses a clever combination of PollForm, RoomForm and ChoiceFormSet to achieve
	3-way model creation:
		- PollForm allows the user to specify the question
		- ChoiceFormSet allows the user to specify an arbitrary number of "choices" to go with the question
			(each one represented by its own DB object)
		- RoomForm gives more advanced "tweaks" for the room, for example:
			- period length (how long each period lasts, default is 30)
			- join threshold (the amount of time that a room is in lock mode before a poll begins)
	"""
	if request.method == "POST":
		# if the user has submitted the form, get the data from all three
		poll_form = PollForm(request.POST, request.FILES)
		choice_formset = ChoiceFormSet(request.POST, request.FILES)
		room_form = RoomForm(request.POST, request.FILES)
		
		if poll_form.is_valid() and choice_formset.is_valid() and room_form.is_valid():
			# if all 3 forms are valid, create a new question object and save it
			q = Question(text=poll_form.cleaned_data['question'])
			q.save()
			
			# create a new poll object that points to the question, and save it
			p = Poll(question=q)
			p.save()
			
			# for every choice the user has inputted
			for form in choice_formset.forms:
				# create a new choice object, and point it at the question created earlier
				c = Choice(question=q, text=form.cleaned_data['choice'])
				c.save()
			
			# finally, create the room itself, pointing to the question object, with the creator of the
			# currently logged in user, and the period length & join threshold as specified in the form
			# data.
			r = Room(question=q, opened_by=request.user, controller=request.user,
				period_length=room_form.cleaned_data['period_length'],
				join_threshold=room_form.cleaned_data['join_threshold'])
			r.save()
			
			# redirect the user to their newly created room
			return HttpResponseRedirect(r.get_absolute_url())
	else:
		# if the user has not submitted the form (i.e. wishes to fill the form in)
		# then initialise the 3 forms with no data
		poll_form = PollForm()
		choice_formset = ChoiceFormSet()
		room_form = RoomForm()
	
	# put the forms into a context dictionary (and update that with any extra context we have been given)
	data = {'poll_form': poll_form, 'choice_formset': choice_formset, 'room_form': room_form}
	data.update(extra_context)
	
	# render the page
	return render_to_response('rooms/room_form.html', data, context_instance=RequestContext(request))
コード例 #10
0
ファイル: views.py プロジェクト: CSC301H-Fall2013/JuakStore
def submitRoom(request):
    if request.method == "POST":
        f = RoomForm(request.POST)
        if f.is_valid():
            newRoom = Room(name=request.POST['name'], info=request.POST['info'])
            newRoom.save()
            return HttpResponseRedirect(reverse('juakstore:roomDetail', args=(newRoom.id,)))
        else:
            return render(request, 'juakstore/room_add.html', {'form' : f})
    else:
        return HttpResponseRedirect(reverse('juakstore:roomCreate'))
コード例 #11
0
ファイル: views.py プロジェクト: cliffmeyer/lupalo
def makerobogame(request):
  
    fb_id = ROBOT1
    request.session['fb_id'] = fb_id
 
    # make robot player 1
    try:
        m_from = Member.objects.get( fb_id=ROBOT1 )
    except Member.DoesNotExist:
        m_from   = Member(fb_id=ROBOT1)
        m_from.user_name     =  'Robo1'
        m_from.fb_first_name =  'Robo1'
        m_from.fb_last_name  =  'Robo1'
        m_from.save()
    # make robot player 2
    try:
        m_to = Member.objects.get( fb_id=ROBOT2 )
    except Member.DoesNotExist:
        m_to   = Member(fb_id=ROBOT2)
        m_to.user_name     =  'Robo2'
        m_to.fb_first_name =  'Robo2'
        m_to.fb_last_name  =  'Robo2'
        m_to.save()

    # name is set
    request_from = 'Robo1'
    request_to   = 'Robo2'
    gamename = "%s_%s_%s" % ( request_from, request_to, time.asctime(time.gmtime()) ) 
    r = Room(name=gamename)
    r.fb_request_id = ROBOREQUEST
    r.save()

    g = Game(room=r)
    # game name and room name duplicated 
    g.name = gamename
    g.save()

    p = Player(member=m_from)  # player in game, link to member 
    p.game=g		       # game 
    p.turn=0                   # static order of player in game
    p.save()

    request.session['player_id'] = p.turn

    # TODO assumes two player game - generalize
    p = Player( member = m_to )
    p.game=g
    p.turn=1
    p.save()

    return HttpResponse( simplejson.dumps( { "gamename": gamename } ), mimetype='application/javascript' )
コード例 #12
0
def optionnal_room(sender, **kwargs):
    reservation = kwargs.pop('instance')

    if not isinstance(reservation, Reservation):
        return True
    if not reservation.room:
        try:
            room = Room._default_manager.get(name='default')
        except Room.DoesNotExist:
            room = Room(name='default', slug='default')
            room.save()

        reservation.room = room
    return True
コード例 #13
0
def optionnal_room(sender, **kwargs):
    reservation = kwargs.pop('instance')
        
    if not isinstance(reservation, Reservation):
        return True
    if not reservation.room:
        try:
            room = Room._default_manager.get(name='default')
        except Room.DoesNotExist:
            room = Room(name='default', slug='default')
            room.save()

        reservation.room = room
    return True
コード例 #14
0
def assign_room(request):
    if request.POST:
        user = request.POST['user']
        rn = request.POST['rno']
        sd = request.POST['sd']
        ed = request.POST['ed']
        r = Room(user_id=user,
                 r_id=uuid.uuid4(),
                 room_no=rn,
                 start_date=sd,
                 end_date=ed,
                 available=False)
        r.save()
        return render_to_response('roomcreatesuccess.html')
コード例 #15
0
    def test_get_messages(self, *args, **kwargs):
        username, password = self.username, self.userpwd

        # login user
        client = Client()
        client.login(username=username, password=password)

        # creates a room
        room = Room()
        room.save()

        # message queue empty: check last_message_id
        response = client.get('/chat/get_latest_msg_id/?room_id=%d' % room.id)
        json_response = json.loads(response.content)
        last_msg_id = json_response['id']
        self.assertEquals(last_msg_id, -1)

        # posts a message
        post_response = client.post('/chat/send_message/', {
            'room_id': room.pk,
            'message': 'ABCD'
        },
                                    HTTP_X_REQUESTED_WITH='XMLHttpRequest')
        self.assertEquals(post_response.status_code, 200)
        json_response = json.loads(post_response.content)
        timestamp = json_response['timestamp']

        # gets list of messages
        response = client.get(
            '/chat/get_messages/?room_id=%d&latest_message_id=%d' %
            (room.id, last_msg_id),
            HTTP_X_REQUESTED_WITH='XMLHttpRequest')
        self.assertEquals(response.status_code, 200)
        json_response = json.loads(response.content)

        expected_json = [{
            u'message_id': 1,
            u'username': u'john',
            u'date': timestamp,
            u'content': u'ABCD',
        }]
        self.assertEquals(expected_json, json_response)

        # check last_message_id
        response = client.get('/chat/get_latest_msg_id/?room_id=%d' % room.id)
        json_response = json.loads(response.content)
        last_msg_id = json_response['id']
        self.assertEquals(last_msg_id, 1)
コード例 #16
0
ファイル: allPythonContent.py プロジェクト: Mondego/pyreco
    def test_get_messages(self, *args, **kwargs):
        username, password = self.username, self.userpwd

        # login user
        client = Client()
        client.login(username=username, password=password)

        # creates a room
        room = Room()
        room.save()

        # message queue empty: check last_message_id
        response = client.get('/chat/get_latest_msg_id/?room_id=%d' % room.id)
        json_response = json.loads(response.content)
        last_msg_id = json_response['id']
        self.assertEquals(last_msg_id, -1)

        # posts a message
        post_response = client.post('/chat/send_message/',
                                {'room_id': room.pk,
                                 'message': 'ABCD'},
                HTTP_X_REQUESTED_WITH='XMLHttpRequest')
        self.assertEquals(post_response.status_code, 200)
        json_response = json.loads(post_response.content)
        timestamp = json_response['timestamp']

        # gets list of messages
        response = client.get(
            '/chat/get_messages/?room_id=%d&latest_message_id=%d' % (
                                                room.id, last_msg_id),
                HTTP_X_REQUESTED_WITH='XMLHttpRequest')
        self.assertEquals(response.status_code, 200)
        json_response = json.loads(response.content)

        expected_json = [{u'message_id': 1,
                          u'username': u'john',
                          u'date': timestamp,
                          u'content': u'ABCD', }]
        self.assertEquals(expected_json, json_response)

        # check last_message_id
        response = client.get('/chat/get_latest_msg_id/?room_id=%d' % room.id)
        json_response = json.loads(response.content)
        last_msg_id = json_response['id']
        self.assertEquals(last_msg_id, 1)
コード例 #17
0
ファイル: allPythonContent.py プロジェクト: Mondego/pyreco
    def test_anonymous_access(self):
        anon_room = Room(
                        allow_anonymous_access=True,
                        name="Anonymous Room",
                        slug="anonymous-room")
        login_req_room = Room(
                        allow_anonymous_access=False,
                        name="Login required room",
                        slug="login-required-room")
        anon_room.save()
        login_req_room.save()

        client = Client()

        response = client.get(login_req_room.get_absolute_url())
        # a login view may not have been implemented, so assertRedirects fails
        self.assertEquals(response.status_code, 302)
        url = response['Location']
        expected_url = get_login_url(login_req_room.get_absolute_url())
        e_scheme, e_netloc, e_path, e_query, e_fragment = urlparse.urlsplit(
                                                                expected_url)
        if not (e_scheme or e_netloc):
            expected_url = urlparse.urlunsplit(('http', 'testserver', e_path,
                e_query, e_fragment))
        self.assertEquals(url, expected_url)

        response = client.get(
            anon_room.get_absolute_url(),
            follow=True)

        # assert redirect
        self.assertRedirects(
            response,
            'http://testserver/chat/setguestname/?room_slug=anonymous-room')

        # post guestname
        guestname_posted = client.post(
            response.redirect_chain[0][0],
            {'guest_name': 'guest',
             'room_slug': 'anonymous-room'},
            follow=True)
        self.assertRedirects(
            guestname_posted,
            anon_room.get_absolute_url()
        )
コード例 #18
0
def room_new():
    room = Room()
    if request.method == 'POST':
        form = RoomForm(request.form, obj=room)
        if form.validate():
            try:
                form.populate_obj(room)
                validate_room(room)
                room.save()
                flash('Yes, quarto cadastrado com sucesso.', 'success')
                return redirect(url_for('rooms.room_index'))
            except IntegrityError:
                flash('Oops, este quarto já foi cadastrado.', 'warning')
            except AttributeError as e:
                flash(str(e), 'warning')
    else:
        form = RoomForm(obj=room)
    return render_template('rooms/new.html', form=form)
コード例 #19
0
def add_room(room):
    decks = []
    current_numbers = []
    for deckname in room['decks']:
        deck = Deck.objects(Q(name=deckname)).first()
        cards = deck.cards
        random.shuffle(cards)
        if len(cards) > 1:
            decks.append(cards)
        else:
            l = []
            l.append(cards)
            decks.append(l)
        current_numbers.append(0)
    time = datetime.datetime.utcnow
    new_room = Room(name=room['id'],
                    decks=decks,
                    current_numbers=current_numbers,
                    last_update=time)
    new_room.save()
    log.info('Created game room with id: ' + str(new_room['id']))
    delete_old_rooms()
コード例 #20
0
ファイル: views.old.py プロジェクト: JanetGuo/lupalo
def reset(request):

    Room.objects.all().delete()
    r = Room(name='testroom')
    r.save()
 
    Game.objects.all().delete()
    g = Game(name='testgame',room=r)
    g.save()
    
    Player.objects.all().delete()
    p = Player.objects.all()
    print "Total number of players: %d" % len(p) 
  
    Member.objects.all().delete()

    print "Hello"
    m = Member(user_name='Cliff')
    m.save()
    m = Member(user_name='Eve')
    m.save()
    return HttpResponseRedirect( reverse('lupalo.views.login') ) # Redirect after POST
コード例 #21
0
    def test_anonymous_access(self):
        anon_room = Room(allow_anonymous_access=True,
                         name="Anonymous Room",
                         slug="anonymous-room")
        login_req_room = Room(allow_anonymous_access=False,
                              name="Login required room",
                              slug="login-required-room")
        anon_room.save()
        login_req_room.save()

        client = Client()

        response = client.get(login_req_room.get_absolute_url())
        # a login view may not have been implemented, so assertRedirects fails
        self.assertEquals(response.status_code, 302)
        url = response['Location']
        expected_url = get_login_url(login_req_room.get_absolute_url())
        e_scheme, e_netloc, e_path, e_query, e_fragment = urlparse.urlsplit(
            expected_url)
        if not (e_scheme or e_netloc):
            expected_url = urlparse.urlunsplit(
                ('http', 'testserver', e_path, e_query, e_fragment))
        self.assertEquals(url, expected_url)

        response = client.get(anon_room.get_absolute_url(), follow=True)

        # assert redirect
        self.assertRedirects(
            response,
            'http://testserver/chat/setguestname/?room_slug=anonymous-room')

        # post guestname
        guestname_posted = client.post(response.redirect_chain[0][0], {
            'guest_name': 'guest',
            'room_slug': 'anonymous-room'
        },
                                       follow=True)
        self.assertRedirects(guestname_posted, anon_room.get_absolute_url())
コード例 #22
0
    def test_chatview_attributes(self):
        """Asserts new items are added to ChatView instance
        when a new room is created, and these items are removed
        when a room is deleted

        """
        new_room = Room(name="New room", slug="new-room")
        new_room.save()
        chatview = ChatView()
        self.assertIn(new_room.id, chatview.new_message_events)
        self.assertIn(new_room.id, chatview.messages)
        self.assertIn(new_room.id, chatview.connected_users)
        self.assertIn(new_room.id, chatview.counters)
        self.assertIn(new_room.id, chatview.new_connected_user_event)

        # works without a post_delete handler: somewhere the Django models
        #  collector gets rid of these items (awkward, not documented feat)
        new_room.delete()
        self.assertNotIn(new_room.id, chatview.new_message_events)
        self.assertNotIn(new_room.id, chatview.messages)
        self.assertNotIn(new_room.id, chatview.connected_users)
        self.assertNotIn(new_room.id, chatview.counters)
        self.assertNotIn(new_room.id, chatview.new_connected_user_event)
コード例 #23
0
ファイル: views.py プロジェクト: vesellov/bitdust.devel
def open_room(request):
    roomid = request.REQUEST.get('id', '')
    idurl = request.REQUEST.get('idurl', '')
    name = request.REQUEST.get('name', contactsdb.get_correspondent_nickname(idurl))

    if roomid:
        try:
            roomid = int(roomid)
        except:
            lg.exc()
            return Http404('incorrect Room ID')
        try:
            ThisRoom = get_object_or_404(Room, id=roomid)
        except:
            ThisRoom = Room(id=roomid,
                            idurl=idurl,
                            name=name)
            ThisRoom.save()
            # myname = settings.getNickName() or my_id.getIDName()
            RoomMember.objects.create_member(idurl=my_id.getLocalID(),
                                             # name=nameurl.GetName(my_id.getLocalID()),
                                             room=ThisRoom)
        return HttpResponseRedirect('/chat/room/%d' % ThisRoom.id)

    if idurl:
        try:
            ThisRoom = get_object_or_404(Room, idurl=idurl)
        except:
            ThisRoom = Room(idurl=idurl,
                            name=name)
            ThisRoom.save()
            RoomMember.objects.create_member(idurl=my_id.getLocalID(),
                                             # name=nameurl.GetName(my_id.getLocalID()),
                                             room=ThisRoom)
        return HttpResponseRedirect('/chat/room/%d' % ThisRoom.id)

    return Http404('need to provide a room info')
コード例 #24
0
def create(request):
    import random
    alpha = (
        "A",
        "B",
        "C",
        "D",
        "E",
        "F",
        "G",
        "H",
        "I",
        "J",
        "K",
        "L",
        "M",
        "N",
        "O",
        "P",
        "Q",
        "R",
        "S",
        "T",
        "U",
        "V",
        "W",
        "X",
        "Y",
        "Z",
    )
    code = ''.join([random.choice(alpha) for _ in range(4)])
    while isExists(code):
        code = ''.join([random.choice(alpha) for _ in range(4)])

    newRoom = Room(code=code)
    newRoom.save()
    return HttpResponse("Creating room. Code " + code)
コード例 #25
0
ファイル: views.py プロジェクト: hack-bitdust/devel
def open_room(request):
    roomid = request.REQUEST.get('id', '')
    idurl = request.REQUEST.get('idurl', '')
    name = request.REQUEST.get('name',
                               contactsdb.get_correspondent_nickname(idurl))

    if roomid:
        try:
            roomid = int(roomid)
        except:
            lg.exc()
            raise Http404('incorrect Room ID')
        try:
            ThisRoom = get_object_or_404(Room, id=roomid)
        except:
            ThisRoom = Room(id=roomid, idurl=idurl, name=name)
            ThisRoom.save()
            # myname = settings.getNickName() or my_id.getIDName()
            RoomMember.objects.create_member(
                idurl=my_id.getLocalID(),
                # name=nameurl.GetName(my_id.getLocalID()),
                room=ThisRoom)
        return HttpResponseRedirect('/chat/room/%d' % ThisRoom.id)

    if idurl:
        try:
            ThisRoom = get_object_or_404(Room, idurl=idurl)
        except:
            ThisRoom = Room(idurl=idurl, name=name)
            ThisRoom.save()
            RoomMember.objects.create_member(
                idurl=my_id.getLocalID(),
                # name=nameurl.GetName(my_id.getLocalID()),
                room=ThisRoom)
        return HttpResponseRedirect('/chat/room/%d' % ThisRoom.id)

    raise Http404('need to provide a room info')
コード例 #26
0
ファイル: allPythonContent.py プロジェクト: Mondego/pyreco
    def test_chatview_attributes(self):
        """Asserts new items are added to ChatView instance
        when a new room is created, and these items are removed
        when a room is deleted

        """
        new_room = Room(name="New room",
                        slug="new-room")
        new_room.save()
        chatview = ChatView()
        self.assertIn(new_room.id, chatview.new_message_events)
        self.assertIn(new_room.id, chatview.messages)
        self.assertIn(new_room.id, chatview.connected_users)
        self.assertIn(new_room.id, chatview.counters)
        self.assertIn(new_room.id, chatview.new_connected_user_event)

        # works without a post_delete handler: somewhere the Django models
        #  collector gets rid of these items (awkward, not documented feat)
        new_room.delete()
        self.assertNotIn(new_room.id, chatview.new_message_events)
        self.assertNotIn(new_room.id, chatview.messages)
        self.assertNotIn(new_room.id, chatview.connected_users)
        self.assertNotIn(new_room.id, chatview.counters)
        self.assertNotIn(new_room.id, chatview.new_connected_user_event)
コード例 #27
0
ファイル: task_4.py プロジェクト: LatropAgency/LeverX
    rooms = {}
    students = {}
    parser = argparse.ArgumentParser()
    parser.add_argument('students', type=str)
    parser.add_argument('rooms', type=str)
    parser.add_argument('serializer', type=str, help='Serializer type')
    parser.add_argument('host', type=str, help='Database host')
    parser.add_argument('user', type=str, help='Username')
    parser.add_argument('password', type=str, help='User Password')
    args = parser.parse_args()
    config = {
        'host': args.host,
        'user': args.user,
        'password': args.password,
    }
    Room.serializer = serializer_type[args.serializer]()
    rooms = read_objects(args.rooms, Room)
    students = read_objects(args.students, Student)
    join(rooms, students)
    Room.save(rooms.values())
    with mysql.connector.connect(**config) as connection:
        rooms_dao = RoomDAO(connection)
        students_dao = StudentDAO(connection)
        rooms_dao.insert(rooms)
        students_dao.insert(students)
        print(rooms_dao.rooms_list_with_student_count())
        print(rooms_dao.top_5_rooms_with_min_avg_age_of_students())
        print(rooms_dao.top_5_rooms_with_max_students_age_diff())
        print(rooms_dao.rooms_with_males_and_females())
        students_dao.create_index()
コード例 #28
0
ファイル: views.py プロジェクト: cliffmeyer/lupalo
def handlefbrequestcallback(request):
    fp = open( 'tmp.3.log', 'w' ) 
    print >> fp, request
    request_str   = ( request.GET.get('request') )
    request_to    = ( request.GET.get('to') )
    request_id    = ( request.GET.get('id') )
    request_from  = request.session['fb_id']

    print >> fp, "request id",     request_id
    print >> fp, "request string", request_str
    print >> fp, "request to",     request_to
    print >> fp, "request from",   request_from
    print >> fp, "request fb id",  request.session['fb_id']

    instance = UserSocialAuth.objects.filter(provider='facebook',user=request.user.id).order_by('-id')[0]
    graph   = facebook.GraphAPI(instance.tokens["access_token"])

    try:
        profile = graph.get_object("me")
    except:
        logout(request)
        return HttpResponseRedirect( reverse('lupalo.views.lupalo') ) # Redirect after POST

    try:
    	m_to   = Member.objects.get(fb_id=request_to)
    except: 
	# need to make member    	
        m_to   = Member(fb_id=request_to)

        # play against robot
        if request_to == 'auto':
            m_to.fb_first_name = 'auto'
            m_to.fb_last_name  = 'auto'
	else: 
            profile = graph.get_object( str(request_to) )
            m_to.fb_first_name = profile['first_name']
            m_to.fb_last_name  = profile['last_name']
        m_to.save()

    if m_to.fb_first_name == None or m_to.fb_last_name == None:
        profile = graph.get_object( str(request_to) )
        m_to.fb_first_name = profile['first_name']
        m_to.fb_last_name  = profile['last_name']
        m_to.save()
  
    try: 
        m_from = Member.objects.get(fb_id=request_from)
    except:
	# need to make member    	
        m_from = Member(fb_id=request_from)
        profile = graph.get_object( str(request_from) )
        m_from.fb_first_name = profile['first_name']
        m_from.fb_last_name  = profile['last_name']
        m_from.save() 

    if m_from.fb_first_name == None or m_from.fb_last_name == None:
        profile = graph.get_object( str(request_from) )
        m_from.fb_first_name = profile['first_name']
        m_from.fb_last_name  = profile['last_name']
        m_from.save()

    # name is set
    gamename = "%s_%s_%s" % ( request_from, request_to, time.asctime(time.gmtime()) ) 
    print >> fp, "gamename", gamename
    r = Room(name=gamename)
    r.fb_request_id = request_id
    r.save()

    g = Game(room=r)
    # game name and room name duplicated 
    g.name = gamename
    g.save()

    p = Player(member=m_from)
    p.game=g
    p.turn=0
    p.save()

    # TODO assumes two player game - generalize
    p = Player( member = m_to )
    p.game=g
    p.turn=1
    p.save()

    #return HttpResponseRedirect('requestpage.html')
    return HttpResponseRedirect( reverse('lupalo.views.lupalo') ) # Redirect after POST
コード例 #29
0
ファイル: views.py プロジェクト: robgolding/mydebate
def create_room(request, extra_context={}):
    """
	View for creating a room. Uses a clever combination of PollForm, RoomForm and ChoiceFormSet to achieve
	3-way model creation:
		- PollForm allows the user to specify the question
		- ChoiceFormSet allows the user to specify an arbitrary number of "choices" to go with the question
			(each one represented by its own DB object)
		- RoomForm gives more advanced "tweaks" for the room, for example:
			- period length (how long each period lasts, default is 30)
			- join threshold (the amount of time that a room is in lock mode before a poll begins)
	"""
    if request.method == "POST":
        # if the user has submitted the form, get the data from all three
        poll_form = PollForm(request.POST, request.FILES)
        choice_formset = ChoiceFormSet(request.POST, request.FILES)
        room_form = RoomForm(request.POST, request.FILES)

        if poll_form.is_valid() and choice_formset.is_valid(
        ) and room_form.is_valid():
            # if all 3 forms are valid, create a new question object and save it
            q = Question(text=poll_form.cleaned_data['question'])
            q.save()

            # create a new poll object that points to the question, and save it
            p = Poll(question=q)
            p.save()

            # for every choice the user has inputted
            for form in choice_formset.forms:
                # create a new choice object, and point it at the question created earlier
                c = Choice(question=q, text=form.cleaned_data['choice'])
                c.save()

            # finally, create the room itself, pointing to the question object, with the creator of the
            # currently logged in user, and the period length & join threshold as specified in the form
            # data.
            r = Room(question=q,
                     opened_by=request.user,
                     controller=request.user,
                     period_length=room_form.cleaned_data['period_length'],
                     join_threshold=room_form.cleaned_data['join_threshold'])
            r.save()

            # redirect the user to their newly created room
            return HttpResponseRedirect(r.get_absolute_url())
    else:
        # if the user has not submitted the form (i.e. wishes to fill the form in)
        # then initialise the 3 forms with no data
        poll_form = PollForm()
        choice_formset = ChoiceFormSet()
        room_form = RoomForm()

    # put the forms into a context dictionary (and update that with any extra context we have been given)
    data = {
        'poll_form': poll_form,
        'choice_formset': choice_formset,
        'room_form': room_form
    }
    data.update(extra_context)

    # render the page
    return render_to_response('rooms/room_form.html',
                              data,
                              context_instance=RequestContext(request))
コード例 #30
0
ファイル: views.py プロジェクト: cliffmeyer/lupalo
def loggedin(request,**kwargs):
  
    fp = open( 'tmp.2.log', 'w' )
	
    try:
        request_ids = request.session['fbrequests']
	print >> fp, request_ids
	print >> fp, "====================================="
    except:
        pass
 
    print >> fp, request.method
    print >> fp, request.user.first_name
    print >> fp, request.user.last_name
    print >> fp, request.user.username
    print >> fp, request.user.id
    print >> fp, request.user

    if SOCIALAUTH_ON: 
        print >> fp,'A',[ x for x in UserSocialAuth.objects.filter(user=request.user.id).all()]
        print >> fp,'B',[ x for x in UserSocialAuth.objects.all()]
        print >> fp,'C',[ x for x in UserSocialAuth.objects.filter(provider='facebook',user=request.user.id).order_by('-id')]
        instance = UserSocialAuth.objects.filter(provider='facebook',user=request.user.id).order_by('-id')[0]
        #instance = UserSocialAuth.objects.filter(provider='facebook').get(user=request.user.id).order_by('-id')[0]
        print >> fp, instance
        print >> fp, instance.tokens

        graph = facebook.GraphAPI(instance.tokens["access_token"])
        
        try:
            profile = graph.get_object("me")
        except:
            logout(request)
            return HttpResponseRedirect( reverse('lupalo.views.lupalo') ) # Redirect after POST

        friends = graph.get_connections("me", "friends")
        print >> fp, profile
        print >> fp, profile['id']
        fb_id = profile['id']
        print >> fp, friends
    else:
        fb_id = ROBOT1

    request.session['fb_id'] = fb_id
    print >> fp, "fb_id", fb_id 

    #graph.put_object("me","apprequests",message="Lup",redirect_uri="http://www.lupalo.com/foo/login/facebook")
    #graph.put_object("me","apprequests",to="100004397774234",message="Lup",redirect_uri="http://www.lupalo.com/foo/login/facebook")

    # TODO check if member exists with the same fb id
    try:
        #m = Member.objects.get(user_name=request.user.id)
        m = Member.objects.get( fb_id=fp_id )
    except Member.DoesNotExist:
        m = None

    if m == None:
        try:
            m = Member.objects.get( fb_id=request.session['fb_id'] )
            m.user_name     =  profile['name']
            m.fb_first_name =  profile['first_name']
            m.fb_last_name  =  profile['last_name']
            m.save()
        except Member.DoesNotExist:
            m = None
  
    return HttpResponseRedirect( reverse('lupalo.views.lupalo') ) # Redirect after POST


    #return HttpResponseRedirect(reverse('lupalo.views.requestpage'))

    if True:
    #if request.method == 'POST': # If the form has been submitted...
	#form = ContactForm(request.POST) # A form bound to the POST data

	#print >> fp, "validating"
	#print >> fp, form.is_valid()
	#print >> fp, form.errors

	#if form.is_valid():
	if True:
            #user = form.cleaned_data['user']
            #user = request.user.id
            user = request.user.username

	    t        = time.gmtime()
	    name     = time.asctime(t)
	    gamename = time.asctime(t)

            #gamename = form.cleaned_data['room']           
            #newgame  = form.cleaned_data['newgame']           
            newgame  = True        

	    print >> fp, "New Game", newgame

	    if newgame == True:
		#Room.objects.all().delete()
	    	r = Room(name=name)
	    	r.save()
	    	Game.objects.all().delete()
	    	g = Game(name=name,room=r)
	    	g.save()
	    	r = Room(name=gamename)
	    	r.save()
	    	g = Game(name=name,room=r)
	    	g.save()

	    else:

	    	r = Room(name=gamename)
	    	g = Game(name=name,room=r)

            m = Member.objects.get( fb_id=request.session['fb_id'] )
            game = Game.objects.all()
            #g = game[0]
            request.session['game_id'] = g.id
	    # TODO get room id from game
            #r = g.room 
	    # TODO get player id from room
            #players = Player.objects.get(game=g)
            try:
                players = get_list_or_404(Player, game=g)
            except:
                players = None
 
            if players:
                turn = len(players) 
            else:
                turn = 0

            p = Player(game=g,turn=turn)
	    p.member = m
            p.save()
	
	    print >> fp, "Player turn:", p.turn 
 
            request.session['player_id'] = p.turn

            return HttpResponseRedirect( reverse('lupalo.views.lupalo') ) # Redirect after POST
            #return render(request, 'polls/login.html', {
            #   'form': form,
            #})
    else:

        form = ContactForm() # An unbound form
   

    fp.close()
 
    #m = Member.objects.get(user_name=request.POST['username'])
    #request.session['member_id'] = m.id

    return render(request, 'foyer.html', {
        'form': form, 'user':request.user.first_name 
    })
コード例 #31
0
def Room1(request):
    p = Student.objects.filter(StudentID=request.user)
    c = Course.objects.all()
    for item in c:
        temp = item.TimeRange.split('~')
        i = int(temp[0])
        j = int(temp[1])
        for counter in range(i, j + 1):
            if item.TXX.encode('utf-8') == '第1,2节':
                form = Room(
                    Semester='2015秋季学期',
                    Week='第' + str(counter) + '周',
                    Date=item.Week,
                    District=item.District,
                    Num=item.Num,
                    ClassID=item.ClassID,
                    T12=True,
                )
                if not Room.objects.filter(Semester = '2015秋季学期',Week = '第'+ str(counter) +'周',\
                                           Date = item.Week, District = item.District, Num = item.Num,\
                                           ClassID = item.ClassID, T12 = True):
                    if  Room.objects.filter(Semester = '2015秋季学期',Week = '第'+ str(counter) +'周',\
                                                Date = item.Week, District = item.District, Num = item.Num,\
                                                ClassID = item.ClassID, T12 = False):
                        dd = Room.objects.get(Semester = '2015秋季学期',Week = '第'+ str(counter) +'周',\
                                             Date = item.Week, District = item.District, Num = item.Num,\
                                             ClassID = item.ClassID, T12 = False)
                        dd.T12 = True
                        dd.save()

                    else:
                        form.save()
            if item.TXX.encode('utf-8') == '第3,4节':
                form = Room(
                    Semester='2015秋季学期',
                    Week='第' + str(counter) + '周',
                    Date=item.Week,
                    District=item.District,
                    Num=item.Num,
                    ClassID=item.ClassID,
                    T34=True,
                )
                if not Room.objects.filter(Semester = '2015秋季学期',Week = '第'+ str(counter) +'周',\
                                           Date = item.Week, District = item.District, Num = item.Num,\
                                           ClassID = item.ClassID, T34 = True):
                    if  Room.objects.filter(Semester = '2015秋季学期',Week = '第'+ str(counter) +'周',\
                                               Date = item.Week, District = item.District, Num = item.Num,\
                                               ClassID = item.ClassID, T34 = False):
                        dd = Room.objects.get(Semester = '2015秋季学期',Week = '第'+ str(counter) +'周',\
                                             Date = item.Week, District = item.District, Num = item.Num,\
                                             ClassID = item.ClassID, T34 = False)
                        dd.T34 = True
                        dd.save()

                    else:
                        form.save()
            if item.TXX.encode('utf-8') == '第5,6节':
                form = Room(
                    Semester='2015秋季学期',
                    Week='第' + str(counter) + '周',
                    Date=item.Week,
                    District=item.District,
                    Num=item.Num,
                    ClassID=item.ClassID,
                    T56=True,
                )
                if not Room.objects.filter(Semester = '2015秋季学期',Week = '第'+ str(counter) +'周',\
                                           Date = item.Week, District = item.District, Num = item.Num,\
                                           ClassID = item.ClassID, T56 = True):
                    if  Room.objects.filter(Semester = '2015秋季学期',Week = '第'+ str(counter) +'周',\
                                                Date = item.Week, District = item.District, Num = item.Num,\
                                                ClassID = item.ClassID, T56 = False):
                        dd = Room.objects.get(Semester = '2015秋季学期',Week = '第'+ str(counter) +'周',\
                                             Date = item.Week, District = item.District, Num = item.Num,\
                                             ClassID = item.ClassID, T56 = False)
                        dd.T56 = True
                        dd.save()

                    else:
                        form.save()
            if item.TXX.encode('utf-8') == '第7,8节':
                form = Room(
                    Semester='2015秋季学期',
                    Week='第' + str(counter) + '周',
                    Date=item.Week,
                    District=item.District,
                    Num=item.Num,
                    ClassID=item.ClassID,
                    T78=True,
                )
                if not Room.objects.filter(Semester = '2015秋季学期',Week = '第'+ str(counter) +'周',\
                                           Date = item.Week, District = item.District, Num = item.Num,\
                                           ClassID = item.ClassID, T78 = True):
                    if  Room.objects.filter(Semester = '2015秋季学期',Week = '第'+ str(counter) +'周',\
                                                Date = item.Week, District = item.District, Num = item.Num,\
                                                ClassID = item.ClassID, T78 = False):
                        dd = Room.objects.get(Semester = '2015秋季学期',Week = '第'+ str(counter) +'周',\
                                             Date = item.Week, District = item.District, Num = item.Num,\
                                             ClassID = item.ClassID, T78 = False)
                        dd.T78 = True
                        dd.save()

                    else:
                        form.save()
            if item.TXX.encode('utf-8') == '第9,10节':
                form = Room(
                    Semester='2015秋季学期',
                    Week='第' + str(counter) + '周',
                    Date=item.Week,
                    District=item.District,
                    Num=item.Num,
                    ClassID=item.ClassID,
                    T910=True,
                )
                if not Room.objects.filter(Semester = '2015秋季学期',Week = '第'+ str(counter) +'周',\
                                           Date = item.Week, District = item.District, Num = item.Num,\
                                           ClassID = item.ClassID, T910 = True):
                    if  Room.objects.filter(Semester = '2015秋季学期',Week = '第'+ str(counter) +'周',\
                                                Date = item.Week, District = item.District, Num = item.Num,\
                                                ClassID = item.ClassID, T910 = False):
                        dd = Room.objects.get(Semester = '2015秋季学期',Week = '第'+ str(counter) +'周',\
                                             Date = item.Week, District = item.District, Num = item.Num,\
                                             ClassID = item.ClassID, T910 = False)
                        dd.T910 = True
                        dd.save()

                    else:
                        form.save()
    ob = Room.objects.all()
    if request.POST:
        obj = request.POST
        ob = ob.filter(Semester=obj['Semester'],Week=obj['ZhouCi'],\
                       Date=obj['XingQi'],District=obj['District'],Num=obj['LouYu'])
        return render_to_response('room1.html',{'p': p,'ob': ob,'S':obj['Semester'],\
                                  'ZC':obj['ZhouCi'],\
                                  'DA':obj['XingQi'],'Dis':obj['District'],\
                                  'LY':obj['LouYu']})
    else:
        return render_to_response('room1.html', {'p': p})
コード例 #32
0
 def test_capacity(self):
     p = Room(name='a', capacity=5)
     p.save()
     self.assertEqual(Room.objects.count(), 4)
     p.delete()
     self.assertEqual(Room.objects.count(), 3)