Example #1
0
# -*- coding: utf-8 -*-
from forms import ContributionForm

from decorators import render_response

from django.contrib.auth.decorators import login_required
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect

to_response = render_response('generator/templates/')


@login_required
@to_response
def contribute(request):
    contribution_form = ContributionForm()
    if request.method == 'POST':
        contribution_form = ContributionForm(request.POST)
        if contribution_form.is_valid():
            contribution_form.save()
    return 'contribute.html', {'form': contribution_form}
Example #2
0
from datetime import date, timedelta

from django.conf import settings
from django.db.models.aggregates import Sum
from django.views.decorators.cache import never_cache

from decorators import render_response

from core.models import Article, ArticleViews

to_response = render_response('core/templates/')


def mas_leidos(days=1, cover=False):
    """
    Returns the top 10 most viewed articles counting days days ago from now.
    If cover is True, articles in satirical sections are excluded. (Issue4910).
    Rare but possible: exclude articles with an empty slug because they will raise exception when computing their urls.
    """
    desde, more_exclude_kwargs = date.today() - timedelta(days), {}
    if cover:
        more_exclude_kwargs['article__sections__slug__in'] = getattr(
            settings, 'CORE_SATIRICAL_SECTIONS', ())
    return [
        Article.objects.get(id=av['article'])
        for av in ArticleViews.objects.filter(
            article__is_published=True, day__gt=desde).exclude(
                article__slug='').exclude(
                    **more_exclude_kwargs).values('article').annotate(
                        total_views=Sum('views')).order_by('-total_views')[:10]
    ]
Example #3
0
# -*- coding: utf-8 -*-
from shoutbox.models import Shout, get_last_shouts

from decorators import render_response

from django.contrib.auth.decorators import login_required
from django.http import Http404, HttpResponse

to_response = render_response('shoutbox/templates/')

@login_required
def do_shout(request):
    if request.method == 'POST':
        post = request.POST.copy()
        if post.get('message'):
            shout = Shout()
            shout.user = request.user
            shout.message = post.get('message')
            shout.save()
        return HttpResponse('')
    else:
        raise Http404

@to_response
def shouts(request):
    from django.core.cache import cache

    if request.method == 'POST':
        shouts = cache.get('shouts', None)
        if not shouts:
            shouts = get_last_shouts()
Example #4
0
from django.views.decorators.cache import never_cache

from decorators import render_response

from core.models import BreakingNewsModule, Category, Publication


@never_cache
def notification_closed(request, bn_id):
    closed = request.session.get('bn_notifications_closed', set())
    closed.add(bn_id)
    request.session['bn_notifications_closed'] = closed
    return HttpResponse()


to_response = render_response('core/templates/breaking_news_module/')


@never_cache
@to_response
def content(request):
    category_id, publication_id, bn_mod = request.GET.get(
        'category_id'), request.GET.get('publication'), None
    bn_modules_published = BreakingNewsModule.objects.filter(is_published=True)
    if bn_modules_published:
        if category_id:
            # category detail
            bn_mod = bn_modules_published.filter(
                categories=Category.objects.get(id=category_id))
        elif publication_id:
            # not article detail
Example #5
0
from datetime import datetime

from django.conf import settings
from django.shortcuts import get_object_or_404
from django.http import HttpResponseRedirect
from django.views.decorators.cache import never_cache

from apps import adzone_mdb

from decorators import render_response

from signupwall.utils import get_ip
from adzone.models import AdBase


to_response = render_response('adzone/templates/adzone/')


@never_cache
def ad_view(request, id, tracking=None):
    """ Record the click in the mongo database, then redirect to ad url """
    ad = get_object_or_404(AdBase, id=id)
    if settings.ADZONE_LOG_AD_CLICKS:
        adzone_mdb.clicks.insert_one({'ad': ad.id, 'click_date': datetime.now(), 'source_ip': get_ip(request)})
    return HttpResponseRedirect(
        (ad.mobile_url if ad.mobile_url and request.flavour == 'mobile' else ad.url) % {'timestamp': time()}
    )


