Ejemplo n.º 1
0
Archivo: utils.py Proyecto: systers/vms
def create_event_with_details(event):
    """
    Creates and returns event with passed name and dates
    """
    e1 = Event(name=event[0], start_date=event[1], end_date=event[2])
    e1.save()
    return e1
Ejemplo n.º 2
0
def EventManageAddView(request, username=''):

    user = User.objects.get(username=username)
    form = EventForm(request.POST or None)
    if form.is_valid():
        thisDate = form.cleaned_data['date']
        thisStarttime = form.cleaned_data['starttime']
        thisEndtime = form.cleaned_data['endtime']
        thisEvent = form.cleaned_data['event']
        thisLocation = form.cleaned_data['location']
        thisOrganization = form.cleaned_data['organization']
        thisSpeakers = form.cleaned_data['speakers']
        thisRating = form.cleaned_data['rating']
        thisFeedback = form.cleaned_data['feedback']
        thisUser = User.objects.get(username=username)

        event = Event(user=thisUser,
                      date=thisDate,
                      starttime=thisStarttime,
                      endtime=thisEndtime,
                      event=thisEvent,
                      location=thisLocation,
                      organization=thisOrganization,
                      speakers=thisSpeakers,
                      rating=thisRating,
                      feedback=thisFeedback)
        event.save()

        return HttpResponseRedirect(URL_DASHBOARD(user.username))

    return HttpResponseRedirect(URL_DASHBOARD(username))
Ejemplo n.º 3
0
 def test_is_started(self):
     now = timezone.now()
     event = Event(title="Test",
                   description="Test Event",
                   start_time=now - timedelta(hours=1),
                   end_time=now + timedelta(hours=1))
     self.assertTrue(event.is_started())
Ejemplo n.º 4
0
    def test_get_shift_slots_remaining(self):
        """ Test get_shift_slots_remaining(s_id) """

        e1 = Event(name="Open Source Event", start_date="2012-10-22", end_date="2012-10-23")

        e1.save()

        j1 = Job(
            name="Software Developer",
            start_date="2012-10-22",
            end_date="2012-10-23",
            description="A software job",
            event=e1,
        )

        j1.save()

        s1 = Shift(date="2012-12-10", start_time="9:00", end_time="3:00", max_volunteers=1, job=j1)

        s2 = Shift(date="2012-6-25", start_time="10:00", end_time="4:00", max_volunteers=2, job=j1)

        s3 = Shift(date="2012-1-9", start_time="12:00", end_time="6:00", max_volunteers=4, job=j1)

        s1.save()
        s2.save()
        s3.save()

        self.assertIsNotNone(get_shift_slots_remaining(s1.id))
        self.assertIsNotNone(get_shift_slots_remaining(s2.id))
        self.assertIsNotNone(get_shift_slots_remaining(s3.id))
Ejemplo n.º 5
0
def add_event(request):
    if not users.is_current_user_admin():
        return HttpResponseRedirect('/')
        
    if request.method == 'POST':
        is_public = request.POST['is_public'] =='1'
        event = Event(
                      title=request.POST['title'],
                      desc=request.POST['desc'],
                      publish_date=today(),
                      is_public=is_public)
        event.put()
        return HttpResponseRedirect( '../event/?event=%s' % str(event.key()) )
        #except:
        #    return...error
    else:
        c = Context({
                'logouturl':LOGOUT,
                'loginurl':LOGIN,
                'cur_user':CURUSER,
                'is_admin':users.is_current_user_admin(),
                'is_admin':True,
                'event':Event(),
                })
    return render_to_response( 'newevent.htm',c )
def form(request):
    if request.method == "POST":
        name = request.POST.get('name')
        desc = request.POST.get('desc')
        location = request.POST.get('loc')
        poster = request.POST.get('poster')
        start_date = request.POST.get('start_date')
        start_time = request.POST.get('start_time')
        end_date = request.POST.get('end_date')
        end_time = request.POST.get('end_time')
        last_date = request.POST.get('last_date')
        last_time = request.POST.get('last_time')
        email = request.POST.get('email')
        pswd = request.POST.get('pswd')
        thisPage = request.POST.get('this_page')
        obj = datetime.datetime.now()
    
        if not Event.objects.filter(email__exact=email,name__exact=name, start_date__exact=start_date,end_date__exact=end_date, start_time__exact=start_time, end_time__exact=end_time, location__exact=location):
            data = Event(name=name, desc=desc, poster=poster, location=location, start_date=start_date, start_time=start_time, end_date=end_date, end_time=end_time, last_date=last_date, last_time=last_time, email=email, pswd=pswd)
            
            data.save()

            # For sending mail
            subject = "Event Registration successful"
            message = "".join(["Dear organizer,\nYour event have been registerd successfully.\n\nEvent details :\nEvent id : ", str(data.id), "\nEvent Name : ", str(data.name), "\n\nThank you for using our app."])
            send_mail(subject,message,"",[data.email], fail_silently=False)
            messages.success(request, 'Registration succesfull.')
        else :
            messages.error(request, "Event with same date, time and Location is already registered using your Email ID!!")
        return redirect(thisPage)
    return render(request, "event_form.html")
Ejemplo n.º 7
0
	def test_references_coherence(self):
		"""
		Check the pending_event and the event_action always refers to the same event.
		"""

		e2 = Event(
			name="Event 2",
			slug="event_2",
			category=self.c,
			text="Event 2",
		)
		e2.save()

		pe = PendingEvent(
			event=e2,
			kingdom=self.k,
		)
		pe.save()

		pea = PendingEventAction(
			pending_event=pe,
			event_action=self.a,
		)

		self.assertRaises(IntegrityError, pea.save)
Ejemplo n.º 8
0
def events(request):
    if request.method == 'GET':
        now = timezone.now()
        events = serializers.serialize(
            "json",
            Event.objects.all().filter(time__gte=now).order_by('time'))
        return JsonResponse(events, safe=False)

    elif request.method == 'POST':
        post_data = [('secret', '6LdD_AwUAAAAAJmyELZPK2Ijmy7jGYmTCUIlIItf'),
                     ('response', request.POST['g-recaptcha-response']),
                     ('remoteip', request.META['REMOTE_ADDR'])]
        result = urllib.request.urlopen(
            'https://www.google.com/recaptcha/api/siteverify',
            bytearray(urllib.parse.urlencode(post_data), 'utf-8'))
        result = result.read().decode('utf-8')
        result = json.loads(result)

        if result['success'] == True:
            newEvent = Event(
                title=request.POST['title'],
                description=request.POST['description'],
                time=request.POST['time'],
                ip=request.META['REMOTE_ADDR'],
            )
            newEvent.save()
        return HttpResponseRedirect('/')
