This article can help : https://hakibenita.medium.com/how-to-add-custom-action-buttons-to-django-admin-8d266f5b0d41
On Thursday, 5 August 2021 at 18:31:52 UTC+5:30 [email protected] wrote: > 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 %} > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/a4abd021-7623-4c41-aaa4-ecd35b519b67n%40googlegroups.com.

