Beispiel #1
0
def add_term(request):
    #tp = 'entrez/entrez_add_term.html'
    form_class = AddTermForm
    if request.method == 'POST':
        form = form_class(request.POST)

        #if form.is_valid():
        #    term = EntrezTerm.objects.create(
        #        name=form.cleaned_data["name"],
                #slug=form.cleaned_data["slug"],
        #        db=form.cleaned_data["db"],
        #        period=form.cleaned_data["period"],
        #        owner=request.user,
        #        term=form.cleaned_data["term"],
        #        creation_date=get_current_date(),
        #        lastedit_date=get_current_date(),
        #    )
        #    term.save()

        if form.is_valid():
            term = form.save(commit=False)
            print term.name
            term.slug = slugify(term.name)
            print term.slug
            term.creation_date = term.lastedit_date = get_current_date()
            term.owner = request.user
            term.save()

        return app_reverse('entrez-index', 'entrez.urls')

    return app_reverse('entrez-index', 'entrez.urls')
Beispiel #2
0
def create_preapproval(pledge):
    site = Site.objects.get_current()

    url = PP_API_URL + '/AdaptivePayments/Preapproval'

    data = {
        'returnUrl': 'http://%s%s' % (site,
            app_reverse('zipfelchappe_pledge_thankyou', ROOT_URLS)),
        'cancelUrl': 'http://%s%s' % (site,
            app_reverse('zipfelchappe_pledge_cancel', ROOT_URLS)),
        'ipnNotificationUrl': 'http://%s%s' % (site,
            reverse('zipfelchappe_paypal_ipn')),
        'currencyCode': pledge.currency,
        'maxNumberOfPayments': 1,
        'maxTotalAmountOfAllPayments': unicode(pledge.amount),
        'displayMaxTotalAmount': True,
        'startingDate': zuluTimeFormat(datetime.utcnow()),
        'endingDate': zuluTimeFormat(pledge.project.end),
        'memo': pledge.project.title,
        'pinType': 'NOT_REQUIRED',
        "requestEnvelope": {'errorLanguage': 'en_US'},
    }

    logger.debug('ipn url %s' % data['ipnNotificationUrl'])

    response = requests.post(url, headers=PP_REQ_HEADERS, data=json.dumps(data))

    return response
Beispiel #3
0
    def test_user_stays_logged_in_on_reload_before_payment(self):
        """ Here the user backs a project and then returns to the backing page before
            the payment process is completed.
        """
        self.client.login(username=self.user, password='******')
        session_id = self.client.cookies['sessionid'].value
        response = self.client.get(self.project1.get_absolute_url())
        self.assertEqual(200, response.status_code)
        self.assertEqual(self.client.cookies['sessionid'].value, session_id)
        back_url = app_reverse('zipfelchappe_backer_create',
                               app_settings.ROOT_URLS,
                               kwargs={"slug": self.project1.slug})
        authenticate_url = app_reverse('zipfelchappe_backer_authenticate',
                                       app_settings.ROOT_URLS)
        payment_url = reverse('zipfelchappe_paypal_payment')
        thank_you_url = app_reverse('zipfelchappe_pledge_thankyou',
                                    app_settings.ROOT_URLS)
        backed_url = app_reverse('zipfelchappe_project_backed',
                                 app_settings.ROOT_URLS,
                                 kwargs={'slug': self.project1.slug})
        response = self.client.get(back_url)
        self.assertEqual(200, response.status_code)
        self.assertEqual(self.client.cookies['sessionid'].value, session_id)

        response = self.client.post(
            back_url, {
                'project': self.project1.id,
                'amount': '20',
                'reward': self.reward.id,
                'provider': 'paypal',
                'accept_tac': True
            })
        self.assertRedirect(response, authenticate_url)
        self.assertEqual(self.client.cookies['sessionid'].value, session_id)

        response = self.client.get(authenticate_url)
        self.assertRedirect(response, payment_url)
        self.assertEqual(self.client.cookies['sessionid'].value, session_id)

        response = self.client.get(payment_url)
        self.assertEqual(200, response.status_code)
        self.assertEqual(self.client.cookies['sessionid'].value, session_id)

        # back again
        response = self.client.get(back_url)
        self.assertEqual(200, response.status_code)
        self.assertEqual(self.client.cookies['sessionid'].value, session_id)

        response = self.client.post(
            back_url, {
                'project': self.project1.id,
                'amount': '20',
                'reward': self.reward.id,
                'provider': 'paypal',
                'accept_tac': True
            })
        self.assertRedirect(response, authenticate_url)
        self.assertEqual(self.client.cookies['sessionid'].value, session_id)