Ejemplo n.º 9
0
    def _create_events(self):

        prefec_list = list(self.prefectures)

        #ポイント稼ぎ用ボランティア
        random.seed(1)
        for i in range(1, 21):

            for j in range(1, 4):
                name = "【第%d回】" % j + eventname_sample[i]["name"]
                host_user = User.objects.get(username="******" % i)
                past_or_future = 1 if i < 10 else -1
                demoevent = Event(
                    name=name,
                    start_time=timezone.now() +
                    timezone.timedelta(days=301) * past_or_future,
                    end_time=timezone.now() +
                    timezone.timedelta(days=302) * past_or_future,
                    meeting_place="池袋駅東口母子像前",
                    contact="*****@*****.**",
                    details=eventdetail_sample,
                    host_user=host_user,
                    region=prefec_list[i % 47],
                    longitude=139.7191 + 0.01 * random.uniform(-2.0, 2.0),
                    latitude=35.7291 + 0.01 * random.uniform(-2.0, 2.0))
                demoevent.save()
                demoevent.admin = User.objects.filter(pk=i)
Ejemplo n.º 10
0
def EventManageAddView(request, username=''):

    user = User.objects.get(username=username)
    form = EventForm(request.POST or None)
    if form.is_valid():
        thisDate = form.cleaned_data['date']
        thisStarttime = form.cleaned_data['starttime']
        thisEndtime = form.cleaned_data['endtime']
        thisEvent = form.cleaned_data['event']
        thisLocation = form.cleaned_data['location']
        thisOrganization = form.cleaned_data['organization']
        thisSpeakers = form.cleaned_data['speakers']
        thisRating = form.cleaned_data['rating']
        thisFeedback = form.cleaned_data['feedback']
        thisUser = User.objects.get(username=username)

        event = Event(user=thisUser, 
                      date=thisDate, starttime=thisStarttime, endtime=thisEndtime,
                      event=thisEvent, location=thisLocation, organization=thisOrganization, 
                      speakers=thisSpeakers, rating=thisRating, feedback=thisFeedback)
        event.save()



        return HttpResponseRedirect(URL_DASHBOARD(user.username))

    return HttpResponseRedirect(URL_DASHBOARD(username))
Ejemplo n.º 11
0
    def post(self, request):
        post_data = json.loads(request.body.decode('utf-8'))
        username = post_data.get('username')
        token = post_data.get('token')
        user = User.objects.filter(username=username, token=token).all()
        if len(user):
            image = post_data.get('image')
            des = post_data.get('description')
            start_date = post_data.get('start_dttime')
            end_date = post_data.get('end_dttime')
            is_private = post_data.get('is_private')
            location = post_data.get('location')
            capacity = post_data.get('capacity')
            title = post_data.get('title')
            event = Event(host_id=user[0],
                          image=image,
                          description=des,
                          start_dttime=start_date,
                          end_dttime=end_date,
                          is_private=is_private,
                          location=location,
                          capacity=capacity,
                          title=title)
            event.save()
            return JsonResponse({
                "code": 200,
                "status": "Successfull !!",
                "userData": "successfully created event"
            })

        return JsonResponse({
            "code": 201,
            "status": "UnSuccessfull !!",
            "userData": "wrong credentials"
        })
Ejemplo n.º 12
0
def create_event_with_details(event):
    """
    Creates and returns event with passed name and dates
    """
    e1 = Event(name=event[0], start_date=event[1], end_date=event[2])
    e1.save()
    return e1
Ejemplo n.º 13
0
    def _create_events(self):

        prefec_list = list(self.prefectures)

        #ポイント稼ぎ用ボランティア
        random.seed(1)
        for i in range(1,21):

            for j in range(1,4):
                name = "【第%d回】"%j + eventname_sample[i]["name"]
                host_user = User.objects.get(username="******"%i)
                past_or_future = 1 if i < 10 else -1
                demoevent = Event(
                    name=name,
                    start_time=timezone.now() + timezone.timedelta(days=301) * past_or_future,
                    end_time = timezone.now() + timezone.timedelta(days=302) * past_or_future,
                    meeting_place="池袋駅東口母子像前",
                    contact="*****@*****.**",
                    details=eventdetail_sample,
                    host_user=host_user,
                    region=prefec_list[i%47],
                    longitude=139.7191 + 0.01 * random.uniform(-2.0,2.0),
                    latitude=35.7291 + 0.01 * random.uniform(-2.0,2.0)
                )
                demoevent.save()
                demoevent.admin = User.objects.filter(pk=i)
Ejemplo n.º 14
0
    def test_get_event_by_shift_id(self):
        e1 = Event(
                name="Open Source Event",
                start_date="2012-10-22",
                end_date="2012-10-23"
                )

        e1.save()

        j1 = Job(
                name="Software Developer",
                start_date="2012-10-22",
                end_date="2012-10-23",
                description="A software job",
                event=e1
                )

        j2 = Job(
                name="Systems Administrator",
                start_date="2012-9-1",
                end_date="2012-10-26",
                description="A systems administrator job",
                event=e1
                )

        j1.save()
        j2.save()

        s1 = Shift(
                date="2012-10-23",
                start_time="9:00",
                end_time="3:00",
                max_volunteers=1,
                job=j1
                )

        s2 = Shift(
                date="2012-10-23",
                start_time="10:00",
                end_time="4:00",
                max_volunteers=2,
                job=j1
                )

        s3 = Shift(
                date="2012-10-23",
                start_time="12:00",
                end_time="6:00",
                max_volunteers=4,
                job=j2
                )

        s1.save()
        s2.save()
        s3.save()
        
        self.assertIsNotNone(get_event_by_shift_id(s1.id))
        self.assertIsNotNone(get_event_by_shift_id(s2.id))
        self.assertIsNotNone(get_event_by_shift_id(s3.id))
