diff -r dbbd99172620 -r c8a95e540b79 src/cm/views/__init__.py --- a/src/cm/views/__init__.py Fri Dec 04 14:05:05 2009 +0100 +++ b/src/cm/views/__init__.py Tue Dec 08 16:51:48 2009 +0100 @@ -17,12 +17,25 @@ import simplejson import sys +def get_textversion_by_keys_or_404(textversion_key, adminkey=None, key=None): + try: + if not adminkey: + textversion = TextVersion.objects.get(key=textversion_key) + else: + textversion = TextVersion.objects.get(key=textversion_key, adminkey=adminkey) + if textversion.text.key == key: + return textversion + else : + raise Http404('Mismatch keys Text / TextVersion') + except TextVersion.DoesNotExist: + raise Http404('No TextVersion with such keys') + def get_text_by_keys_or_404(key, adminkey=None): try: if not adminkey: return Text.objects.get(key=key) else: - return Text.objects.get(key = key, adminkey = adminkey) + return Text.objects.get(key=key, adminkey=adminkey) except Text.DoesNotExist: raise Http404('No Text with such keys')