Beispiel #4
0
    def test_user_stays_logged_in(self):
        self.client.login(username=self.user, password='******')
        session_id = self.client.cookies['sessionid'].value
        response = self.client.get(self.project1.get_absolute_url())
        self.assertEqual(200, response.status_code)
        self.assertEqual(self.client.cookies['sessionid'].value, session_id)
        back_url = app_reverse('zipfelchappe_backer_create', app_settings.ROOT_URLS,
                               kwargs={"slug": self.project1.slug})
        authenticate_url = app_reverse('zipfelchappe_backer_authenticate', app_settings.ROOT_URLS)
        payment_url = reverse('zipfelchappe_paypal_payment')
        thank_you_url = app_reverse('zipfelchappe_pledge_thankyou', app_settings.ROOT_URLS)
        backed_url = app_reverse('zipfelchappe_project_backed', app_settings.ROOT_URLS,
                                 kwargs={'slug': self.project1.slug})
        response = self.client.get(back_url)
        self.assertEqual(200, response.status_code)
        self.assertEqual(self.client.cookies['sessionid'].value, session_id)

        response = self.client.post(back_url, {
            'project': self.project1.id,
            'amount': '20',
            'reward': self.reward.id,
            'provider': 'paypal',
            'accept_tac': True
        })
        self.assertRedirect(response, authenticate_url)
        self.assertEqual(self.client.cookies['sessionid'].value, session_id)

        response = self.client.get(authenticate_url)
        self.assertRedirect(response, payment_url)
        self.assertEqual(self.client.cookies['sessionid'].value, session_id)

        response = self.client.get(payment_url)
        self.assertEqual(200, response.status_code)
        self.assertEqual(self.client.cookies['sessionid'].value, session_id)

        response = self.client.get(thank_you_url)
        self.assertRedirect(response, backed_url)
        self.assertEqual(self.client.cookies['sessionid'].value, session_id)

        response = self.client.get(backed_url)
        self.assertEqual(200, response.status_code)
        self.assertEqual(self.client.cookies['sessionid'].value, session_id)

        # back again
        response = self.client.get(back_url)
        self.assertEqual(200, response.status_code)
        self.assertEqual(self.client.cookies['sessionid'].value, session_id)

        response = self.client.post(back_url, {
            'project': self.project1.id,
            'amount': '20',
            'reward': self.reward.id,
            'provider': 'paypal',
            'accept_tac': True
        })
        self.assertRedirect(response, authenticate_url)
        self.assertEqual(self.client.cookies['sessionid'].value, session_id)
Beispiel #5
0
def create_payment(preapproval):
    site = Site.objects.get_current()

    pledge = preapproval.pledge

    url = PP_API_URL + '/AdaptivePayments/Pay'

    receivers = []

    if not settings.PAYPAL['RECEIVERS']:
        # TODO: do this on Project save as well.
        raise ImproperlyConfigured(_('No paypal receivers defined!'))
    receivers = [r.copy() for r in settings.PAYPAL['RECEIVERS']]

    for receiver in receivers:
        amount = pledge.amount * Decimal(str(receiver['percent'] / 100.00))
        receiver.update({'amount': unicode(amount.quantize(Decimal('.01')))})
        del receiver['percent']

    data = {
        'actionType':
        'PAY',
        'returnUrl':
        'http://%s%s' %
        (site, app_reverse('zipfelchappe_pledge_thankyou',
                           settings.ROOT_URLS)),
        'cancelUrl':
        'http://%s%s' %
        (site, app_reverse('zipfelchappe_pledge_cancel', settings.ROOT_URLS)),
        'ipnNotificationUrl':
        'http://%s%s' % (site, reverse('zipfelchappe_paypal_ipn')),
        'currencyCode':
        pledge.currency,
        'preapprovalKey':
        preapproval.key,
        'receiverList': {
            'receiver': receivers
        },
        'reverseAllParallelPaymentsOnError':
        True,
        'feesPayer':
        'EACHRECEIVER',
        'memo':
        pledge.project.title,
        "requestEnvelope": {
            "errorLanguage": "en_US"
        },
    }

    return requests.post(url, headers=PP_REQ_HEADERS, data=json.dumps(data))