Ejemplo n.º 15
0
 def test_without_slug(self):
     event = Event(
         title="Test",
         description="Test Event",
         start_time=timezone.now(),
         end_time=timezone.now(),
     )
     event.save()
     self.assertEqual(event.slug, "test")
Ejemplo n.º 16
0
    def test_event_not_empty(self):
        """ Test event_not_empty(event_id) """
        e1 = Event(
                name="Open Source Event",
                start_date="2012-10-22",
                end_date="2012-10-23"
                )
        e2 = Event(
                name="Python Event",
                start_date="2013-11-12",
                end_date="2013-11-13"
                )
        e3 = Event(
                name="Django Event",
                start_date="2015-07-07",
                end_date="2015-07-08"
                )

        e1.save()
        e2.save()
        e3.save()

        self.assertTrue(event_not_empty(e1.id))
        self.assertTrue(event_not_empty(e2.id))
        self.assertTrue(event_not_empty(e3.id))
        self.assertFalse(event_not_empty(100))
        self.assertFalse(event_not_empty(200))
        self.assertFalse(event_not_empty(300))
Ejemplo n.º 17
0
class ScriptTest(TestCase):
	"""
	Unit tests for event app
	"""

	def setUp(self):
		self.k = Kingdom()
		self.k.save()

		self.c = EventCategory(
			frequency=1,
			timeout=1,
		)
		self.c.save()

		self.e = Event(
			name="Event 1",
			slug="event_1",
			category=self.c,
			text="Event 1",
			on_fire=""
		)
		self.e.save()

		self.a = EventAction(
			event=self.e,
			text="some text",
			on_fire="",
		)
		self.a.save()


	def test_kingdom_create_pending_event(self):
		"""
		Check the pending event is created and not started
		"""

		pe = self.k.create_pending_event("event_1")

		self.assertIsNone(pe.started)
		self.assertEqual(pe.event_id, self.e.pk)
		self.assertEqual(self.k.pendingevent_set.count(), 1)


	def test_kingdom_start_pending_event(self):
		"""
		Check the pending event is created and started
		"""

		pe = self.k.start_pending_event("event_1")

		self.assertIsNotNone(pe.started)
		self.assertEqual(pe.event_id, self.e.pk)
		self.assertEqual(self.k.pendingevent_set.count(), 1)
Ejemplo n.º 18
0
    def test_get_job_by_id(self):

        e1 = Event(name = "Software Conference",
                start_date = "2012-10-22",
                end_date = "2012-10-25")

        e1.save()

        j1 = Job(name = "Software Developer",
                start_date = "2012-10-22",
                end_date = "2012-10-23",
                description = "A software job",
                event = e1)

        j2 = Job(name = "Systems Administrator",
                start_date = "2012-9-1",
                end_date = "2012-10-26",
                description = "A systems administrator job",
                event = e1)

        j3 = Job(name = "Project Manager",
                start_date = "2012-1-2",
                end_date = "2012-2-2",
                description = "A management job",
                event = e1)

        j1.save()
        j2.save()
        j3.save()

        #test typical cases
        self.assertIsNotNone(get_job_by_id(j1.id))
        self.assertIsNotNone(get_job_by_id(j2.id))
        self.assertIsNotNone(get_job_by_id(j3.id))

        self.assertEqual(get_job_by_id(j1.id), j1)
        self.assertEqual(get_job_by_id(j2.id), j2)
        self.assertEqual(get_job_by_id(j3.id), j3)

        #test non-existant cases
        self.assertIsNone(get_job_by_id(100))
        self.assertIsNone(get_job_by_id(200))
        self.assertIsNone(get_job_by_id(300))
        self.assertIsNone(get_job_by_id(400))

        self.assertNotEqual(get_job_by_id(100), j1)
        self.assertNotEqual(get_job_by_id(100), j2)
        self.assertNotEqual(get_job_by_id(100), j3)
        self.assertNotEqual(get_job_by_id(200), j1)
        self.assertNotEqual(get_job_by_id(200), j2)
        self.assertNotEqual(get_job_by_id(200), j3)
        self.assertNotEqual(get_job_by_id(300), j1)
        self.assertNotEqual(get_job_by_id(300), j2)
        self.assertNotEqual(get_job_by_id(300), j3)
Ejemplo n.º 19
0
def post_event(request):
    if request.method == 'POST':
        form = EventForm(request.POST)
        if form.is_valid():
            e = Event(title = form.cleaned_data['title'],
                      date = form.cleaned_data['date'],
                      location = form.cleaned_data['location'],
                      description = form.cleaned_data['description'])
            e.save()

    return HttpResponseRedirect('/events/')
Ejemplo n.º 20
0
    def test_get_shifts_with_open_slots(self):
        """ Test get_shifts_with_open_slots(j_id) """
        u1 = User.objects.create_user("Yoshi")

        v1 = Volunteer(
            first_name="Yoshi",
            last_name="Turtle",
            address="Mario Land",
            city="Nintendo Land",
            state="Nintendo State",
            country="Nintendo Nation",
            phone_number="2374983247",
            email="*****@*****.**",
            user=u1,
        )

        v1.save()

        e1 = Event(name="Open Source Event", start_date="2012-10-22", end_date="2012-10-23")

        e1.save()

        j1 = Job(
            name="Software Developer",
            start_date="2012-10-22",
            end_date="2012-10-23",
            description="A software job",
            event=e1,
        )

        j2 = Job(
            name="Systems Administrator",
            start_date="2012-9-1",
            end_date="2012-10-26",
            description="A systems administrator job",
            event=e1,
        )

        j1.save()
        j2.save()

        s1 = Shift(date="2012-10-23", start_time="9:00", end_time="3:00", max_volunteers=1, job=j1)

        s2 = Shift(date="2012-10-23", start_time="10:00", end_time="4:00", max_volunteers=2, job=j1)

        s3 = Shift(date="2012-10-23", start_time="12:00", end_time="6:00", max_volunteers=4, job=j2)

        s1.save()
        s2.save()
        s3.save()

        self.assertIsNotNone(get_shifts_with_open_slots(j1.id))
        self.assertIsNotNone(get_shifts_with_open_slots(j2.id))
