Exemple #1
0
    def setup_test_events(self):

        for mod in MODS:
            e = Event()
            e.title = "Test event %s" % (mod,)
            e.date = timezone.now()
            e.mod = mod
            e.user = User.objects.get(username='******')
            default_configs[mod].user = User.objects.get(username='******')
            default_configs[mod].save()
            e.config = default_configs[mod]
            e.save()
Exemple #2
0
def ensure_next_after_previous(state, kind, organisation, title, periodicity, minimum_from_today, acceptable_weekdays=range(7), number=1, time=None, locations=[]):
    events = Event.objects.filter(organisation=organisation, date__gte=date.today())

    # there are already events ready, don't do anything
    if events.exists():
        print "events already exists, don't do anything"
        return

    minimum_from_today_absolute = date.today() + timedelta(**minimum_from_today)

    previous_event_date = Event.objects.order_by('-date')

    periodicity = timedelta(**periodicity)

    if previous_event_date.exists():
        previous_event_date = previous_event_date.first().date
        candidate_date = previous_event_date + periodicity
    else:
        previous_event_date = None
        candidate_date = date.today() + timedelta(**minimum_from_today)

    while candidate_date < minimum_from_today_absolute:
        candidate_date += periodicity

    number_this_year = Event.objects.filter(organisation=organisation, kind=kind, date__year=date.today().year).count() + 1

    for i in range(number):
        while candidate_date.weekday() not in acceptable_weekdays:
            candidate_date += timedelta(days=1)

        event = Event()
        event.state = state
        event.organisation = organisation
        event.kind = kind
        event.date = candidate_date

        event.title = Template(title).render(Context({
            "event": event,
            "number_this_year": number_this_year,
        }))

        print "Creating a new event '%s' for %s on %s state %s" % (event.title, organisation, candidate_date.strftime("%F"), state)

        if time:
            event.time = datetime.time(**time)

        event.save()

        candidate_date += timedelta(days=1)
Exemple #3
0
 def setUp(self):
     self.user = User.objects.create_user('alice', '*****@*****.**', 'swordfish')
     self.now = datetime.datetime.utcnow().replace(tzinfo=utc)
     self.timedelta = datetime.timedelta(15)
     author = User.objects.get(pk=1)
     for count in range(1, 11):
         post = Event(title="Game %d Title" % count,
                      description="foo",
                      creator=author)
         if count < 6:
             # publish the first five posts
             pubdate = self.now - self.timedelta * count
             post.published_date = pubdate
             post.date = self.now + datetime.timedelta(days=1)
             post.tags = 'testy'
         post.save()
Exemple #4
0
    def handle(self, *args, **options):

        with open('E:/moviews_scrapy/events.json') as f:
            events = json.load(f)

            for event in events:
                event_object = Event()
                event_object.title = event['title']
                event_object.date = event['date']
                event_object.description = event['description']
                event_object.category = event['category']
                event_object.runtime = event['runtime']
                event_object.image_url = event['images'][0]['path']

                event_object.save()

        self.stdout.write(self.style.SUCCESS('Sucessfully Imported Events'))
Exemple #5
0
    def import_to_db(self):

        #project_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
        #print(project_dir)
        sys.path.append(self.project_dir)
        os.environ['DJANGO_SETTINGS_MODULE'] = 'event_placement.settings.production'

        import django
        django.setup()
        from events.models import Event, Platform


        place_code = re.search(r'[^\/|\\|fb_]+(?=_events)', self.path).group()
        platform_name = self.PLATFORM_NAMES[place_code]
        print(platform_name)
        # pass

        with open(self.path, encoding="utf-8", newline='') as dictfile:
            ev_dict = ast.literal_eval(dictfile.read())
        i = 0
        for lang, value in ev_dict.items():

            for ev_value in value.values():
                # print(ev_value['link'])
                # print(ev_value['name'])
                # print(ev_value['date'])

                event = Event()
                event.platform = Platform.objects.get(
                        name=platform_name
                )
                event.name = html.unescape(ev_value['name'])
                event.link = ev_value['link']
                event.date = ev_value['date']
                event.language = lang
                try:
                    event.save()
                    i += 1
                except Exception as e:
                    pass  # print(e)
        print("added: %s" % i)
        return "'%s': { 'added': '%s' }" % (platform_name, i)