Beispiel #6
0
def forum_post_thread(request, forum_id=None, topic_id=None,
    form_class=NewPostForm, tpl='forum/forum_post_thread.html'):
    """add a new threads which need sign in as a member by default"""
    qpost = topic = forum = first_post = preview = None
    show_subject_fld = True
    post_type = _(u'topic')
    if forum_id:
        forum = get_object_or_404(Forum, pk=forum_id)
    if topic_id:
        post_type = _(u'reply')
        topic = get_object_or_404(Topic, pk=topic_id)
        forum = topic.forum
        topic.num_replies += 1
        #first_post = topic.post_set.order_by('created_on').select_related()[0]
        show_subject_fld = False
    if request.method == "POST":
        if topic is not None:
            topic.save()
        form = form_class(request.POST, user=request.user, forum=forum,
            topic=topic, ip=request.META['REMOTE_ADDR'])
        preview = request.POST.get('preview', '')
        if form.is_valid() and request.POST.get('submit', ''):
            post = form.save()
            if topic:
                #return HttpResponseRedirect(post.get_absolute_url_ext())
                return HttpResponseRedirect(app_reverse('forum-topic', 'pows.apps.forum.urls', kwargs={'topic_id': topic.pk, }))
            else:
                #return HttpResponseRedirect(reverse("forum-forum", args=[forum.slug]))
                return HttpResponseRedirect(app_reverse('forum-forum', 'pows.apps.forum.urls', args=[forum.slug]))
    else:
        initial = {}
        qid = request.GET.get('qid', '')
        if qid:
            qpost = get_object_or_404(Post, id=qid)
            initial['message'] = "[quote=%s]%s[/quote]" % (qpost.posted_by.username, qpost.message)
        form = form_class(initial=initial)
    extend_context = {
        'forums': forums(),
        'forum': forum,
        'form': form,
        'topic': topic,
        #'first_post': first_post,
        'post_type': post_type,
        'preview': preview,
        'show_subject_fld': show_subject_fld,
    }
    #extend_context['unpublished_attachments'] = request.user.attachment_set.all().filter(activated=False)
    extend_context['is_new_post'] = True
    return render_to_response(tpl, extend_context, RequestContext(request))
Beispiel #7
0
def pathways_pathway_url_app(self):
    from feincms.content.application.models import app_reverse
    return app_reverse('pathway_detail',
                       'pathways.urls',
                       kwargs={
                           'slug': self.slug,
                       })
Beispiel #8
0
def comment_post(request, id):
    form_class = CommentForm
    post = Post.objects.select_related().get(id=id)
    if request.method == 'POST':
        form = form_class(request.POST)
        if form.is_valid():
            comment = Post.objects.create(
                author=request.user,
                content=form.cleaned_data['content'],
                title=post.title + '\'s comment by ' + request.user.username,
                parent=post,
                creation_date=timezone.now(),
                lastedit_date=timezone.now(),
                lastedit_user=request.user,
                type=3
            )
            tags = post.tags.all()
            for tag in tags:
                comment.tags.add(tag)
            comment.save()

            return HttpResponseRedirect(app_reverse("ask-detail", 'ask.urls'))

        else:
            return 'ask/ask_detail.html', {'form_errors': form.errors}
