# -*- coding: utf-8 -*-
from django.http import HttpResponse
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
import datetime
from fst_web.fs_doc.models import Myndighetsforeskrift, Forfattningssamling, Amnesord, AtomEntry,AllmannaRad
from django.utils.feedgenerator import rfc3339_date
from django.conf import settings
from django.template import loader, Context


def _response(request, template, context):
    return render_to_response(template, context, context_instance=RequestContext(request))


def index(request):
    """Visa startsidan."""

    senaste_myndighetsforeskrifter = Myndighetsforeskrift.objects.all().order_by("-utkom_fran_tryck")[:10]

    return _response(request, 'index.html', locals())

def foreskrift_rdf(request, fskortnamn, arsutgava, lopnummer):
    """Visa RDF-data för enskild föreskrift i författningssamling."""

    fs = get_object_or_404(Forfattningssamling,kortnamn=fskortnamn)
    foreskrift = get_object_or_404(Myndighetsforeskrift,arsutgava=arsutgava,lopnummer=lopnummer,forfattningssamling=fs)

    # Return RDF-format
    return HttpResponse(foreskrift.to_rdfxml(), mimetype="application/rdf+xml; charset=utf-8")


def allmanna_rad(request, fskortnamn, arsutgava, lopnummer):
    """Visa enskild föreskrift i författningssamling."""

    fs = get_object_or_404(Forfattningssamling,kortnamn=fskortnamn)
    foreskrift = get_object_or_404(AllmannaRad,arsutgava=arsutgava,lopnummer=lopnummer,forfattningssamling=fs)

    return _response(request, 'foreskrift.html', locals())

def foreskrift(request, fskortnamn, arsutgava, lopnummer):
    """Visa enskild föreskrift i författningssamling."""

    fs = get_object_or_404(Forfattningssamling,kortnamn=fskortnamn)
    foreskrift = get_object_or_404(Myndighetsforeskrift,arsutgava=arsutgava,lopnummer=lopnummer,forfattningssamling=fs)

    return _response(request, 'foreskrift.html', locals())

def amnesord(request):
    """Visa föreskrifter indelade efter ämnesord."""

    # Get all instances of 'Amnesord' used by at least one document
    amnesord = Amnesord.objects.filter(myndighetsforeskrift__isnull = False).order_by("titel").distinct()

    return _response(request, 'per_amnesord.html', locals())

def artal(request):
    """Visa föreskrifter indelade efter ikraftträdandeår."""

    foreskrifter = Myndighetsforeskrift.objects.all().order_by("-ikrafttradandedatum")

    return _response(request, 'per_ar.html', locals())

def atomfeed(request):
    """Presentera en postförteckning över aktiviteter i författningssamlingen i
    Atom-format."""

    entries = AtomEntry.objects.order_by("-updated")
    last_updated = rfc3339_date(entries[0].updated) if entries else ""
    feed_id = settings.FST_DATASET_URI
    feed_title = settings.FST_DATASET_TITLE
    feed_contact_name = settings.FST_ORG_CONTACT_NAME
    feed_contact_url = settings.FST_ORG_CONTACT_URL
    feed_contact_email = settings.FST_ORG_CONTACT_EMAIL
    fst_site_url = settings.FST_SITE_URL

    template = loader.get_template('atomfeed.xml')
    context = Context(locals())

    return HttpResponse(template.render(context), mimetype="application/atom+xml; charset=utf-8")



@@ -587,24 +587,24 @@
  %22%22%22
-Visa
+Show
  start
-sidan.
+ page 
 %22%22%22%0A
@@ -841,67 +841,46 @@
  %22%22%22
-Visa RDF-data f%C3%B6r enskild f%C3%B6reskrift i f%C3%B6rfattningssamling.
+Display RDF representation of document
 %22%22%22%0A
@@ -1085,23 +1085,16 @@
 turn RDF
--format
 %0A    ret
@@ -1255,54 +1255,47 @@
  %22%22%22
-Visa enskild f%C3%B6reskrift i f%C3%B6rfattningssamling.
+Display document of type 'AllmannaRad' 
 %22%22%22%0A
@@ -1605,58 +1605,64 @@
  %22%22%22
-Visa enskild f%C3%B6reskrift i f%C3%B6rfattningssamling.%22%22%22%0A
+Display document of type 'Myndighetsforeskrift' %22%22%22%0A    
 %0A   
@@ -1941,50 +1941,46 @@
  %22%22%22
-Visa f%C3%B6reskrifter indelade efter %C3%A4mnesord.
+Display documents grouped by keywords 
 %22%22%22%0A
@@ -2248,58 +2248,42 @@
  %22%22%22
-Visa f%C3%B6reskrifter indelade efter ikrafttr%C3%A4dande%C3%A5r.
+Display documents grouped by year 
 %22%22%22%0A
@@ -2461,97 +2461,73 @@
  %22%22%22
-Presentera en postf%C3%B6rteckning %C3%B6ver aktiviteter i f%C3%B6rfattningssamlingen i%0A    Atom-format.
+ Return Atom Feed representing activities in document collection 
 %22%22%22%0A

Add English comments