diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-01-11 16:19:59 +0100 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-01-11 16:19:59 +0100 | 
| commit | 2aa223c0cac8c445e9f3855db66524cfdeae9380 (patch) | |
| tree | 8b9137dd9b68121db86e4e22dfdb7b7016a6f1ad /ishtar_common/views.py | |
| parent | 23697dd97eb201dd557272293227ec42a1c95a54 (diff) | |
| parent | daeeeb175835559724c8520f4f5a8dcd5957a469 (diff) | |
| download | Ishtar-2aa223c0cac8c445e9f3855db66524cfdeae9380.tar.bz2 Ishtar-2aa223c0cac8c445e9f3855db66524cfdeae9380.zip | |
Merge branch 'develop'
Diffstat (limited to 'ishtar_common/views.py')
| -rw-r--r-- | ishtar_common/views.py | 51 | 
1 files changed, 51 insertions, 0 deletions
| diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 3d64535d4..72418e4fa 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -527,6 +527,29 @@ def autocomplete_user(request):      return HttpResponse(data, content_type='text/plain') +def autocomplete_ishtaruser(request): +    if not request.user.has_perm('ishtar_common.view_person', models.Person): +        return HttpResponse('[]', content_type='text/plain') +    q = request.GET.get('term', '') +    limit = request.GET.get('limit', 20) +    try: +        limit = int(limit) +    except ValueError: +        return HttpResponseBadRequest() +    query = Q() +    for q in q.split(' '): +        qu = (Q(person__name__icontains=q) | +              Q(person__surname__icontains=q) | +              Q(person__raw_name__icontains=q)) +        query = query & qu +    users = models.IshtarUser.objects.filter(query)[:limit] +    data = json.dumps([ +        {'id': user.pk, +         'value': unicode(user)} +        for user in users]) +    return HttpResponse(data, content_type='text/plain') + +  def autocomplete_person(request, person_types=None, attached_to=None,                          is_ishtar_user=None, permissive=False):      all_items = request.user.has_perm('ishtar_common.view_person', @@ -1754,6 +1777,32 @@ def get_bookmark(request, pk):      ) +def gen_generate_doc(model): + +    def func(request, pk, template_pk=None): +        if not request.user.has_perm('view_' + model.SLUG, model): +            return HttpResponse(content_type='text/plain') +        try: +            item = model.objects.get(pk=pk) +            doc = item.publish(template_pk) +        except model.DoesNotExist: +            doc = None +        if doc: +            MIMES = {'odt': 'application/vnd.oasis.opendocument.text', +                     'ods': 'application/vnd.oasis.opendocument.spreadsheet'} +            ext = doc.split('.')[-1] +            doc_name = item.get_filename() + "." + ext +            mimetype = 'text/csv' +            if ext in MIMES: +                mimetype = MIMES[ext] +            response = HttpResponse(open(doc), content_type=mimetype) +            response['Content-Disposition'] = 'attachment; filename=%s' % \ +                                              doc_name +            return response +        return HttpResponse(content_type='text/plain') +    return func + +  class SearchQueryMixin(object):      """      Manage content type and profile init @@ -1978,3 +2027,5 @@ class QAItemEditForm(QAItemForm):      def form_save(self, form):          form.save(self.items, self.request.user)          return HttpResponseRedirect(reverse("success")) + + | 
