Please help me to add button functionality in django admin panel for filter list of objects

229 views
Skip to first unread message

ARVIND SHRIVASTAV

unread,
Aug 5, 2021, 9:01:52 AM8/5/21
to Django users
hey guys i want to add the action on click the list will be filter of objects

here the on click of view client task i want to filter task which author type is client
Here its my try.

inherit html
{% extends 'admin/change_list.html' %}

{% block object-tools %}
<div>
<form action="" method="POST">
{% csrf_token %}
<button type="submit" name="get_client">View Client Task</button>
</form>

</div>
<br />



admin.py
task admin

from django.conf.urls import patterns, url
from django.core.urlresolvers import reverse
class TaskAdmin(SimpleHistoryAdmin, ExportActionModelAdmin):
change_list_template = "admin/client_task_change_list.html"
fieldsets = (
(
None,
{'fields': ('title', 'amount','word','status', 'manager', 'executive', 'assignee','owner','timezone','moved_to_freelancer_portal', 'can_send_without_payment', 'start_date','deadline_soft','deadline_hard','client','team_lead','quality_manager','referencing_style', 'tags')}
),
(
_('Content'),
{'fields': ('description','author')}
),
(
_('Tracking'),
{'fields': ('accepted_by_manager', 'accepted_by_manager_at', 'completed_by_employee', 'completed_by_employee_at',\
'verified_by_manager','verified_by_manager_at','verified_by_quality','verified_by_quality_at',\
'sent_to_client','sent_to_client_at','completed_on')}
),
)

inlines = (PaymentInline,RatingInline,)
list_display = ('title', 'status', 'client', 'manager', 'assignee', 'executive', 'team_lead', 'quality_manager','get_payment_status','author','created_at','deadline_soft','deadline_hard','word')
list_filter = ('status', 'author__type', 'client__clientprofile__email_to_use', OverdueTaskListFilter,('manager', admin.RelatedOnlyFieldListFilter), ('team_lead', admin.RelatedOnlyFieldListFilter), ('quality_manager', admin.RelatedOnlyFieldListFilter),PaymentStatusCategoryListFilter,('deadline_soft', DateRangeFilter),('deadline_hard', DateRangeFilter), ('start_date', DateRangeFilter), ('completed_on', DateRangeFilter), AuthorFilter, ('owner', admin.RelatedOnlyFieldListFilter), 'moved_to_freelancer_portal')
search_fields = ('key', 'title', 'client__username', 'client__email', 'manager__email',)
date_hierarchy = ('deadline_hard')
resource_class = TaskResource

# def get_urls(self):

# urls = super(TaskAdmin,self).get_urls()
# extra_url = patterns('',
# # url(r'^Client/$',self.get_client_task, name='get_client_task'),#self.admin_site.admin_view(self.do_evil_view))
# url(r'^client/$',self.admin_site.admin_view(self.get_client_task)),
# )
# return urls + extra_url
# def get_client_task(self, request):
# # if 'get_client' in request.POST:
# Task.objects.filter(author__type = UserAccount.LEVEL0)
# # if self.model.objects.filter(author__type = UserAccount.LEVEL0).exists():
# self.message_user(request, "Here Its all Clients Tasks")
# # else:
# # self.message_user(request, "NO Clients Tasks")

# return reverse('../')

formats = (
base_formats.CSV,
base_formats.XLS,
)
raw_id_fields = ('author','assignee', 'team_lead','executive','quality_manager', 'manager', 'client', 'owner', 'executive', 'specification')
history_list_display = ["history_change_reason", "word", "deadline_hard","moved_to_freelancer_portal", "status"]
#filter_horizontal = ('equipment',)

# def render_change_form(self, request, context, *args, **kwargs):
# """We need to update the context to show the button."""
# context.update({'show_client_task': True})
# return super().render_change_form(request, context, *args, **kwargs)


def get_payment_status(self, obj):
return obj.payment.get_status()
get_payment_status.short_description = 'Payment'
def get_queryset(self, request):
queryset = super(TaskAdmin, self).get_queryset(
request).annotate(feedback_count=Count('feedback'))
# if 'get_client' in request.POST:
# queryset.filter(author__type = UserAccount.LEVEL0)
# return queryset
# return queryset
    {{ block.super }}
{% endblock %}
Screenshot from 2021-08-05 11-50-47.png

MR INDIA

unread,
Aug 8, 2021, 11:49:04 AM8/8/21
to Django users
Reply all
Reply to author
Forward
0 new messages