Beispiel #9
0
def reply_question(request, id):
    form_class = AnswerForm
    post = Post.objects.select_related().get(id=id)
    if request.method == 'POST':
        form = form_class(request.POST)
        if form.is_valid():
            answer = Post.objects.create(
                author=request.user,
                content=form.cleaned_data['content'],
                title=post.title + '\'s answer by ' + request.user.username,
                parent=Post.objects.select_related().get(id=id),
                creation_date=timezone.now(),
                lastedit_date=timezone.now(),
                lastedit_user=request.user,
                type=2
            )
            tags = form.cleaned_data['tags'].replace(u',', ',').replace(' ', '').split(',')
            for tag in tags:
                answer.tags.add(tag)
            answer.save()

            return HttpResponseRedirect(app_reverse("ask-detail", 'ask.urls', args=id))
        else:
            return 'ask/ask_new_post.html', {
                'form_error': form.errors,
                'q': post,
                'nodes': post.get_descendants().select_related(),
                'tags': tag_list(),
                'form': form_class(),
            }
    else:
        form = form_class()

    return 'ask/ask_new_post.html', {'form': form}
def videochannel_url_app(self):
    from feincms.content.application.models import app_reverse
    return app_reverse('videoch-detail',
                       'videochannel.urls',
                       kwargs={
                           'slug': self.slug,
                       })
Beispiel #11
0
def elephantblog_categorytranslation_url_app(self):
    from feincms.content.application.models import app_reverse
    return app_reverse('elephantblog_category_detail',
                       'elephantblog.urls',
                       kwargs={
                           'slug': self.slug,
                       })
Beispiel #12
0
 def children(self, page, **kwargs):
     for entry in Entry.objects.all():
         yield PagePretender(
             title=entry.title,
             url=app_reverse('blog_entry_details', 'blog_urls', kwargs={'pk': entry.id}),
             level=page.level + 1,
             )
Beispiel #13
0
def reverse(viewname, *args, **kwargs):
    try:
        from feincms.content.application.models import app_reverse
        return app_reverse(viewname, 'vxkmoodle.urls', *args, **kwargs)
    except ImportError:
        from django.core.urlresolvers import reverse
        return reverse(viewname, *args, **kwargs)
def groupagenda_event_url_app(self):
    from feincms.content.application.models import app_reverse
    return app_reverse('event-detail', 'groupagenda.urls', kwargs={
        'year': self.event_begin.year,
        'month': self.event_begin.month,
        'day': self.event_begin.day,
        'slug': self.slug,
    })
Beispiel #15
0
def elephantblog_entry_url_app(self):
    from feincms.content.application.models import app_reverse
    return app_reverse('elephantblog_entry_detail', 'elephantblog', kwargs={
        'year': self.published_on.strftime('%Y'),
        'month': self.published_on.strftime('%m'),
        'day': self.published_on.strftime('%d'),
        'slug': self.slug,
    })
Beispiel #16
0
def elephantblog_entry_url_app(self):
    from feincms.content.application.models import app_reverse
    return app_reverse('elephantblog_entry_detail', 'elephantblog', kwargs={
        'year': self.published_on.strftime('%Y'),
        'month': self.published_on.strftime('%m'),
        'day': self.published_on.strftime('%d'),
        'slug': self.slug,
    })
Beispiel #17
0
def reverse(viewname, *args, **kwargs):
    try:
        from feincms.content.application.models import app_reverse

        return app_reverse(viewname, "vxkmoodle.urls", *args, **kwargs)
    except ImportError:
        from django.core.urlresolvers import reverse

        return reverse(viewname, *args, **kwargs)
Beispiel #18
0
def payment(request, pledge):

    order_id = '{project_slug}-{pledge_id}'.format(
        project_slug=pledge.project.slug, pledge_id=pledge.id)

    amount = int(pledge.amount * 100)

    form_params = {
        'orderID': order_id,
        'amount': unicode(amount),
        'currency': pledge.currency,
        'PSPID': POSTFINANCE['PSPID'],
        'mode': 'prod' if POSTFINANCE['LIVE'] else 'test',
    }

    form_params['SHASign'] = sha1(u''.join((
        form_params['orderID'],
        form_params['amount'],
        form_params['currency'],
        form_params['PSPID'],
        POSTFINANCE['SHA1_IN'],
    ))).hexdigest()

    # TODO: check why error URLs are not used.
    base_url = 'http://%s' % request.get_host()
    accept_url = base_url + app_reverse('zipfelchappe_pledge_thankyou',
                                        ROOT_URLS)
    # decline_url = base_url + reverse('zipfelchappe_postfinance_declined')
    # exception_url = base_url + reverse('zipfelchappe_postfinance_exception')
    cancel_url = base_url + app_reverse('zipfelchappe_pledge_cancel',
                                        ROOT_URLS)

    return render(
        request, 'zipfelchappe/postfinance_form.html', {
            'pledge': pledge,
            'form_params': form_params,
            'locale': to_locale(get_language()),
            'accept_url': accept_url,
            'decline_url': '',
            'exception_url': '',
            'cancel_url': cancel_url,
        })
