Exemplo n.º 1
0
 def form_valid(self, form):
     response = super().form_valid(form)
     if hasattr(form, 'multiple_objects_created') and form.multiple_objects_created > 1:
         msg = '%d "%s" were created/updated successfully' % (
             form.multiple_objects_created,
             cap_words(self.object._meta.verbose_name_plural))
     else:
         msg = base_success_msg % (
             cap_words(self.object._meta.verbose_name),
             self.object.__str__(), self.success_message)
     messages.success(self.request, msg)
     return response
Exemplo n.º 2
0
    def post(self, request, *args, **kwargs):
        message = 'Success'
        status = 'success'

        if 'new_task_queue' not in request.POST:
            tq_form = TaskQueueChoiceForm(request.POST)
            if not tq_form.is_valid():
                status = 'error'
                message = 'Please choose Task Queue'
        else:
            tq_form = TaskQueueForm(request.POST)
            project_form_class = ProjectForm if 'new_project' in request.POST else ProjectChoiceForm
            project_form = project_form_class(request.POST)
            if not tq_form.is_valid():
                status = 'error'
                message = 'Task Queue: %s' % '; '.join(
                    '{} - {}'.format(cap_words(field), ' ,'.join(errors))
                    for field, errors in tq_form.errors.items())
            elif 'new_project' in request.POST and not project_form.is_valid():
                status = 'error'
                message = 'Project: %s' % '; '.join(
                    '{} - {}'.format(cap_words(field), ' ,'.join(errors))
                    for field, errors in project_form.errors.items())

        if status == 'success':
            document_pks = DocumentCluster.objects.get(pk=request.GET['cluster_pk']) \
                .documents.values_list('pk', flat=True)
            if 'new_task_queue' in request.POST:
                task_queue = TaskQueue.objects.create(
                    description=request.POST['description'])
                if 'reviewers' in request.POST:
                    task_queue.reviewers.set(request.POST.getlist('reviewers'))
            else:
                task_queue = TaskQueue.objects.get(
                    pk=request.POST['task_queue'])
            task_queue.documents.add(*document_pks)
            project = None
            if 'new_project' in request.POST:
                project = Project.objects.create(
                    name=request.POST['name'],
                    description=request.POST['project_description'])
            elif 'project' in request.POST:
                project = Project.objects.get(pk=request.POST['project'])
            if project:
                project.task_queues.add(task_queue)
        return JsonResponse({
            'message': message,
            'status': status
        },
                            encoder=DjangoJSONEncoder,
                            safe=False)
Exemplo n.º 3
0
 def post(self, request, *args, **kwargs):
     obj = self.get_object()
     msg = base_success_msg % (cap_words(
         obj._meta.verbose_name), obj.__str__(), 'deleted')
     if request.is_ajax():
         obj.delete()
         data = {'message': msg, 'level': 'success'}
         return JsonResponse(data, encoder=DjangoJSONEncoder, safe=False)
     messages.success(request, msg)
     return super().post(request, *args, **kwargs)
Exemplo n.º 4
0
def get_deleted_objects(objs, request, admin_site):
    """
    Patched django/contrib/admin/utils.py
    to skip collecting links for related nested objects
    """
    try:
        obj = objs[0]
    except IndexError:
        return [], {}, set(), []
    else:
        using = router.db_for_write(obj._meta.model)
    collector = NestedObjects(using=using)
    collector.collect(objs)
    model_count = {model._meta.verbose_name_plural: len(objs) for model, objs in collector.model_objs.items()}
    to_delete = ['{}: {}'.format(cap_words(k), v) for k, v in model_count.items()]
    return to_delete, model_count, None, None
Exemplo n.º 5
0
 def process(self, request):
     if not self.owner:
         return self.failure()
     defaults = {
         self.owner_field: self.owner,
         'key': request.POST['key'],
         'value': request.POST['value']
     }
     if self.request.POST.get('property_pk'):
         _, created = self.property_class.objects.update_or_create(
             pk=self.request.POST['property_pk'], defaults=defaults)
     else:
         self.property_class.objects.create(**defaults)
         created = True
     action = 'created' if created else 'updated'
     self.success_message = '%s Property was successfully %s' \
                            % (cap_words(self.owner_class._meta.verbose_name), action)
     return self.success()
Exemplo n.º 6
0
 def process(self, request):
     if not self.owner:
         return self.failure()
     defaults = {
         self.owner_field: self.owner,
         'tag': request.POST['tag'],
         'user': request.user,
         'timestamp': datetime.datetime.now()
     }
     if self.request.POST.get('tag_pk'):
         obj, created = self.tag_class.objects.update_or_create(
             pk=self.request.POST['tag_pk'], defaults=defaults)
     else:
         obj = self.tag_class.objects.create(**defaults)
         created = True
     action = 'created' if created else 'updated'
     self.success_message = '%s Tag %s was successfully %s' \
                            % (cap_words(self.owner_class._meta.verbose_name), str(obj), action)
     return self.success()
def capwords(value):
    """
    Capitalizes the first character of every word in the value.
    Use except_words dict for exceptions.
    """
    return cap_words(value)