Пример #1
0
 def decorator(request, *args, **kwargs):
     event = get_event_by_id(kwargs["event_id"])
     user = get_user_profile(request.user.id)
     if user.is_ambassador():
         return func(request, *args, **kwargs)
     else:
         return HttpResponseRedirect(reverse("web.index"))
Пример #2
0
def view_event(request, event_id, slug):
    event = get_event_by_id(event_id)

    return render_to_response('pages/view_event.html', {
        'event': event,
    },
                              context_instance=RequestContext(request))
Пример #3
0
def view_event(request, event_id, slug):
	event = get_event_by_id(event_id)

	return render_to_response(
		'pages/view_event.html', {
			'event': event,
		}, context_instance=RequestContext(request))
Пример #4
0
def edit_event(request, event_id):
    event = get_event_by_id(event_id)
    user = request.user
    initial = get_initial_data(event)
    initial["user_email"] = request.user.email

    event_data = {}

    if request.method == "POST":
        event_form = AddEventForm(data=request.POST, files=request.FILES)
    else:
        event_form = AddEventForm(initial=initial)

    existing_picture = event.picture

    if event_form.is_valid():
        # picture_check works with jasny bootstrap magix
        picture_check = request.POST.get("picture")
        picture = request.FILES.get("picture", None)
        event_data = event_form.cleaned_data
        event_data["creator"] = request.user

        # checking if user entered a different email than in her profile
        if user.email != event_data["user_email"]:
            update_user_email(user.id, event_data["user_email"])
        event_data.pop("user_email")

        try:
            if picture:
                if picture.size > (256 * 1024):
                    raise ImageSizeTooLargeException("Image size too large.")
                event_data["picture"] = process_image(picture)
            elif picture_check == "nochange":
                event_data["picture"] = existing_picture
            else:
                del event_data["picture"]

            create_or_update_event(event_id, **event_data)

            return HttpResponseRedirect(reverse("web.view_event", kwargs={"event_id": event.id, "slug": event.slug}))

        except ImageSizeTooLargeException:
            messages.error(
                request,
                "The image is just a bit too big for us (must be up to 256 kb). "
                "Please reduce your image size and try agin.",
            )
        except UploadImageError as e:
            messages.error(request, e.message)

    return render_to_response(
        "pages/add_event.html",
        {
            "form": event_form,
            "address": event_data.get("location", None),
            "editing": True,
            "picture_url": event.picture,
        },
        context_instance=RequestContext(request),
    )
Пример #5
0
    def test_get_all_events_with_different_statuses(self):
        event = Event.objects.create(organizer='asdasd1',
                                     creator=User.objects.filter(pk=1)[0],
                                     title='asdasd1',
                                     description='asdsad1',
                                     location='asdsad1',
                                     start_date=datetime.datetime.now() -
                                     datetime.timedelta(days=1, hours=3),
                                     end_date=datetime.datetime.now() +
                                     datetime.timedelta(days=3, hours=3),
                                     event_url='http://eee.com',
                                     contact_person='*****@*****.**',
                                     country='SI',
                                     pub_date=datetime.datetime.now())
        theme = EventTheme.objects.filter(pk=1)
        audience = EventAudience.objects.filter(pk=1)
        event.theme.add(*theme)
        event.audience.add(*audience)

        event.status = 'APPROVED'
        event.save()

        self.assertEqual('PENDING', get_event_by_id(1).status)
        self.assertEqual('APPROVED', event.status)

        all_events = get_all_events()
        self.assertEqual(2, all_events.count())
Пример #6
0
	def test_get_all_events_with_different_statuses(self):
		event = Event.objects.create(
			organizer='asdasd1',
			creator=User.objects.filter(pk=1)[0],
			title='asdasd1',
			description='asdsad1',
			location='asdsad1',
			start_date=datetime.datetime.now() - datetime.timedelta(days=1, hours=3),
			end_date=datetime.datetime.now() + datetime.timedelta(days=3, hours=3),
			event_url='http://eee.com',
			contact_person='*****@*****.**',
			country='SI',
			pub_date=datetime.datetime.now())
		theme = EventTheme.objects.filter(pk=1)
		audience = EventAudience.objects.filter(pk=1)
		event.theme.add(*theme)
		event.audience.add(*audience)

		event.status = 'APPROVED'
		event.save()

		self.assertEqual('PENDING', get_event_by_id(1).status)
		self.assertEqual('APPROVED', event.status)

		all_events = get_all_events()
		self.assertEqual(2, all_events.count())
Пример #7
0
 def decorator(request, *args, **kwargs):
     event = get_event_by_id(kwargs['event_id'])
     user = get_user_profile(request.user.id)
     if user.is_ambassador():
         return func(request, *args, **kwargs)
     else:
         return HttpResponseRedirect(reverse('web.index'))
Пример #8
0
def edit_event(request, event_id):
    event = get_event_by_id(event_id)
    user = request.user
    initial = get_initial_data(event)
    initial['user_email'] = request.user.email

    event_data = {}

    if request.method == 'POST':
        event_form = AddEventForm(data=request.POST, files=request.FILES)
    else:
        event_form = AddEventForm(initial=initial)

    existing_picture = event.picture

    if event_form.is_valid():
        # picture_check works with jasny bootstrap magix
        picture_check = request.POST.get('picture')
        picture = request.FILES.get('picture', None)
        event_data = event_form.cleaned_data
        event_data['creator'] = request.user

        # checking if user entered a different email than in her profile
        if user.email != event_data['user_email']:
            update_user_email(user.id, event_data['user_email'])
        event_data.pop('user_email')

        try:
            if picture:
                if picture.size > (256 * 1024):
                    raise ImageSizeTooLargeException('Image size too large.')
                event_data['picture'] = process_image(picture)
            elif picture_check == "nochange":
                event_data['picture'] = existing_picture
            else:
                del event_data['picture']

            create_or_update_event(event_id, **event_data)

            return HttpResponseRedirect(
                reverse(
                    'web.view_event',
                    kwargs={
                        'event_id': event.id,
                        'slug': event.slug}))

        except ImageSizeTooLargeException:
            messages.error(
                request, 'The image is just a bit too big for us (must be up to 256 kb). '
                'Please reduce your image size and try agin.')
        except UploadImageError as e:
            messages.error(request, e.message)

    return render_to_response(
        'pages/add_event.html', {
            'form': event_form,
            'address': event_data.get('location', None),
            'editing': True,
            'picture_url': event.picture,
        }, context_instance=RequestContext(request))
Пример #9
0
def view_event_by_id(request, event_id):
    try:
        event = get_event_by_id(event_id)
    except ObjectDoesNotExist as e:
        raise Http404

    return redirect(view_event, event_id, event.slug)
Пример #10
0
def view_event_by_id(request, event_id):
    try:
        event = get_event_by_id(event_id)
    except ObjectDoesNotExist as e:
        raise Http404

    return redirect(view_event, event_id, event.slug)
Пример #11
0
def edit_event(request, event_id):
    event = get_event_by_id(event_id)
    user = request.user
    initial = get_initial_data(event)
    initial['user_email'] = request.user.email

    event_data = {}

    if request.method == 'POST':
        event_form = AddEventForm(data=request.POST, files=request.FILES)
    else:
        event_form = AddEventForm(initial=initial)

    if event_form.is_valid():
        picture = request.FILES.get('picture', None)
        event_data = event_form.cleaned_data

        event_data['creator'] = request.user

        # checking if user entered a different email than in her profile
        if user.email != event_data['user_email']:
            update_user_email(user.id, event_data['user_email'])
        event_data.pop('user_email')

        try:
            if picture:
                if picture.size > (256 * 1024):
                    raise ImageSizeTooLargeException('Image size too large.')

                event_data['picture'] = process_image(picture)
            else:
                del event_data['picture']

            create_or_update_event(event_id, **event_data)

            return HttpResponseRedirect(
                reverse('web.view_event',
                        kwargs={
                            'event_id': event.id,
                            'slug': event.slug
                        }))

        except ImageSizeTooLargeException:
            messages.error(
                request,
                'The image is just a bit too big for us (must be up to 256 kb). '
                'Please reduce your image size and try agin.')
        except UploadImageError as e:
            messages.error(request, e.message)

    return render_to_response('pages/add_event.html', {
        'form': event_form,
        'address': event_data.get('location', None),
        'editing': True,
        'picture_url': event.picture,
    },
                              context_instance=RequestContext(request))