Ejemplo n.º 21
0
def create_event_with_details(event):
    """
    Creates and returns event with passed name and dates
    """
    e1 = Event(name=event['name'],
               start_date=event['start_date'],
               end_date=event['end_date'],
               description=event['description'],
               address=event['address'],
               venue=event['venue'])
    e1.save()
    return e1
Ejemplo n.º 22
0
def add_event(request):
    if request.method == 'POST':
        e = Event(
            evt_name=request.POST['name'],
            evt_place=request.POST['place'],
            evt_start_time=request.POST['start_time'],
            evt_end_time=request.POST['end_time'],
            evt_date=request.POST['date'],
            evt_note=request.POST['note'],
            owner=request.user)
        e.save()
        return HttpResponseRedirect('/')
    return render_to_response('add_event.html', context_instance=RequestContext(request))
Ejemplo n.º 23
0
    def get_shifts_ordered_by_date(self):

        e1 = Event(name="Open Source Event",
                   start_date="2012-10-22",
                   end_date="2012-10-23")

        e1.save()

        j1 = Job(name="Software Developer",
                 start_date="2012-10-22",
                 end_date="2012-10-23",
                 description="A software job",
                 event=e1)

        j1.save()

        s1 = Shift(date="2012-1-10",
                   start_time="9:00",
                   end_time="3:00",
                   max_volunteers=1,
                   job=j1)

        s2 = Shift(date="2012-6-25",
                   start_time="10:00",
                   end_time="4:00",
                   max_volunteers=2,
                   job=j1)

        s3 = Shift(date="2012-12-9",
                   start_time="12:00",
                   end_time="6:00",
                   max_volunteers=4,
                   job=j1)

        s1.save()
        s2.save()
        s3.save()

        #test typical case
        shift_list = get_shifts_ordered_by_date(j1.id)
        self.assertIsNotNone(shift_list)
        self.assertNotEqual(shift_list, False)
        self.assertEqual(len(shift_list), 3)
        self.assertIn(s1, shift_list)
        self.assertIn(s2, shift_list)
        self.assertIn(s3, shift_list)

        #test order
        self.assertEqual(shift_list[0].date, s1.date)
        self.assertEqual(shift_list[1].date, s2.date)
        self.assertEqual(shift_list[2].date, s3.date)
Ejemplo n.º 24
0
    def test_get_jobs_ordered_by_title(self):

        e1 = Event(
                name="Software Conference",
                start_date="2012-10-22",
                end_date="2012-10-25"
                )

        e1.save()

        j1 = Job(
                name="Software Developer",
                start_date="2012-10-22",
                end_date="2012-10-23",
                description="A software job",
                event=e1
                )

        j2 = Job(
                name="Systems Administrator",
                start_date="2012-9-1",
                end_date="2012-10-26",
                description="A systems administrator job",
                event=e1
                )

        j3 = Job(
                name="Project Manager",
                start_date="2012-1-2",
                end_date="2012-2-2",
                description="A management job",
                event=e1
                )

        j1.save()
        j2.save()
        j3.save()

        # test typical case
        job_list = get_jobs_ordered_by_title()
        self.assertIsNotNone(job_list)
        self.assertNotEqual(job_list, False)
        self.assertEqual(len(job_list), 3)
        self.assertIn(j1, job_list)
        self.assertIn(j2, job_list)
        self.assertIn(j3, job_list)

        # test order
        self.assertEqual(job_list[0].name, j3.name)
        self.assertEqual(job_list[1].name, j1.name)
        self.assertEqual(job_list[2].name, j2.name)
Ejemplo n.º 25
0
    def get_shifts_ordered_by_date(self):

        e1 = Event(name = "Open Source Event",
                start_date = "2012-10-22",
                end_date = "2012-10-23")

        e1.save()

        j1 = Job(name = "Software Developer",
            start_date = "2012-10-22",
            end_date = "2012-10-23",
            description = "A software job",
            event = e1)

        j1.save()

        s1 = Shift(date = "2012-1-10",
            start_time = "9:00",
            end_time = "3:00",
            max_volunteers = 1,
            job = j1)

        s2 = Shift(date = "2012-6-25",
            start_time = "10:00",
            end_time = "4:00",
            max_volunteers = 2,
            job = j1)

        s3 = Shift(date = "2012-12-9",
            start_time = "12:00",
            end_time = "6:00",
            max_volunteers = 4,
            job = j1)

        s1.save()
        s2.save()
        s3.save()

        #test typical case
        shift_list = get_shifts_ordered_by_date(j1.id)
        self.assertIsNotNone(shift_list)
        self.assertNotEqual(shift_list, False)
        self.assertEqual(len(shift_list), 3)
        self.assertIn(s1, shift_list)
        self.assertIn(s2, shift_list)
        self.assertIn(s3, shift_list)

        #test order
        self.assertEqual(shift_list[0].date, s1.date)
        self.assertEqual(shift_list[1].date, s2.date)
        self.assertEqual(shift_list[2].date, s3.date)
Ejemplo n.º 26
0
 def save(self):
     id_ = self.cleaned_data.get('id')
     title = self.cleaned_data.get('title')
     description = self.cleaned_data.get('description')
     category = self.cleaned_data.get('category')
     event_time = self.cleaned_data.get('event_time')
     event_place = self.cleaned_data.get('event_place')
     cancelled = self.cleaned_data.get('cancelled')
     event_image = self.cleaned_data.get('event_image')
     designation = self.cleaned_data.get('designation')
     notify_users = self.cleaned_data.get('notify_users')
     if id_ is not None and id_ != -1:
         created = False
         event = Event.objects.get(pk=id_)
         event.title = title
         event.description = description
         event.category = category
         event.event_time = event_time
         event.event_place = event_place
         event.cancelled = cancelled
         event.posted_by_id = designation
     else:
         created = True
         event = Event(title=title,
                       description=description,
                       category=category,
                       event_time=event_time,
                       event_place=event_place,
                       cancelled=cancelled,
                       posted_by_id=designation)
         notify_users = True
     event.save()
     if event_image is not None and event_image.image is not None:
         '''
         updating old image to just support single image for now. Should be changed in future to support multiple
         images here and at UI side
         '''
         try:
             eventImage = EventImage.objects.get(event=event)
             eventImage.image = event_image
         except EventImage.DoesNotExist:
             eventImage = EventImage(
                 event=event,
                 image=event_image
             )
         eventImage.save()
     if notify_users:
         event.refresh_from_db()
         event_signals.event_done.send(Event, instance=event, created=created)
     return event