Beispiel #19
0
 def get_absolute_url(self):
     entry_dict = {'year': "%04d" %self.published_on.year,
                   'month': "%02d" %self.published_on.month,
                   'day': "%02d" %self.published_on.day,
                   'slug': self.slug}
     from feincms.content.application.models import app_reverse
     url = app_reverse('blog_post', 'blog.urls', kwargs=entry_dict)
     if settings.USE_I18N:
         # terrible hack to undo what locale url does
         return '/' + url.split('/', 2)[2]
     return url
Beispiel #20
0
def payment(request, pledge):
    """The payment view for Postfinance. Renders a form that gets sent to Postfinance
        via the browser.
    """
    order_id = '{project_slug}-{pledge_id}'.format(
        project_slug=pledge.project.slug, pledge_id=pledge.id)

    amount = int(pledge.amount * 100)

    form_params = {
        'orderID': order_id,
        'amount': unicode(amount),
        'currency': pledge.currency,
        'PSPID': POSTFINANCE['PSPID'],
        'mode': 'prod' if POSTFINANCE['LIVE'] else 'test',
    }
    # ISO-8859-1
    form_params['SHASign'] = sha1(u''.join((
        form_params['orderID'],
        form_params['amount'],
        form_params['currency'],
        form_params['PSPID'],
        POSTFINANCE['SHA1_IN'],
    ))).hexdigest()

    base_url = 'http://%s' % get_current_site(request)
    accept_url = base_url + app_reverse('zipfelchappe_pledge_thankyou', ROOT_URLS)
    # global decline and exception URLs are used.
    decline_url = base_url + reverse('zipfelchappe_postfinance_declined')
    exception_url = base_url + reverse('zipfelchappe_postfinance_exception')
    cancel_url = base_url + app_reverse('zipfelchappe_pledge_cancel', ROOT_URLS)

    return render(request, 'zipfelchappe/postfinance_form.html', {
        'pledge': pledge,
        'form_params': form_params,
        'locale': to_locale(get_language()),
        'accept_url': accept_url,
        'decline_url': decline_url,
        'exception_url': exception_url,
        'cancel_url': cancel_url,
    })
def create_payment(preapproval):
    site = Site.objects.get_current()

    pledge = preapproval.pledge

    url = PP_API_URL + '/AdaptivePayments/Pay'

    receivers = []


    if not settings.PAYPAL['RECEIVERS']:
        # TODO: do this on Project save as well.
        raise ImproperlyConfigured(_('No paypal receivers defined!'))
    receivers = [r.copy() for r in settings.PAYPAL['RECEIVERS']]

    for receiver in receivers:
        amount = pledge.amount * Decimal(str(receiver['percent']/100.00))
        receiver.update({'amount': unicode(amount.quantize(Decimal('.01')))})
        del receiver['percent']

    data = {
        'actionType': 'PAY',
        'returnUrl': 'http://%s%s' % (site,
            app_reverse('zipfelchappe_pledge_thankyou', settings.ROOT_URLS)),
        'cancelUrl': 'http://%s%s' % (site,
            app_reverse('zipfelchappe_pledge_cancel', settings.ROOT_URLS)),
        'ipnNotificationUrl': 'http://%s%s' % (site,
            reverse('zipfelchappe_paypal_ipn')),
        'currencyCode': pledge.currency,
        'preapprovalKey': preapproval.key,
        'receiverList': {
            'receiver': receivers
        },
        'reverseAllParallelPaymentsOnError': True,
        'feesPayer': 'EACHRECEIVER',
        'memo': pledge.project.title,
        "requestEnvelope": {"errorLanguage": "en_US"},
    }

    return requests.post(url, headers=PP_REQ_HEADERS, data=json.dumps(data))