@never_cache
@to_response
Example #6
0
import requests
from django.conf import settings
from django.db import IntegrityError
from django.views.decorators.cache import never_cache

from decorators import render_response
from core.models import Category
from thedaily.models import Subscriber, SubscriptionPrices
from elegi_informarte.forms import SuscripcionForm, SuscripcionEmailForm, AttributionForm, AttributionAmountForm
from elegi_informarte.models import Serie, Suscripcion

to_response = render_response('elegi_informarte/templates/')
try:
    ELECCIONES_CATEGORY = Category.objects.get(slug='elecciones')
except Exception:
    ELECCIONES_CATEGORY = None


@never_cache
@to_response
def suscripcion(request):
    try:
        sp = SubscriptionPrices.objects.get(subscription_type='DDIGM')
    except SubscriptionPrices.DoesNotExist:
        sp = None

    is_authenticated = request.user.is_authenticated()
    if is_authenticated:
        form_class = SuscripcionForm
    else:
        form_class = SuscripcionEmailForm
Example #7
0
from decorators import render_response
from django.conf import settings
from django.db.models import Q
from django.http import HttpResponseServerError, HttpResponseForbidden, HttpResponsePermanentRedirect
from django.views.decorators.cache import never_cache
from django.template import RequestContext
from django.shortcuts import redirect, get_object_or_404, render_to_response
from django.core.urlresolvers import reverse

from core.models import Publication, Category, Section, Article, get_latest_edition
from home.models import Home
from faq.models import Question, Topic


to_response = render_response('core/templates/category/')

# Initialize the hashid object with salt from settings and custom length
hashids = Hashids(settings.HASHIDS_SALT, 32)


@never_cache
def category_detail(request, slug):

    # deporte custom redirect
    if slug == u'deporte':
        return redirect(Publication.objects.get(slug=u'garra').get_absolute_url(), permanent=True)

    category, inner_sections = get_object_or_404(Category, slug=slug), []
    question_list, questions_topic = [], None
    category_home = get_object_or_404(Home, category=category)
Example #8
0
# coding=UTF-8
from django.utils.translation import ugettext_lazy as _
from decorators import render_response
from models import *
to_response = render_response('faq/')

@to_response
def index(request):
    return 'index.html'

Example #9
0
from django.contrib.flatpages.models import FlatPage
from decorators import render_response
to_response = render_response('home/')

# Create your views here.
@to_response
def index(request):
    try:
        noticias = FlatPage.objects.get(title='inicio-noticias').content
    except:
        noticias = ''
    try:
        cursos = FlatPage.objects.get(title='inicio-cursos').content
    except:
        cursos = ''
    try:
        certificaciones = FlatPage.objects.get(title='inicio-certificaciones').content
    except:
        certificaciones = ''
    try:
        biblioteca = FlatPage.objects.get(title='inicio-biblioteca').content
    except:
        biblioteca = ''
    return 'home.html', { 'noticias': noticias, 'cursos': cursos, 'certificaciones': certificaciones, 'biblioteca': biblioteca }
Example #10
0
from django.shortcuts import redirect, render_to_response, get_object_or_404
from django.template import RequestContext
from django.forms import HiddenInput
from django.contrib.auth.decorators import permission_required, login_required
from django.views.decorators.cache import never_cache
from django.contrib.auth.models import User, Permission
from django.db.models import Q
from django.contrib.admin.views.decorators import staff_member_required

from decorators import render_response
from thedaily.models import Subscriber

from models import SubscriberEvento, SubscriberArticle, TopUser, Beneficio, Socio, Registro
from forms import ArticleForm, EventoForm, RegistroForm

to_response = render_response('comunidad/templates/')