Ejemplo n.º 27
0
def add_event(request, pk):
    club = Club.objects.get(pk=pk)
    if request.POST:
        event = Event(club=club)
        form = EventForm(request.POST,instance=event )
        if form.is_valid():
            event = form.save()
            event.save()
            return render_to_response('event/successful_post.html', context_instance = RequestContext(request))

    else:
        form = EventForm()

    return render_to_response('club/add_event.html', {'form':form}, context_instance = RequestContext(request))
Ejemplo n.º 28
0
    def test_get_shift_by_id(self):

        e1 = Event(name="Open Source Event", start_date="2012-10-22", end_date="2012-10-23")

        e1.save()

        j1 = Job(
            name="Software Developer",
            start_date="2012-10-22",
            end_date="2012-10-23",
            description="A software job",
            event=e1,
        )

        j1.save()

        s1 = Shift(date="2012-10-23", start_time="9:00", end_time="3:00", max_volunteers=1, job=j1)

        s2 = Shift(date="2012-10-23", start_time="10:00", end_time="4:00", max_volunteers=2, job=j1)

        s3 = Shift(date="2012-10-23", start_time="12:00", end_time="6:00", max_volunteers=4, job=j1)

        s1.save()
        s2.save()
        s3.save()

        # test typical cases
        self.assertIsNotNone(get_shift_by_id(s1.id))
        self.assertIsNotNone(get_shift_by_id(s2.id))
        self.assertIsNotNone(get_shift_by_id(s3.id))

        self.assertEqual(get_shift_by_id(s1.id), s1)
        self.assertEqual(get_shift_by_id(s2.id), s2)
        self.assertEqual(get_shift_by_id(s3.id), s3)

        # test non-existant cases
        self.assertIsNone(get_shift_by_id(100))
        self.assertIsNone(get_shift_by_id(200))
        self.assertIsNone(get_shift_by_id(300))
        self.assertIsNone(get_shift_by_id(400))

        self.assertNotEqual(get_shift_by_id(100), s1)
        self.assertNotEqual(get_shift_by_id(100), s2)
        self.assertNotEqual(get_shift_by_id(100), s3)
        self.assertNotEqual(get_shift_by_id(200), s1)
        self.assertNotEqual(get_shift_by_id(200), s2)
        self.assertNotEqual(get_shift_by_id(200), s3)
        self.assertNotEqual(get_shift_by_id(300), s1)
        self.assertNotEqual(get_shift_by_id(300), s2)
        self.assertNotEqual(get_shift_by_id(300), s3)
Ejemplo n.º 29
0
class DependenciesCommandTest(TestCase):
	"""
	Test dependencies commands
	"""

	def setUp(self):
		self.k = Kingdom()
		self.e = Event(
			name="Event",
			slug="first_event")
		self.e.save()

		self.ea = self.e.eventaction_set.create(
			on_fire="""
kingdom.next_event("second_event")
""")
		self.ea.save()

		self.m = Mission(
			name="Mission",
			slug="mission",
			on_resolution="""
kingdom.create_pending_event("second_event")
""")
		self.m.save()

	def test_dependencies(self):
		content = StringIO()
		management.call_command('dependencies', dry=True, interactive=False, stdout=content)

		content.seek(0)
		out = content.read()

		# Check node list
		self.assertTrue('event_first_event [' in out)
		self.assertTrue('mission_mission [' in out)
		self.assertTrue('event_first_event -> event_second_event' in out)
		self.assertTrue('mission_mission -> event_second_event' in out)

	def test_dependencies_restrict_object(self):
		content = StringIO()
		management.call_command('dependencies', 'mission_mission', dry=True, interactive=False, stdout=content)

		content.seek(0)
		out = content.read()

		# Check node list does not include "event" model.
		self.assertFalse('event_first_event [' in out)
		self.assertTrue('mission_mission [' in out)
Ejemplo n.º 30
0
    def post(self, request):
        user = request.user

        event_name = request.data.get('name')
        category = request.data.get('category')
        food_types = []
        for food_type, food_type_boolean in request.data.items():
            if food_type_boolean == 'on':
                food_types.append(food_type)

        string_event_date = request.data.get('event_date')
        if ((event_name in [[], '', None]) or (category in [[], '', None])
                or (string_event_date in ['', None]) or (food_types == [])):
            return Response({'failue': 'some of the inputs are empty'},
                            status=status.HTTP_400_BAD_REQUEST)
        try:
            event_date = datetime.strptime(string_event_date,
                                           "%Y-%m-%d").date()
        except ValueError:
            return Response({'failue': 'event date is not well formated'},
                            status=status.HTTP_400_BAD_REQUEST)
        if event_date < date.today():
            return Response({'failue': 'event date is for the past'},
                            status=status.HTTP_400_BAD_REQUEST)

        if Event.objects.filter(name=event_name,
                                event_date=event_date).exists():
            return Response({'failue': 'event is already created'},
                            status=status.HTTP_400_BAD_REQUEST)
        #use cache for object fetching
        foods = Food.objects.all()
        food_types_list = foods.values_list('food_type', flat=True)
        for food_type in food_types:
            if food_type not in food_types_list:
                return Response(
                    {'failue': f"food id {food_type} is not correct"},
                    status=status.HTTP_400_BAD_REQUEST)
        event_name_url = '%20'.join(event_name.split(' '))
        url = settings.ROOT_URL + f"/events/item/{string_event_date}/{event_name_url}"
        event = Event(name=event_name,
                      category=category,
                      url=url,
                      event_date=event_date,
                      organizer=user.userprofile)
        event.save()
        for food_type in food_types:
            event.food_types.add(foods.get(food_type=food_type))
        return redirect('/events/')
Ejemplo n.º 31
0
 def get_last_new_repertory(cls):
     event = Event.get_last_new_event()
     if event:
         try:
             return cls.objects.filter(event=event).order_by('-id')[0]
         except IndexError:
             return