Beispiel #22
0
def payment(request, pledge):

    order_id = '{project_slug}-{pledge_id}'.format(
        project_slug=pledge.project.slug, pledge_id=pledge.id)

    amount = int(pledge.amount * 100)

    form_params = {
        'orderID': order_id,
        'amount': unicode(amount),
        'currency': pledge.currency,
        'PSPID': POSTFINANCE['PSPID'],
        'mode': 'prod' if POSTFINANCE['LIVE'] else 'test',
    }

    form_params['SHASign'] = sha1(u''.join((
        form_params['orderID'],
        form_params['amount'],
        form_params['currency'],
        form_params['PSPID'],
        POSTFINANCE['SHA1_IN'],
    ))).hexdigest()

    # TODO: check why error URLs are not used.
    base_url = 'http://%s' % request.get_host()
    accept_url = base_url + app_reverse('zipfelchappe_pledge_thankyou', ROOT_URLS)
    # decline_url = base_url + reverse('zipfelchappe_postfinance_declined')
    # exception_url = base_url + reverse('zipfelchappe_postfinance_exception')
    cancel_url = base_url + app_reverse('zipfelchappe_pledge_cancel', ROOT_URLS)

    return render(request, 'zipfelchappe/postfinance_form.html', {
        'pledge': pledge,
        'form_params': form_params,
        'locale': to_locale(get_language()),
        'accept_url': accept_url,
        'decline_url': '',
        'exception_url': '',
        'cancel_url': cancel_url,
    })
Beispiel #23
0
    def test_anonymous_pledge(self):
        # The form must contain the anonymous field.
        back_url = app_reverse('zipfelchappe_backer_create', app_settings.ROOT_URLS,
                               kwargs={'slug': self.project1.slug})
        detail_url = app_reverse('zipfelchappe_project_detail', app_settings.ROOT_URLS,
                                 kwargs={'slug': self.project1.slug})
        response = self.client.get(back_url)
        self.assertContains(response, '<input id="id_anonymously"')
        user1 = UserFactory.create()
        backer1 = BackerFactory.create(user=user1)
        p1 = PledgeFactory.create(
            project=self.project1,
            amount=8,
            backer=backer1
        )

        user2 = UserFactory.create(
            username='******',
            email='*****@*****.**',
            first_name='Bill',
            last_name='Gates'
        )
        backer = BackerFactory.create(user=user2)
        p2 = PledgeFactory.create(
            project=self.project1,
            amount=11,
            anonymously=True,
            backer=backer
        )

        response = self.client.get(detail_url)
        self.assertFalse(p1.anonymously)
        self.assertTrue(p2.anonymously)
        self.assertContains(response, self.project1.title)
        self.assertContains(response, 'Hans Muster')
        self.assertContains(response, '19 CHF')
        self.assertNotContains(response, 'Gates')
        self.assertNotContains(response, 'Bill')
        self.assertContains(response, _('Anonymous'))
Beispiel #24
0
def app_submit(request):
    if request.method == 'POST':
        form = AppPromoForm(request.POST, request.FILES)
        if form.is_valid():
            app = form.save(commit=False)
            app.author = request.user
            app.save()
            translation = AppPromoTranslation(parent=app, language_code='en')
            translation.short_description = form.cleaned_data['short_description']
            translation.long_description = form.cleaned_data['long_description']
            translation.save()
            return HttpResponseRedirect(app.get_absolute_url())
    else:
        form = AppPromoForm()
    action = app_reverse('app_library_submit', 'feincmsorg.app_library.urls')
    return render(request, 'app_library/submit.html', {'form': form, 'action': action })
Beispiel #25
0
def app_submit(request):
    if request.method == "POST":
        form = AppPromoForm(request.POST, request.FILES)
        if form.is_valid():
            app = form.save(commit=False)
            app.author = request.user
            app.save()
            translation = AppPromoTranslation(parent=app, language_code="en")
            translation.short_description = form.cleaned_data["short_description"]
            translation.long_description = form.cleaned_data["long_description"]
            translation.save()
            return HttpResponseRedirect(app.get_absolute_url())
    else:
        form = AppPromoForm()
    action = app_reverse("app_library_submit", "feincmsorg.app_library.urls")
    return render(request, "app_library/submit.html", {"form": form, "action": action})
Beispiel #26
0
def app_edit(request, slug):
    app = get_object_or_404(AppPromo, slug=slug)
    if not app.author == request.user:
        return HttpResponseForbidden('Only the original uploader can edit an app.')
    if request.method == 'POST':
        form = AppPromoForm(request.POST, request.FILES, instance=app)
        if form.is_valid():
            app = form.save()
            translation = AppPromoTranslation.objects.get(parent=app, language_code='en')
            translation.short_description = form.cleaned_data['short_description']
            translation.long_description = form.cleaned_data['long_description']
            translation.save()
            return HttpResponseRedirect(app.get_absolute_url())
    else:
        data = {'short_description': app.translation.short_description,
            'long_description': app.translation.long_description }
        form = AppPromoForm(initial=data, instance=app)

    action = app_reverse('app_library_edit', 'feincmsorg.app_library.urls', kwargs={'slug': app.slug})
    return render(request, 'app_library/submit.html', {'form': form, 'action': action })
    def render(self, context):
        from feincms.content.application.models import app_reverse

        args = [arg.resolve(context) for arg in self.args]
        kwargs = dict([(smart_str(k, 'ascii'), v.resolve(context))
                       for k, v in self.kwargs.items()])
        view_name = self.view_name.resolve(context)
        urlconf = self.urlconf.resolve(context)

        try:
            url = app_reverse(view_name, urlconf, args=args, kwargs=kwargs,
                current_app=context.current_app)
        except NoReverseMatch:
            if self.asvar is None:
                raise

        if self.asvar:
            context[self.asvar] = url
            return u''
        else:
            return url
Beispiel #28
0
def app_edit(request, slug):
    app = get_object_or_404(AppPromo, slug=slug)
    if not app.author == request.user:
        return HttpResponseForbidden("Only the original uploader can edit an app.")
    if request.method == "POST":
        form = AppPromoForm(request.POST, request.FILES, instance=app)
        if form.is_valid():
            app = form.save()
            translation = AppPromoTranslation.objects.get(parent=app, language_code="en")
            translation.short_description = form.cleaned_data["short_description"]
            translation.long_description = form.cleaned_data["long_description"]
            translation.save()
            return HttpResponseRedirect(app.get_absolute_url())
    else:
        data = {
            "short_description": app.translation.short_description,
            "long_description": app.translation.long_description,
        }
        form = AppPromoForm(initial=data, instance=app)

    action = app_reverse("app_library_edit", "feincmsorg.app_library.urls", kwargs={"slug": app.slug})
    return render(request, "app_library/submit.html", {"form": form, "action": action})
Beispiel #29
0
def ask_question(request):
    form_class = QuestionForm
    if request.method == 'POST':
        form = form_class(request.POST)
        if form.is_valid():
            question = Post.objects.create(
                author=request.user,
                content=form.cleaned_data['content'],
                title=form.cleaned_data['title'],
                creation_date=timezone.now(),
                lastedit_date=timezone.now(),
                lastedit_user=request.user,
                type=1
            )
            tags = form.cleaned_data['tags'].replace(u',', ',').replace(' ', '').split(',')
            for tag in tags:
                question.tags.add(tag.replace(' ', ''))
            question.save()

            return HttpResponseRedirect(app_reverse("ask-index", 'ask.urls'))
    else:
        form = QuestionForm()
        return 'ask/ask_new_post.html', {'form': form}
    def render(self, context):
        from feincms.content.application.models import app_reverse

        args = [arg.resolve(context) for arg in self.args]
        kwargs = dict([(smart_str(k, 'ascii'), v.resolve(context))
                       for k, v in self.kwargs.items()])
        view_name = self.view_name.resolve(context)
        urlconf = self.urlconf.resolve(context)

        try:
            url = app_reverse(view_name,
                              urlconf,
                              args=args,
                              kwargs=kwargs,
                              current_app=context.current_app)
        except NoReverseMatch:
            if self.asvar is None:
                raise

        if self.asvar:
            context[self.asvar] = url
            return u''
        else:
            return url
Beispiel #31
0
 def location(self, item):
     return app_reverse('videoch-detail', 'videochannel.urls',
                        kwargs={'slug': item.slug})