Пример #12
0
def view_event(request, event_id, slug):
    event = get_event_by_id(event_id)
    next_event = get_next_or_previous(event, country_code=event.country)
    nearby = get_nearby_events(event, limit=10)

    return render_to_response('pages/view_event.html', {
        'event': event,
        'next_event': next_event,
        'nearby': nearby
    },
                              context_instance=RequestContext(request))
Пример #13
0
def view_event(request, event_id, slug):
	event = get_event_by_id(event_id)
	next_event = get_next_or_previous(event, country_code=event.country)
	nearby = get_nearby_events(event, limit=10)

	return render_to_response(
		'pages/view_event.html', {
			'event': event,
			'next_event': next_event,
			'nearby': nearby
		}, context_instance=RequestContext(request))
Пример #14
0
	def test_get_all_events_with_different_statuses(self):
		event = ApprovedEventFactory.create()
		theme = EventTheme.objects.filter(pk=1)
		audience = EventAudience.objects.filter(pk=1)

		event.theme.add(*theme)
		event.audience.add(*audience)
		event.save()

		self.assertEqual('PENDING', get_event_by_id(1).status)
		self.assertEqual('APPROVED', event.status)

		all_events = get_all_events()
		self.assertEqual(2, all_events.count())
Пример #15
0
def view_event(request, event_id, slug):
    try:
        event = get_event_by_id(event_id)
    except ObjectDoesNotExist as e:
        raise Http404

    next_event = get_next_or_previous(event, country_code=event.country)
    nearby = get_nearby_events(event, limit=4)

    return render_to_response(
        "pages/view_event.html",
        {"event": event, "next_event": next_event, "nearby": nearby},
        context_instance=RequestContext(request),
    )
Пример #16
0
    def test_get_all_events_with_different_statuses(self):
        event = ApprovedEventFactory.create()
        theme = EventTheme.objects.filter(pk=1)
        audience = EventAudience.objects.filter(pk=1)

        event.theme.add(*theme)
        event.audience.add(*audience)
        event.save()

        self.assertEqual('PENDING', get_event_by_id(1).status)
        self.assertEqual('APPROVED', event.status)

        all_events = get_all_events()
        self.assertEqual(2, all_events.count())
Пример #17
0
def view_event(request, event_id, slug):
    try:
        event = get_event_by_id(event_id)
    except ObjectDoesNotExist as e:
        raise Http404

    next_event = get_next_or_previous(event, country_code=event.country)
    nearby = get_nearby_events(event, limit=4)

    return render_to_response('pages/view_event.html', {
        'event': event,
        'next_event': next_event,
        'nearby': nearby
    },
                              context_instance=RequestContext(request))
Пример #18
0
def edit_event(request, event_id):
	event = get_event_by_id(event_id)
	initial = get_initial_data(event)

	event_data = {}

	if request.method == 'POST':
		event_form = AddEventForm(data=request.POST, files=request.FILES)
	else:
		event_form = AddEventForm(initial=initial)

	if event_form.is_valid():
		picture = request.FILES.get('picture', None)
		event_data = event_form.cleaned_data

		event_data['creator'] = request.user

		try:
			if picture:
				if picture.size > (256 * 1024):
					raise ImageSizeTooLargeException('Image size too large.')

				event_data['picture'] = process_image(picture)
			else:
				del event_data['picture']

			create_or_update_event(event_id, **event_data)

			return HttpResponseRedirect(reverse('web.view_event',
			                                    kwargs={'event_id': event.id, 'slug': event.slug}))

		except ImageSizeTooLargeException:
			messages.error(request, 'The image is just a bit too big for us (must be up to 256 kb). '
			                        'Please reduce your image size and try agin.')
		except UploadImageError as e:
			messages.error(request, e.message)
		
	return render_to_response(
		'pages/add_event.html', {
			'form': event_form,
			'address': event_data.get('location', None),
			'editing': True,
			'picture_url': event.picture,
		}, context_instance=RequestContext(request))
Пример #19
0
def report_event(request, event_id):
    event = get_event_by_id(event_id)
    user = request.user
    initial = get_initial_data(event)
    initial['name_for_certificate'] = event.organizer
    event_report_fields = OrderedDict()

    if request.method == 'POST':
        report_event_form = ReportEventForm(data=request.POST)
    else:
        report_event_form = ReportEventForm(initial=initial)

    if event.is_reporting_allowed():
        if report_event_form.is_valid():
            event_data = report_event_form.cleaned_data

            event.__dict__.update(event_data)
            event.reported_at = datetime.now()
            event.save()

            if generate_certificate_for(event.pk,
                                        event.certificate_file_name(),
                                        event.name_for_certificate):
                event.certificate_generated_at = datetime.now()
                event.save()

            return HttpResponseRedirect(
                reverse('web.view_event',
                        kwargs={
                            'event_id': event.id,
                            'slug': event.slug
                        }))
    else:
        for field_name, field in report_event_form.fields.items():
            event_report_fields[field.label] = initial[field_name]

    return render_to_response('pages/report_event.html', {
        'form': report_event_form,
        'event': event,
        'event_report_fields': event_report_fields,
    },
                              context_instance=RequestContext(request))
Пример #20
0
def report_event(request, event_id):
    event = get_event_by_id(event_id)
    user = request.user
    initial = get_initial_data(event)
    initial['name_for_certificate'] = event.organizer
    event_report_fields = OrderedDict()

    if request.method == 'POST':
        report_event_form = ReportEventForm(data=request.POST)
    else:
        report_event_form = ReportEventForm(initial=initial)

    if event.is_reporting_allowed():
        if report_event_form.is_valid():
            event_data = report_event_form.cleaned_data

            event.__dict__.update(event_data)
            event.reported_at = datetime.now()
            event.save()

            if generate_certificate_for(event.pk, event.certificate_file_name(), event.name_for_certificate):
                event.certificate_generated_at = datetime.now()
                event.save()

            return HttpResponseRedirect(
                reverse(
                    'web.view_event',
                    kwargs={
                        'event_id': event.id,
                        'slug': event.slug}))
    else:
        for field_name, field in report_event_form.fields.items():
            event_report_fields[field.label] = initial[field_name]

    return render_to_response(
        'pages/report_event.html', {
            'form': report_event_form,
            'event': event,
            'event_report_fields': event_report_fields,
        }, context_instance=RequestContext(request))
Пример #21
0
 def decorator(request, *args, **kwargs):
     event = get_event_by_id(kwargs['event_id'])
     if request.user.id == event.creator.id:
         return func(request, *args, **kwargs)
     else:
         return HttpResponseRedirect(reverse('web.index'))
 def test_get_event(self):
     test_event = Event.objects.get(title="asdasd")
     self.assertEqual(test_event, get_event_by_id(event_id=1))
Пример #23
0
 def test_get_event_by_id_ok(self):
     test_event = get_event_by_id(1)
     self.assertEqual(1, test_event.pk)
Пример #24
0
 def test_get_event_by_id_without_id(self):
     with self.assertRaises(TypeError):
         test_event = get_event_by_id()
Пример #25
0
	def test_get_event_by_id_ok(self):
		test_event = get_event_by_id(1)
		self.assertEqual(1, test_event.pk)
Пример #26
0
	def test_get_event_by_id_without_id(self):
		with self.assertRaises(TypeError):
			test_event = get_event_by_id()
Пример #27
0
 def decorator(request, *args, **kwargs):
     event = get_event_by_id(kwargs["event_id"])
     if request.user.id == event.creator.id:
         return func(request, *args, **kwargs)
     else:
         return HttpResponseRedirect(reverse("web.index"))
Пример #28
0
	def test_get_event(self):
		test_event = Event.objects.get(title="asdasd")
		self.assertEqual(test_event, get_event_by_id(event_id=1))