Ejemplo n.º 32
0
    def test_account_should_be_informed_about_tag_in_region_he_interested_in(self):
        """
        User should be informed about event that appeared in region that he is interested in
        """

        user = User.objects.create_user(username='******', email="*****@*****.**",  password="******")
        account = Account(
            user=user,
            all_of_canada=False,
            regions=[Region.objects.filter(name="Alberta"), Region.objects.filter(name="Saskatchewan")],
            tags=["boo"]
        )

        venue = Venue(
            name="Test venue",
            city=City.objects.filter(name="Saskatoon"),
            country=Country.objects.filter(name="Canada")
        )

        event = Event(
            name="Test event",
            venue=venue,
            tags=["boo"]
        )

        self.assertIn(
            event,
            InTheLoopSchedule.unprocessed_for_account(account)
        )        
Ejemplo n.º 33
0
def add_event(request, pk):
    club = Club.objects.get(pk=pk)
    if request.POST:
        event = Event(club=club)
        form = EventForm(request.POST, instance=event)
        if form.is_valid():
            event = form.save()
            event.save()
            return render_to_response('event/successful_post.html',
                                      context_instance=RequestContext(request))

    else:
        form = EventForm()

    return render_to_response('club/add_event.html', {'form': form},
                              context_instance=RequestContext(request))
Ejemplo n.º 34
0
def remind_account_about_events_with_email(account, single_events):
    if account.reminder_email:
        featured_events = Event.featured_events_for_region(account.native_region)[0:4]

        similar_events = find_similar_events(
            Event.future_events.filter(id__in=single_events.values_list("event_id", flat=True))
        )

        subject = "Upcoming events from cityfusion"

        message = render_to_string('accounts/emails/reminder_email.html', {
                "featured_events": featured_events,
                "events": single_events,
                "similar_events": similar_events,
                "STATIC_URL": "/static/",
                "advertising_region": account.advertising_region,
                "site": "http://%s" % Site.objects.get_current().domain
            })

        try:
            msg = EmailMessage(subject,
                       message,
                       "*****@*****.**",
                       [account.reminder_email])
            msg.content_subtype = 'html'
            msg.send()
        except:
            logger.error("Invalid email %s" % account.reminder_email)

        return message

    else:
        return ""
Ejemplo n.º 35
0
    def process(self, account):

        components = self.cleaned_data['time'].split(':')
        day = int(components[0])
        hour = int(components[1])
        minute = int(components[2])
        now = datetime.datetime.now()
        start_date = datetime.datetime(now.year, now.month, day, hour, minute)

        event = Event(
            name=self.cleaned_data['name'],
            start_date=start_date,
            location=self.cleaned_data['location'],
            host=account
        )
        event.save()
Ejemplo n.º 36
0
def edit_sub_event( request ):
    if not users.is_current_user_admin():
        return HttpResponseRedirect('/')

    try:
        sekey = Key(request.POST['key'])
        se = Subevent.get(sekey)
        se.content = request.POST['content']
        pekey = memcache.get('event')
        pe = Event.get(pekey)
        # treat date from str to datetime type
        start_date = request.POST['start_date']
        li = start_date.split('-')
        se.start_date = datetime.date( int(li[0]),int(li[1]),int(li[2]))
       
        end_date = request.POST['end_date']
        li = end_date.split('-')
        se.end_date = datetime.date( int(li[0]),int(li[1]),int(li[2]))
        # adjust the parent event's start_date and end_date
        if se.start_date < pe.start_date:
            pe.start_date = se.start_date
        if se.end_date > pe.end_date:
            pe.end_date = se.end_date
        pe.put()
    except:
        return HttpResponse('error')
    
    if se.end_date < today():
        se.isexpired = True
    else:
        se.isexpired = False
    se.put()
    return HttpResponse( se.isexpired )
Ejemplo n.º 37
0
def done_sub_event(request):
    if not users.is_current_user_admin():
        return HttpResponseRedirect('/')
    
    try:
        sekey = Key(request.POST['key'])
        pekey = memcache.get('event')
        is_done = request.POST['is_done']
    except:
        return HttpResponse('error')
    # update event,sub_event,history info
    se = Subevent.get(sekey)
    pe = Event.get(pekey)
    if is_done == 'true':
        se.is_done = True
        se.end_date = today()
        hi = History()
        hi.event = pe
        hi.content = "acomplished:"+se.content
        hi.put()
        #adjust parent event's progress
        pe.progress = pe.progress+100/pe.num_se
        if pe.progress == 100:
            pe.is_done = True
    else:
        se.is_done = False
        if pe.progress == 100:
            pe.is_done = False
        pe.progress = pe.progress-100/pe.num_se
    pe.put()
    se.put()   
    return HttpResponse( se.key() )
Ejemplo n.º 38
0
def remind_account_about_deleted_events_with_email(account, single_events):
    if account.reminder_email:
        featured_events = Event.featured_events_for_region(account.native_region)[:4]
        subject = 'Deleted events from cityfusion'

        message = render_to_string('accounts/emails/reminder_deleted_event_email.html', {
                "featured_events": featured_events,
                "events": single_events,
                "STATIC_URL": "/static/",
                "advertising_region": account.advertising_region,
                "site": "http://%s" % Site.objects.get_current().domain
            })

        try:
            msg = EmailMessage(subject,
                       message,
                       "*****@*****.**",
                       [account.reminder_email])
            msg.content_subtype = 'html'
            msg.send()
        except:
            logger.error("Invalid email %s" % account.reminder_email)

        return message

    else:
        return ""
Ejemplo n.º 39
0
def sell():
  form = SellForm() 
  if form.validate_on_submit():
    #Save image to static/images
    app.config['UPLOAD_FOLDER'] = 'static/images'
    file = request.files.get('imgpath')
    extension = os.path.splitext(file.filename)[1]
    f_name = str(uuid.uuid4()) + extension #encoding the image name + adding extension like jpg, png etc.
    file.save(os.path.join(app.config['UPLOAD_FOLDER'], f_name)) #saving the image to static/images
    event = Event(
        form.name.data,
        form.genre.data,
        form.venue.data,
        form.location.data,
        form.date.data,
        form.starttime.data,
        form.endtime.data,
        "static/images/"+f_name,
        User.query.filter_by(username=session['username']).first(),
        form.price.data,
        form.quantity.data)
   
    db.session.add(event)
    db.session.commit()
    return redirect(url_for('index'))
  return render_template('event/sell.html',form=form)
