equal
deleted
inserted
replaced
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) |