예제 #1
0
파일: models.py 프로젝트: Josespaul/remo
def create_update_passive_event_report(sender, instance, created, **kwargs):
    """Automatically create/update a passive report on event creation."""
    from remo.events.templatetags.helpers import get_event_link

    attrs = {
        'report_date': instance.start.date(),
        'longitude': instance.lon,
        'latitude': instance.lat,
        'location': "%s, %s, %s" % (instance.city,
                                    instance.region,
                                    instance.country),
        'link': get_event_link(instance),
        'activity_description': instance.description,
        'is_passive': True,
        'event': instance,
        'campaign': instance.campaign,
        'country': instance.country
    }

    if created:
        activity = Activity.objects.get(name=ACTIVITY_EVENT_CREATE)
        attrs.update({'user': instance.owner,
                      'activity': activity})

        NGReport.objects.create(**attrs)
        statsd.incr('reports.create_passive_event')
    else:
        reports = (NGReport.objects.filter(event=instance)
                   .exclude(activity__name=ACTIVITY_POST_EVENT_METRICS))
        reports.update(**attrs)
        # Change user and mentor to the appropriate reports
        attrs.update({'user': instance.owner,
                      'mentor': instance.owner.userprofile.mentor})
        reports.exclude(activity__name=ACTIVITY_EVENT_ATTEND).update(**attrs)
        statsd.incr('reports.update_passive_event')
예제 #2
0
    def save(self, *args, **kwargs):
        """Create post event data report."""
        event = super(PostEventForm, self).save()

        activity = Activity.objects.get(name=ACTIVITY_POST_EVENT_METRICS)
        reports = NGReport.objects.filter(event=event, activity=activity)

        if not reports:
            up = event.owner.userprofile
            attrs = {
                'activity': activity,
                'report_date': get_date(),
                'longitude': up.lon,
                'latitude': up.lat,
                'location': '%s, %s, %s' % (up.city, up.region, up.country),
                'link': get_event_link(event),
                'is_passive': True,
                'event': event,
                'user': event.owner
            }

            report = NGReport.objects.create(**attrs)
            report.functional_areas.add(*event.categories.all())
            statsd.incr('reports.create_passive_post_event_metrics')

        return event
예제 #3
0
파일: models.py 프로젝트: sachithamh/remo
def create_passive_attendance_report(sender, instance, **kwargs):
    """Automatically create a passive report after event attendance save."""
    from remo.events.templatetags.helpers import get_event_link

    if instance.user.groups.filter(name='Rep').exists():
        activity = Activity.objects.get(name=ACTIVITY_EVENT_ATTEND)
        attrs = {
            'user':
            instance.user,
            'event':
            instance.event,
            'activity':
            activity,
            'report_date':
            instance.event.start.date(),
            'longitude':
            instance.event.lon,
            'latitude':
            instance.event.lat,
            'location':
            "%s, %s, %s" % (instance.event.city, instance.event.region,
                            instance.event.country),
            'is_passive':
            True,
            'country':
            instance.event.country,
            'link':
            get_event_link(instance.event),
            'activity_description':
            instance.event.description
        }

        report = NGReport.objects.create(**attrs)
        report.functional_areas.add(*instance.event.categories.all())
        statsd.incr('reports.create_passive_attendance')
예제 #4
0
파일: forms.py 프로젝트: akatsoulas/remo
    def save(self, *args, **kwargs):
        """Create post event data report."""
        event = super(PostEventForm, self).save()

        activity = Activity.objects.get(name=ACTIVITY_POST_EVENT_METRICS)
        reports = NGReport.objects.filter(event=event, activity=activity)

        if not reports:
            up = event.owner.userprofile
            attrs = {
                "activity": activity,
                "report_date": get_date(),
                "longitude": up.lon,
                "latitude": up.lat,
                "location": "%s, %s, %s" % (up.city, up.region, up.country),
                "link": get_event_link(event),
                "is_passive": True,
                "event": event,
                "user": event.owner,
            }

            report = NGReport.objects.create(**attrs)
            report.functional_areas.add(*event.categories.all())
            statsd.incr("reports.create_passive_post_event_metrics")

        return event
예제 #5
0
파일: models.py 프로젝트: sachithamh/remo
def create_update_passive_event_report(sender, instance, created, **kwargs):
    """Automatically create/update a passive report on event creation."""
    from remo.events.templatetags.helpers import get_event_link

    attrs = {
        'report_date':
        instance.start.date(),
        'longitude':
        instance.lon,
        'latitude':
        instance.lat,
        'location':
        "%s, %s, %s" % (instance.city, instance.region, instance.country),
        'link':
        get_event_link(instance),
        'activity_description':
        instance.description,
        'is_passive':
        True,
        'event':
        instance,
        'campaign':
        instance.campaign,
        'country':
        instance.country
    }

    if created:
        activity = Activity.objects.get(name=ACTIVITY_EVENT_CREATE)
        attrs.update({'user': instance.owner, 'activity': activity})

        NGReport.objects.create(**attrs)
        statsd.incr('reports.create_passive_event')
    else:
        reports = (NGReport.objects.filter(event=instance).exclude(
            activity__name=ACTIVITY_POST_EVENT_METRICS))
        reports.update(**attrs)
        # Change user and mentor to the appropriate reports
        attrs.update({
            'user': instance.owner,
            'mentor': instance.owner.userprofile.mentor
        })
        reports.exclude(activity__name=ACTIVITY_EVENT_ATTEND).update(**attrs)
        statsd.incr('reports.update_passive_event')