Beispiel #32
0
TEMPLATE_DIRS = ()

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.admin',
    'django.contrib.staticfiles',
    'feincms',
    'feincms.module.blog',
    'feincms.module.page',
    'feincms.module.medialibrary',
    'example',
    'mptt',
)

LANGUAGES = (
    ('en', 'English'),
    ('de', 'German'),
)

FEINCMS_TREE_EDITOR_INCLUDE_ANCESTORS = True

from feincms.content.application.models import app_reverse
ABSOLUTE_URL_OVERRIDES = {
    'blog.entry':
    lambda entry: app_reverse(
        'blog_entry_detail', 'blog_urls', args=(entry.id, )),
}
Beispiel #33
0
 def get_success_url(self):
     return app_reverse('form', 'contact_form')
Beispiel #34
0
 def get_absolute_url(self):
     #return ('forum-topic', (), {'topic_id': self.id})
     return app_reverse('forum-post', 'feinx.apps.forum.urls', kwargs={
         'post_id': self.pk,
     })
Beispiel #35
0
 def location(self, item):
     return app_reverse('videoch-detail',
                        'videochannel.urls',
                        kwargs={'slug': item.slug})
Beispiel #36
0
 def item_link(self, item):
     return app_reverse('videoch-detail',
                        'videochannel.urls',
                        kwargs={
                            'mfile_id': item.id,
                        })
Beispiel #37
0
def reverse(view_name, *args, **kwargs):
    """ Reverse within our app context """
    return app_reverse(view_name, app_settings.ROOT_URLS, args=args, kwargs=kwargs)
Beispiel #38
0
 def link(self):
     return app_reverse('forum_index', 'feincmsforum.urls')
Beispiel #39
0
 def get_success_url(self):
     return app_reverse('completed', 'contact_success')
Beispiel #40
0
 def get_list_url(self):
     return u'%s#%s' % (
         app_reverse('plata_product_list', 'simpleshop.urls' ),
         self.slug)
Beispiel #41
0
 def get_absolute_url(self):
     return app_reverse('agenda_event_detail',
                        'feincms_agenda.urls',
                        args=(),
                        kwargs={'slug': self.translation.slug})
Beispiel #42
0
 def get_absolute_url(self):
     return app_reverse('forum-forum', 'pows.apps.forum.urls', {
         'forum_pk': self.pk,
     })
Beispiel #43
0
def elephantblog_category_url_app(self):
    from feincms.content.application.models import app_reverse
    return app_reverse('elephantblog_category_detail', 'elephantblog', kwargs={
        'slug': self.translation.slug,
    })
Beispiel #44
0
 def get_absolute_url(self):
     return app_reverse('forum-post', 'pows.apps.forum.urls', kwargs={
         'post_id': self.pk,
     })
Beispiel #45
0
 def link(self):        
     return app_reverse('forum_index', 'feincmsforum.urls')
Beispiel #46
0
def pathways_pathway_url_app(self):
    from feincms.content.application.models import app_reverse
    return app_reverse('pathway_detail', 'pathways.urls', kwargs={
        'slug': self.slug,
    })
Beispiel #47
0
 def get_success_url(self):
     #return self.request.GET.get('next', reverse('profile'))
     return self.request.GET.get('next', app_reverse('profile'))
Beispiel #48
0
 def redirect(self, url_name):
     return redirect(app_reverse(url_name,
                                 'simpleshop.urls'))
Beispiel #49
0
 def redirect(self, url_name):
     return redirect(app_reverse(url_name, 'simpleshop.urls'))
Beispiel #50
0
INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.admin',
    'django.contrib.staticfiles',

    'feincms',
    'feincms.module.blog',
    'feincms.module.page',
    'feincms.module.medialibrary',
    'example',

    'mptt',
)

LANGUAGES = (
    ('en', 'English'),
    ('de', 'German'),
)

FEINCMS_TREE_EDITOR_INCLUDE_ANCESTORS = True

from feincms.content.application.models import app_reverse
ABSOLUTE_URL_OVERRIDES = {
    'blog.entry': lambda entry: app_reverse(
        'blog_entry_detail', 'blog_urls',
        args=(entry.id,)),
}
Beispiel #51
0
 def link(self):
     return app_reverse('videoch-feed', 'videochannel.urls')