cubicweb/web/views/basecontrollers.py
changeset 12912 3966f09d5f5c
parent 12567 26744ad37953
equal deleted inserted replaced
12911:a17cbf539a69 12912:3966f09d5f5c
    21 
    21 
    22 import http.client
    22 import http.client
    23 
    23 
    24 from cubicweb import (NoSelectableObject, ObjectNotFound, ValidationError,
    24 from cubicweb import (NoSelectableObject, ObjectNotFound, ValidationError,
    25                       AuthenticationError, UndoTransactionException,
    25                       AuthenticationError, UndoTransactionException,
    26                       Forbidden)
    26                       Forbidden, rdf)
    27 from cubicweb.utils import json_dumps
    27 from cubicweb.utils import json_dumps
    28 from cubicweb.predicates import (authenticated_user, anonymous_user,
    28 from cubicweb.predicates import (authenticated_user, anonymous_user,
    29                                 match_form_params)
    29                                 match_form_params)
    30 from cubicweb.web import Redirect
    30 from cubicweb.web import Redirect
    31 from cubicweb.web.controller import Controller
    31 from cubicweb.web.controller import Controller
    99             if req.cnx:
    99             if req.cnx:
   100                 rset = self.process_rql()
   100                 rset = self.process_rql()
   101             else:
   101             else:
   102                 rset = None
   102                 rset = None
   103         vid = req.form.get('vid') or vid_from_rset(req, rset, self._cw.vreg.schema)
   103         vid = req.form.get('vid') or vid_from_rset(req, rset, self._cw.vreg.schema)
       
   104         if rset and len(rset) == 1:
       
   105             for mimetype in rdf.RDF_MIMETYPE_TO_FORMAT:
       
   106                 req.headers_out.addRawHeader(
       
   107                     'Link', "<%s>;rel=alternate;type=%s" % (rset.one().cwuri, mimetype))
   104         try:
   108         try:
   105             view = self._cw.vreg['views'].select(vid, req, rset=rset)
   109             view = self._cw.vreg['views'].select(vid, req, rset=rset)
   106         except ObjectNotFound:
   110         except ObjectNotFound:
   107             self.warning("the view %s could not be found", vid)
   111             self.warning("the view %s could not be found", vid)
   108             req.set_message(req._("The view %s could not be found") % vid)
   112             req.set_message(req._("The view %s could not be found") % vid)