Ejemplo n.º 40
0
	def setUp(self):
		self.k = Kingdom()
		self.k.save()

		self.c = EventCategory(
			frequency=1,
			timeout=1,
		)
		self.c.save()

		self.e = Event(
			name="Event 1",
			slug="event_1",
			category=self.c,
			text="Event 1",
			on_fire=""
		)
		self.e.save()

		self.a = EventAction(
			event=self.e,
			text="some text",
			on_fire="",
		)
		self.a.save()
Ejemplo n.º 41
0
 def html_string(self):
     try:
         return mark_safe(Event.generate_html_string_for(self.events, self.reading_user))
     except:
         import traceback
         logger.warning(traceback.format_exc())
         return "<<ERROR>>"
Ejemplo n.º 42
0
def inform_account_about_events_with_tag_with_email(account, events,
                                                    tags_in_venues):
    if account.in_the_loop_email:
        featured_events = Event.featured_events_for_region(
            account.native_region)[:4]

        similar_events = find_similar_events(events)

        subject = "New Events in cityfusion"

        message = render_to_string(
            'accounts/emails/in_the_loop_email.html', {
                "featured_events": featured_events,
                "events": events,
                "similar_events": similar_events,
                "STATIC_URL": "/static/",
                "site": "http://%s" % Site.objects.get_current().domain,
                "tags_in_venues": tags_in_venues,
                "advertising_region": account.advertising_region,
            })

        try:
            msg = EmailMessage(subject, message, "*****@*****.**",
                               [account.in_the_loop_email])

            msg.content_subtype = 'html'
            msg.send()
        except:
            logger.error("Invalid email %s" % account.in_the_loop_email)

        return message
    else:
        return ""
Ejemplo n.º 43
0
def inform_account_about_events_with_tag_with_email(account, events, tags_in_venues):
    featured_events = Event.featured_events_for_region(account.native_region)[:4]

    similar_events = find_similar_events(events)

    subject = "New Events in cityfusion"

    message = render_to_string(
        "accounts/emails/in_the_loop_email.html",
        {
            "featured_events": featured_events,
            "events": events,
            "similar_events": similar_events,
            "STATIC_URL": "/static/",
            "site": "http://%s" % Site.objects.get_current().domain,
            "tags_in_venues": tags_in_venues,
            "advertising_region": account.advertising_region,
        },
    )

    msg = EmailMessage(subject, message, "*****@*****.**", [account.in_the_loop_email])

    msg.content_subtype = "html"

    msg.send()

    return message
Ejemplo n.º 44
0
def remind_account_about_events_with_email(account, single_events):
    if account.reminder_email:
        featured_events = Event.featured_events_for_region(
            account.native_region)[0:4]

        similar_events = find_similar_events(
            Event.future_events.filter(
                id__in=single_events.values_list("event_id", flat=True)))

        subject = "Upcoming events from cityfusion"

        message = render_to_string(
            'accounts/emails/reminder_email.html', {
                "featured_events": featured_events,
                "events": single_events,
                "similar_events": similar_events,
                "STATIC_URL": "/static/",
                "advertising_region": account.advertising_region,
                "site": "http://%s" % Site.objects.get_current().domain
            })

        try:
            msg = EmailMessage(subject, message, "*****@*****.**",
                               [account.reminder_email])
            msg.content_subtype = 'html'
            msg.send()
        except:
            logger.error("Invalid email %s" % account.reminder_email)

        return message

    else:
        return ""
Ejemplo n.º 45
0
def remind_account_about_deleted_events_with_email(account, single_events):
    if account.reminder_email:
        featured_events = Event.featured_events_for_region(
            account.native_region)[:4]
        subject = 'Deleted events from cityfusion'

        message = render_to_string(
            'accounts/emails/reminder_deleted_event_email.html', {
                "featured_events": featured_events,
                "events": single_events,
                "STATIC_URL": "/static/",
                "advertising_region": account.advertising_region,
                "site": "http://%s" % Site.objects.get_current().domain
            })

        try:
            msg = EmailMessage(subject, message, "*****@*****.**",
                               [account.reminder_email])
            msg.content_subtype = 'html'
            msg.send()
        except:
            logger.error("Invalid email %s" % account.reminder_email)

        return message

    else:
        return ""
Ejemplo n.º 46
0
def remind_account_about_events_with_email(account, single_events):
    featured_events = Event.featured_events_for_region(account.native_region)

    similar_events = find_similar_events(
        Event.future_events.filter(id__in=single_events.values_list("event_id", flat=True))
    )

    subject = "Upcoming events from cityfusion"

    message = render_to_string(
        "accounts/emails/reminder_email.html",
        {
            "featured_events": featured_events,
            "events": single_events,
            "similar_events": similar_events,
            "STATIC_URL": "/static/",
            "advertising_region": account.advertising_region,
            "site": "http://%s" % Site.objects.get_current().domain,
        },
    )

    msg = EmailMessage(subject, message, "*****@*****.**", [account.reminder_email])
    msg.content_subtype = "html"
    msg.send()

    return message
Ejemplo n.º 47
0
def make_event(title="event_title",
               state=Event.APPROVED,
               manager=None,
               assos=None,
               address=None,
               start=None,
               end=None,
               premium=False,
               ticket_deadline=None,
               image=Event._meta.get_field('image').get_default(),
               see_remaining=False):
    if assos is None:
        assos = manager.assos_id if manager is not None else \
                    create_association()
    address = create_address() if address is None else address
    start = create_date_time(days=1) if start is None else start
    end = start + datetime.timedelta(hours=5) if end is None else end
    return Event(title=title,
                 event_state=state,
                 manager_id=manager,
                 assos_id=assos,
                 address_id=address,
                 start=start,
                 end=end,
                 premium_flag=premium,
                 ticket_deadline=ticket_deadline,
                 image=image,
                 see_remaining=see_remaining)
Ejemplo n.º 48
0
def creating_post_save_event(instance, created=False, *args, **kwargs):
    if not created and instance.text != instance.text_was:
        instance.text_was = instance.text
        event = Event(author=instance.author, text=instance.get_title_for_updated_event())
        event.save()

    if created:
        event = Event(author=instance.author, text=instance.get_title_for_event())
        event.save()
Ejemplo n.º 49
0
def saving_eventable_model(instance, created=False, **kwaegs):

    if created:
        e = Event()
        e.title = instance.get_event_title()
        e.author = instance.get_author()
        e.content_type = ContentType.objects.get_for_model(instance)
        e.object_id = instance.id
        e.save()
Ejemplo n.º 50
0
def create(request):
    if request.method == 'POST':
        form = EventCreateForm(request.POST)
        if form.is_valid():
            playgroup = form.cleaned_data['playgroup']
            event = Event(playgroup=playgroup, name=form.cleaned_data['name'], date=form.cleaned_data['date'])
            event.save()
            for member in playgroup.members.all():
                invitation = Invitation(event=event, member=member)
                invitation.save()
            messages.success(f'{event} created successfully.')
            return HttpResponseRedirect(reverse('event:thanks'))
    else:
        form = EventCreateForm()
    return render(request, 'event/create.html', {
        'form': form,
    })
Ejemplo n.º 51
0
 def html_string(self):
     try:
         return mark_safe(
             Event.generate_html_string_for(self.events, self.reading_user))
     except:
         import traceback
         logger.warning(traceback.format_exc())
         return "<<ERROR>>"
Ejemplo n.º 52
0
    def test_delete_job(self):
        """ Test delete_job(job_id) """

        e1 = Event(
                name="Software Conference",
                start_date="2012-10-22",
                end_date="2012-10-25"
                )

        e1.save()

        j1 = Job(
                name="Software Developer",
                start_date="2012-10-22",
                end_date="2012-10-23",
                description="A software job",
                event=e1
                )

        j2 = Job(
                name="Systems Administrator",
                start_date="2012-9-1",
                end_date="2012-10-26",
                description="A systems administrator job",
                event=e1
                )

        j3 = Job(
                name="Project Manager",
                start_date="2012-1-2",
                end_date="2012-2-2",
                description="A management job",
                event=e1
                )

        j1.save()
        j2.save()
        j3.save()

        # test typical cases
        self.assertTrue(delete_job(j1.id))
        self.assertTrue(delete_job(j2.id))
        self.assertTrue(delete_job(j3.id))
        self.assertFalse(delete_job(100))
        self.assertFalse(delete_job(200))
        self.assertFalse(delete_job(300))
Ejemplo n.º 53
0
 def post(self):
     latitude = self.request.POST.get('latitiude')
     longitude = self.request.POST.get('longitude')
     events = Event.query()
     events = list(events)
     response_dict = json.dumps({'events': events})
     self.response.headers['Content-Type'] = 'application/json'
     return self.response.out.write(response_dict)
Ejemplo n.º 54
0
    def handle(self, *args, **options):
        for i in range(50):
            name = name_generator()
            slug = name
            date = date_generator()
            category = category_generator()
            location = location_generator()
            free = is_free()

            event = Event(name=name,
                          slug=slug,
                          date=date,
                          category=category,
                          location=location,
                          free=free)
            event.save()

        self.stdout.write(self.style.SUCCESS("event created successfully!"))
Ejemplo n.º 55
0
    def post(self, request, *args, **kwargs):
        form_class = self.get_form_class()
        form = self.get_form(form_class)

        event = Event()
        if form.is_valid():
            event.contact = form.cleaned_data['contact']
            event.date = form.cleaned_data['date']
            event.note = form.cleaned_data['note']
            event.status = form.cleaned_data['status']
            event.user = self.request.user
            event.save()
            return HttpResponseRedirect('/')
        else:
            return render(request, self.template_name, {'form': form})
Ejemplo n.º 56
0
    def test_get_jobs_ordered_by_title(self):

        e1 = Event(name = "Software Conference",
                start_date = "2012-10-22",
                end_date = "2012-10-25")

        e1.save()

        j1 = Job(name = "Software Developer",
                start_date = "2012-10-22",
                end_date = "2012-10-23",
                description = "A software job",
                event = e1)

        j2 = Job(name = "Systems Administrator",
                start_date = "2012-9-1",
                end_date = "2012-10-26",
                description = "A systems administrator job",
                event = e1)

        j3 = Job(name = "Project Manager",
                start_date = "2012-1-2",
                end_date = "2012-2-2",
                description = "A management job",
                event = e1)

        j1.save()
        j2.save()
        j3.save()       
                    
        #test typical case
        job_list = get_jobs_ordered_by_title()
        self.assertIsNotNone(job_list)
        self.assertNotEqual(job_list, False)
        self.assertEqual(len(job_list), 3)
        self.assertIn(j1, job_list)
        self.assertIn(j2, job_list)
        self.assertIn(j3, job_list)

        #test order
        self.assertEqual(job_list[0].name, j3.name)
        self.assertEqual(job_list[1].name, j1.name)
        self.assertEqual(job_list[2].name, j2.name)
Ejemplo n.º 57
0
def explore(event_page_number=1):
    place = request.args.get('place')
    try:
        lng = float(request.args.get('lng'))
        lat = float(request.args.get('lat'))
        events = Event.objects(location__near=[lng, lat], location__max_distance=10000,
                               cancel=False).order_by('-start_datetime').paginate(page=event_page_number, per_page=4)
        return render_template('event/explore.html', events=events, place=place, lng=lng, lat=lat)
    except:
        return render_template('event/explore.html', place=place)
Ejemplo n.º 58
0
 def test_is_running(self):
     now = timezone.now()
     event = Event(title="Test running",
                   description="Test Event running",
                   start_time=now - timedelta(hours=1),
                   end_time=now + timedelta(hours=1))
     self.assertTrue(event.is_running())
     event = Event(title="Test future",
                   description="Test Event not running yet",
                   start_time=now + timedelta(hours=1),
                   end_time=now + timedelta(hours=2))
     self.assertFalse(event.is_running())
     event = Event(title="Test past",
                   description="Test Event not running anymore",
                   start_time=now - timedelta(hours=2),
                   end_time=now - timedelta(hours=1))
     self.assertFalse(event.is_running())
Ejemplo n.º 59
0
 def setUp(self):
     self.client = Client()
     self.factory = RequestFactory()
     self.event = Event(type_id=2,
                        title="test_title",
                        created_by_id=8,
                        created_at="2014-03-26 15:33:06",
                        reporter_name="test_reporter_name",
                        reporter_phone_number="12345",
                        postal_code="654321",
                        address="test_address")
     self.client.login(username="******", password="******")