예제 #6
0
    def test_create(self):
        """Test creating a passive report after creating an event."""
        activity = Activity.objects.get(name=ACTIVITY_EVENT_CREATE)
        owner = UserFactory.create()
        event = EventFactory.create(owner=owner)
        report = NGReport.objects.get(event=event, user=event.owner, activity=activity)

        location = '%s, %s, %s' % (event.city, event.region, event.country)
        eq_(report.mentor, event.owner.userprofile.mentor)
        eq_(report.activity.name, ACTIVITY_EVENT_CREATE)
        eq_(report.latitude, event.lat)
        eq_(report.longitude, event.lon)
        eq_(report.location, location)
        eq_(report.is_passive, True)
        eq_(report.link, get_event_link(event))
        eq_(report.activity_description, event.description)
        self.assertQuerysetEqual(report.functional_areas.all(),
                                 [e.name for e in event.categories.all()],
                                 lambda x: x.name)
예제 #7
0
    def test_owner(self):
        """Test creating a passive attendance report for event owner."""
        activity = Activity.objects.get(name=ACTIVITY_EVENT_ATTEND)
        user = UserFactory.create(groups=['Rep', 'Mentor'],
                                  userprofile__initial_council=True)
        event = EventFactory.create(owner=user)
        report = NGReport.objects.get(event=event, user=user,
                                      activity=activity)

        location = '%s, %s, %s' % (event.city, event.region, event.country)
        eq_(report.mentor, user.userprofile.mentor)
        eq_(report.activity.name, ACTIVITY_EVENT_ATTEND)
        eq_(report.latitude, event.lat)
        eq_(report.longitude, event.lon)
        eq_(report.location, location)
        eq_(report.is_passive, True)
        eq_(report.link, get_event_link(event))
        eq_(report.activity_description, event.description)
        self.assertQuerysetEqual(report.functional_areas.all(),
                                 [e.name for e in event.categories.all()],
                                 lambda x: x.name)
예제 #8
0
    def test_create(self):
        """Test creating a passive report after creating an event."""
        activity = Activity.objects.get(name=ACTIVITY_EVENT_CREATE)
        owner = UserFactory.create()
        event = EventFactory.create(owner=owner)
        report = NGReport.objects.get(event=event,
                                      user=event.owner,
                                      activity=activity)

        location = '%s, %s, %s' % (event.city, event.region, event.country)
        eq_(report.mentor, event.owner.userprofile.mentor)
        eq_(report.activity.name, ACTIVITY_EVENT_CREATE)
        eq_(report.latitude, event.lat)
        eq_(report.longitude, event.lon)
        eq_(report.location, location)
        eq_(report.is_passive, True)
        eq_(report.link, get_event_link(event))
        eq_(report.activity_description, event.description)
        self.assertQuerysetEqual(report.functional_areas.all(),
                                 [e.name for e in event.categories.all()],
                                 lambda x: x.name)
예제 #9
0
    def test_owner(self):
        """Test creating a passive attendance report for event owner."""
        activity = Activity.objects.get(name=ACTIVITY_EVENT_ATTEND)
        user = UserFactory.create(groups=['Rep', 'Mentor'],
                                  userprofile__initial_council=True)
        event = EventFactory.create(owner=user)
        report = NGReport.objects.get(event=event,
                                      user=user,
                                      activity=activity)

        location = '%s, %s, %s' % (event.city, event.region, event.country)
        eq_(report.mentor, user.userprofile.mentor)
        eq_(report.activity.name, ACTIVITY_EVENT_ATTEND)
        eq_(report.latitude, event.lat)
        eq_(report.longitude, event.lon)
        eq_(report.location, location)
        eq_(report.is_passive, True)
        eq_(report.link, get_event_link(event))
        eq_(report.activity_description, event.description)
        self.assertQuerysetEqual(report.functional_areas.all(),
                                 [e.name for e in event.categories.all()],
                                 lambda x: x.name)
예제 #10
0
파일: models.py 프로젝트: Josespaul/remo
def create_passive_attendance_report(sender, instance, **kwargs):
    """Automatically create a passive report after event attendance save."""
    from remo.events.templatetags.helpers import get_event_link

    if instance.user.groups.filter(name='Rep').exists():
        activity = Activity.objects.get(name=ACTIVITY_EVENT_ATTEND)
        attrs = {
            'user': instance.user,
            'event': instance.event,
            'activity': activity,
            'report_date': instance.event.start.date(),
            'longitude': instance.event.lon,
            'latitude': instance.event.lat,
            'location': "%s, %s, %s" % (instance.event.city,
                                        instance.event.region,
                                        instance.event.country),
            'is_passive': True,
            'country': instance.event.country,
            'link': get_event_link(instance.event),
            'activity_description': instance.event.description}

        report = NGReport.objects.create(**attrs)
        report.functional_areas.add(*instance.event.categories.all())
        statsd.incr('reports.create_passive_attendance')