Example #1
0
def event_form(request, object_id, slug):
    topic = get_object_or_404(models.Topic, pk=object_id)
    if request.method == 'POST':
        form = forms.EventForm(topic, request.POST)
        if form.is_valid():
            services.create_event(request.user, topic, form.cleaned_data)
            return redirect(topic)
    else:
        form = forms.EventForm(topic)
    return render(request, 'manopozicija/form.html', {
        'form_name': 'event-form',
        'form_title': ugettext('Naujas įvykis'),
        'forms': [form],
    })
Example #2
0
def event_form(request, object_id, slug):
    topic = get_object_or_404(models.Topic, pk=object_id)
    if request.method == 'POST':
        form = forms.EventForm(topic, request.POST)
        if form.is_valid():
            services.create_event(request.user, topic, form.cleaned_data)
            return redirect(topic)
    else:
        form = forms.EventForm(topic)
    return render(
        request, 'manopozicija/form.html', {
            'form_name': 'event-form',
            'form_title': ugettext('Naujas įvykis'),
            'forms': [form],
        })
Example #3
0
def create_topic_event(topic, user, upvotes, downvotes, title, source, date):
    user = user or UserFactory()
    timestamp = datetime.datetime.strptime(date, '%Y-%m-%d')
    event = services.create_event(user, topic, {
        'type': models.Event.DOCUMENT,
        'title': title,
        'source_link': _get_source_link(source, date),
        'source_title': source,
        'timestamp': timestamp,
    })
    post = event.post.first()
    position = 1 if upvotes > downvotes else -1 if upvotes < downvotes else 0
    services.update_user_position(user, post, position)
    return post
Example #4
0
def create_topic_event(topic, user, upvotes, downvotes, title, source, date):
    user = user or UserFactory()
    timestamp = datetime.datetime.strptime(date, '%Y-%m-%d')
    event = services.create_event(user, topic, {
        'type': models.Event.DOCUMENT,
        'title': title,
        'source_link': _get_source_link(source, date),
        'source_title': source,
        'timestamp': timestamp,
    })
    post = event.post.first()
    position = 1 if upvotes > downvotes else -1 if upvotes < downvotes else 0
    services.update_user_position(user, post, position)
    return post
Example #5
0
    def handle(self, slug, path, **options):
        printer = helpers.Printer(self.stdout, options['verbosity'])
        user = services.get_bot_user('importbot')
        topic = models.Topic.objects.get(slug=slug)
        with open(path) as f:
            posts = yaml.safe_load(f)

        for post in posts:
            if post['type'] == 'event':
                exists = (models.Event.objects.filter(
                    post__topic=topic,
                    source_link=post['event']['source_link']).exists())
                if exists:
                    printer.info('"%s" already exists.' %
                                 post['event']['title'])
                else:
                    form = forms.EventForm(topic, post['event'])
                    if form.is_valid():
                        services.create_event(user, topic, form.cleaned_data)
                        printer.info('"%s" imported.' % post['event']['title'])
                    else:
                        printer.info('Error while importing %r' %
                                     post['event'])
                        printer.info(form.errors.as_text())
Example #6
0
    def handle(self, slug, path, **options):
        printer = helpers.Printer(self.stdout, options['verbosity'])
        user = services.get_bot_user('importbot')
        topic = models.Topic.objects.get(slug=slug)
        with open(path) as f:
            posts = yaml.safe_load(f)

        for post in posts:
            if post['type'] == 'event':
                exists = (
                    models.Event.objects.
                    filter(post__topic=topic, source_link=post['event']['source_link']).
                    exists()
                )
                if exists:
                    printer.info('"%s" already exists.' % post['event']['title'])
                else:
                    form = forms.EventForm(topic, post['event'])
                    if form.is_valid():
                        services.create_event(user, topic, form.cleaned_data)
                        printer.info('"%s" imported.' % post['event']['title'])
                    else:
                        printer.info('Error while importing %r' % post['event'])
                        printer.info(form.errors.as_text())