Exemple #6
0
def add_event(request: HttpRequest, event_form: AddEventForm,creating:bool) -> HttpResponse:
    if not event_form.is_valid():
        messages.add_message(request, messages.ERROR, event_form.non_field_errors())
    else:
        try:
            if creating:
                event = Event(name=event_form.cleaned_data['name'],date=event_form.cleaned_data['date'],description=event_form.cleaned_data['description'])
                event.save()
                messages.add_message(request, messages.SUCCESS, "Event Created")
            else:
                event = event_form.instance
                event.name = event_form.cleaned_data['name']
                event.date = event_form.cleaned_data['date']
                event.description = event_form.cleaned_data['description']
                event.save()
                messages.add_message(request, messages.SUCCESS, "Event Updated")
            return redirect(reverse('console:edit'))
        except Exception:
            # logger.exception('Error while creating/updating a user. creating=' + str(creating) + ', req=' + "\n".join(request.readlines()))
            messages.add_message(request, messages.ERROR, 'Sorry, an error occurred, please alert an admin.')
    return None
    'https://graph.facebook.com/' + events_page +
    '?access_token=1705064953059017|e3b4439e3577e83f7f6a095a875f3f74')
events = r.json()

#Vendor.objects.all().delete()
#Event.objects.all().delete()

#Iterate through the events objects and save it if the object isn't
#already in the database.
for event in events['data']:
    if not Event.objects.filter(
            event_id=event['id'].encode('ascii', 'ignore')):
        event_obj = Event()
        event_obj.name = event['name'].encode('ascii', 'ignore')
        event_obj.event_id = event['id'].encode('ascii', 'ignore')
        event_obj.date = parser.parse(event['start_time'].encode(
            'ascii', 'ignore'))
        event_obj.description = event['description'].encode('ascii', 'ignore')
        event_obj.save()

#Scrape through the vendor site and gather a list of vendor names
vendors_page = requests.get('http://offthegridsf.com/vendors')
vendors_file = html.fromstring(vendors_page.text)
vendors = vendors_file.xpath('//a[@class="otg-vendor-name-link"]/text()')
vendors_list = set()

#Parse the vendor list for duplicate items of the form 'x (1)', 'x (20)'
#by stripping the values and adding it to a set which will not allow duplicates.
for vendor in vendors:
    if "(" in vendor:
        index = vendor.index('(')
        vendor = vendor[0:index]
#Accesses the facebook Graph API and parses the response object.
events_page = 'OffTheGridSF/events'
r = requests.get('https://graph.facebook.com/' + events_page + '?access_token=1705064953059017|e3b4439e3577e83f7f6a095a875f3f74')
events = r.json()

#Vendor.objects.all().delete()
#Event.objects.all().delete()

#Iterate through the events objects and save it if the object isn't 
#already in the database.
for event in events['data']:
	if not Event.objects.filter(event_id=event['id'].encode('ascii','ignore')):
		event_obj = Event()
		event_obj.name = event['name'].encode('ascii','ignore')
		event_obj.event_id = event['id'].encode('ascii','ignore')
		event_obj.date = parser.parse(event['start_time'].encode('ascii','ignore'))
		event_obj.description = event['description'].encode('ascii','ignore')
		event_obj.save()

#Scrape through the vendor site and gather a list of vendor names
vendors_page = requests.get('http://offthegridsf.com/vendors')
vendors_file = html.fromstring(vendors_page.text)
vendors = vendors_file.xpath('//a[@class="otg-vendor-name-link"]/text()')
vendors_list = set()

#Parse the vendor list for duplicate items of the form 'x (1)', 'x (20)'
#by stripping the values and adding it to a set which will not allow duplicates.
for vendor in vendors:
	if "(" in vendor:
		index = vendor.index('(')
		vendor = vendor[0:index]