import django_filters
from .models import Project


class ProjectFilter(django_filters.FilterSet):
    
    PLEDGECHOICES=(
        ('most funded','Most Funded'),
        ('least funded', 'Least Funded')
    )
    
    
    
    ordering = django_filters.ChoiceFilter(label='Funded', choices=PLEDGECHOICES, method='filter_by_order')

    
    class Meta:
        model= Project
        fields= {
            'projectname':['icontains'],
            'category':['exact'],
            'platform':['exact'],
            'status':['exact']
            
            }
        
    
    def filter_by_order(self, queryset, name, value):
        expression = '-pledged' if value == 'most funded' else 'pledged'
        return queryset.order_by(expression)
    
    