@never_cache
@staff_member_required
def index(request):
    articulos = SubscriberArticle.objects.all()[:20]
    eventos = SubscriberEvento.objects.all()[:20]

    top_users_week = TopUser.objects.filter(type='WEEK').order_by(
        '-date_created', '-points').select_related('user')
    top_users_month = TopUser.objects.filter(type='MONTH').order_by(
        '-date_created', '-points').select_related('user')
    perm = Permission.objects.get(codename='es_suscriptor_ladiaria')

    latest_users = Subscriber.objects.filter(
Example #11
0
from django.core.paginator import Paginator, InvalidPage, EmptyPage
from django.core.urlresolvers import reverse
from django.http import HttpResponseForbidden, HttpResponse, Http404
from django.shortcuts import get_object_or_404
from django.views.decorators.cache import never_cache
from django.contrib.auth.models import User
from django.contrib.auth.decorators import login_required
from django.utils.safestring import mark_safe

from decorators import render_response
from libs.tokens.email_confirmation import download_token_generator
from core.models import Edition, Supplement, get_current_edition
from homev3.views import index
from core.views.edition_calendar import EditionCalendar

to_response = render_response('core/templates/edition/')


@never_cache
@to_response
def edition_list(request):
    editions = Edition.objects.all().order_by('-date_published')
    paginator = Paginator(editions, 21)
    try:
        page = int(request.GET.get('pagina', '1'))
    except ValueError:
        page = 1
    try:
        editions = paginator.page(page)
    except (EmptyPage, InvalidPage):
        editions = paginator.page(paginator.num_pages)
Example #12
0
# -*- coding: utf-8 -*-
from .models import Event, Activity
from .forms import AttendantForm, AttendantFormRender
from thedaily.models import Subscriber

from decorators import render_response

from django.shortcuts import get_object_or_404, get_list_or_404

from calendar import Calendar
from datetime import date, timedelta

to_response = render_response('events/templates/')
DAYS = ('Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado',
        'Domingo')


@to_response
def calendar(request, year=None, month=None):
    if year and month:
        date_object = date(int(year), int(month), 1)
    else:
        date_object = date.today()
    year, month = date_object.year, date_object.month
    events = Event.objects.filter(date__year=year, date__month=month)
    prev, next = get_prev_next(date_object)
    cal = Calendar().itermonthdates(date_object.year, date_object.month)
    return (
        'calendar.html',
        {
            'date': date_object,
Example #13
0
# coding=UTF-8
from django.contrib.auth.models import User
from django.utils.translation import ugettext_lazy as _, ugettext as u_
from django.contrib.auth.decorators import login_required
from decorators import render_response
from django.http import HttpResponseRedirect, HttpResponse
from django import newforms as forms
from django.contrib import auth
from models import *
from datetime import date, datetime, timedelta
to_response = render_response('canchas/')

# Create your views here.
@to_response
def index(request):
    if request.user.is_authenticated():
        if request.user.is_staff == 1:
            return HttpResponseRedirect('/administrador/')
        try:
            p=request.user.get_profile()
            return main(request)
        except Socio.DoesNotExist:
            return 'error.html', { 'error': _(u'No existe aún un socio para este usuario. Comunique este error a [email protected]') }
    else:
        return login(request)

def main(request):
    return 'index.html', tablas(request)

def set_lang(request, lang):
    from django.utils.translation import check_for_language, activate, to_locale, get_language
Example #14
0
# -*- coding: utf-8 -*-
from datetime import date
from core.models import Supplement

from decorators import render_response

from django.core.paginator import Paginator, InvalidPage, EmptyPage
from django.shortcuts import get_object_or_404
from django.views.decorators.cache import never_cache

to_response = render_response('core/templates/supplement/')


@never_cache
@to_response
def supplement_list(request):
    supplements = Supplement.objects.filter(
        public=True).order_by('-date_published')
    paginator = Paginator(supplements, 20)
    try:
        page = int(request.GET.get('pagina', '1'))
    except ValueError:
        page = 1
    try:
        supplements = paginator.page(page)
    except (EmptyPage, InvalidPage):
        supplements = paginator.page(paginator.num_pages)
    return 'list.html', {'supplements': supplements}


@never_cache
Example #15
0
import re
from elasticsearch_dsl import Q

from django.conf import settings
from django.core.paginator import Paginator, InvalidPage, EmptyPage
from django.views.decorators.cache import never_cache

from core.models import Article

from decorators import render_response

from .forms import SearchForm
from .models import get_query
from .documents import ArticleDocument

to_response, dre, results_per_page = render_response(
    'search/templates/'), re.compile(r'\w+[\w\s]+', re.UNICODE), 15


def _paginate(request, query):
    paginator = Paginator(query, results_per_page)

    try:
        page = int(request.GET.get('pagina', '1'))
    except (ValueError):
        page = 1

    try:
        lista = paginator.page(page)
    except (EmptyPage, InvalidPage):
        lista = paginator.page(paginator.num_pages)
Example #16
0
from decorators import render_response

from django.http import HttpResponse, HttpResponseForbidden, HttpResponseBadRequest
from django.views.decorators.csrf import csrf_exempt
from django.views.decorators.cache import never_cache
from django.core.exceptions import ValidationError
from django.contrib.auth.models import Group
from django.contrib.auth.decorators import permission_required
from django.views.decorators.http import require_POST
from django.shortcuts import get_object_or_404

from core.models import Article
from .models import AudioStatistics

to_response = render_response('dashboard/templates/')


@never_cache
@permission_required('thedaily.change_subscriber')
@to_response
def index(request):
    is_admin, is_seller, is_financial = request.user.is_superuser, False, False
    if not is_admin:
        user_groups = request.user.groups.all()
        is_seller = get_object_or_404(Group,
                                      name=getattr(settings,
                                                   'DASHBOARD_SELLER_GROUP',
                                                   None)) in user_groups
        is_financial = get_object_or_404(
            Group, name=getattr(settings, 'DASHBOARD_FINANCIAL_GROUP',
Example #17
0
from django.views.decorators.cache import never_cache  # , cache_page
# from django.views.decorators.vary import vary_on_cookie
from django.template.defaultfilters import slugify

from tagging.models import Tag
from apps import core_articleviewedby_mdb, core_articlevisits_mdb
from decorators import render_response  # , decorate_if_no_staff, decorate_if_staff
from core.forms import ReportErrorArticleForm, SendByEmailForm
from core.models import Publication, Category, Article, ArticleUrlHistory


class ArticleDetailView(DetailView):
    model = Article


to_response = render_response('core/templates/article/')


def get_type(type_slug):
    for type in Article.TYPE_CHOICES:
        if type_slug == slugify(type[1]):
            return type
    return (None, None)


@never_cache
@to_response
def article_list(request, type_slug):
    atype = {}
    atype['slug'], atype['name'] = get_type(type_slug)
    if not atype['slug']:
Example #18
0
from django.conf import settings
from django.core.urlresolvers import reverse
from django.http import Http404, HttpResponsePermanentRedirect
from django.shortcuts import get_object_or_404
from django.views.decorators.vary import vary_on_cookie
from django.views.decorators.cache import never_cache, cache_control

from decorators import render_response, decorate_if_no_staff, decorate_if_staff

from core.models import (Edition, get_current_edition, Section, Publication, Category)
from core.views.category import category_detail
from home.models import Home
from faq.models import Question, Topic
from cartelera.models import LiveEmbedEvent

to_response = render_response('homev3/templates/')


@decorate_if_staff(decorator=never_cache)
@decorate_if_no_staff(decorator=vary_on_cookie)
@decorate_if_no_staff(decorator=cache_control(no_cache=True, no_store=True, must_revalidate=True, max_age=120))
@to_response
def index(request, year=None, month=None, day=None, domain_slug=None):
    """
    View to display the current edition page. Or the edition in the date and publication matching domain_slug.
    If domain_slug is a Category slug this view will return the matching category detail view.
    """

    if domain_slug:
        # if domain_slug is one of the "root url" publications => redirect to home
        if domain_slug in settings.CORE_PUBLICATIONS_USE_ROOT_URL: