Code Duplication    Length = 63-66 lines in 2 locations

pyfreebill/admin.py 2 locations

@@ 722-787 (lines=66) @@
719
    extra = 1
720
721
722
class CustomerRatesAdmin(ImportExportMixin, admin.ModelAdmin):
723
    list_display = ['id',
724
                    'ratecard',
725
                    'destination',
726
                    'prefix',
727
                    'rate',
728
                    'block_min_duration',
729
                    'init_block',
730
                    'date_start',
731
                    'date_end',
732
                    'get_boolean_display',
733
                    'date_added',
734
                    'date_modified']
735
    ordering = ['ratecard',
736
                'prefix']
737
    list_filter = ['ratecard',
738
                   'enabled',
739
                   'destination']
740
    search_fields = ['^prefix',
741
                     'date_start',
742
                     'date_end',
743
                     '^destination']
744
    actions = ['make_enabled', 'make_disabled']
745
    readonly_fields = ['id', ]
746
    form = CustomerRatesAdminForm
747
748
    def get_boolean_display(self, obj):
749
        if obj.enabled:
750
            return mark_safe('<span class="label label-success"><i class="icon-thumbs-up"></i> YES</span>')
751
        return mark_safe('<span class="label label-warning"><i class="icon-thumbs-down"></i> NO</span>')
752
    get_boolean_display.short_description = 'Enabled'
753
    get_boolean_display.admin_order_field = 'enabled'
754
    
755
    def has_change_permission(self, request, obj=None):
756
        if request.user.is_superuser:
757
            return True
758
        else:
759
            return False
760
761
    def make_enabled(self, request, queryset):
762
        rows_updated = queryset.update(enabled=True)
763
        if rows_updated == 1:
764
            message_bit = "1 item was"
765
        else:
766
            message_bit = "%s items were" % rows_updated
767
        self.message_user(request,
768
                          "%s successfully marked as enabled." % message_bit)
769
    make_enabled.short_description = _(u"mark selected items as enabled")
770
771
    def make_disabled(self, request, queryset):
772
        rows_updated = queryset.update(enabled=False)
773
        if rows_updated == 1:
774
            message_bit = "1 item was"
775
        else:
776
            message_bit = "%s items were" % rows_updated
777
        self.message_user(request,
778
                          "%s successfully marked as disabled." % message_bit)
779
    make_disabled.short_description = _(u"mark selected items as disabled")
780
781
    def get_import_formats(self):
782
        format_csv = DEFAULT_FORMATS
783
        return [f for f in format_csv if f().can_import()]
784
785
    def get_export_formats(self):
786
        format_csv = DEFAULT_FORMATS
787
        return [f for f in format_csv if f().can_export()]
788
789
790
class RateCardAdmin(admin.ModelAdmin):
@@ 607-669 (lines=63) @@
604
            return False
605
606
607
class ProviderRatesAdmin(ImportExportMixin, admin.ModelAdmin):
608
    list_display = ['provider_tariff',
609
                    'destination',
610
                    'digits',
611
                    'cost_rate',
612
                    'block_min_duration',
613
                    'init_block',
614
                    'date_start',
615
                    'date_end',
616
                    'get_boolean_display',
617
                    'date_added',
618
                    'date_modified']
619
    ordering = ['provider_tariff',
620
                'digits']
621
    list_filter = ['provider_tariff',
622
                   'enabled',
623
                   'destination']
624
    search_fields = ['^digits',
625
                     'date_start',
626
                     'date_end',
627
                     '^destination']
628
    actions = ['make_enabled',
629
               'make_disabled']
630
    form = ProviderRatesAdminForm
631
    
632
    def get_boolean_display(self, obj):
633
        if obj.enabled:
634
            return mark_safe('<span class="label label-success"><i class="icon-thumbs-up"></i> YES</span>')
635
        return mark_safe('<span class="label label-warning"><i class="icon-thumbs-down"></i> NO</span>')
636
    get_boolean_display.short_description = 'Enabled'
637
    get_boolean_display.admin_order_field = 'enabled'
638
639
    def has_change_permission(self, request, obj=None):
640
        if request.user.is_superuser:
641
            return True
642
        else:
643
            return False
644
645
    def make_enabled(self, request, queryset):
646
        rows_updated = queryset.update(enabled=True)
647
        if rows_updated == 1:
648
            message_bit = "1 item was"
649
        else:
650
            message_bit = "%s items were" % rows_updated
651
        self.message_user(request, "%s successfully marked as enabled." % message_bit)
652
    make_enabled.short_description = _(u"mark selected items as enabled")
653
654
    def make_disabled(self, request, queryset):
655
        rows_updated = queryset.update(enabled=False)
656
        if rows_updated == 1:
657
            message_bit = "1 item was"
658
        else:
659
            message_bit = "%s items were" % rows_updated
660
        self.message_user(request, "%s successfully marked as disabled." % message_bit)
661
    make_disabled.short_description = _(u"mark selected items as disabled")
662
663
    def get_import_formats(self):
664
        format_csv = DEFAULT_FORMATS
665
        return [f for f in format_csv if f().can_import()]
666
667
    def get_export_formats(self):
668
        format_csv = DEFAULT_FORMATS
669
        return [f for f in format_csv if f().can_export()]
670
671
# LCR
672