Changeset - fcfdb10ede8b
[Not reviewed]
0 1 0
James Polley - 6 years ago 2017-12-22 07:43:02
jp@jamezpolley.com
Display Condition type in list views

* Whether a Flag is disable-if-false or enable-if-true is a very
important detail
* But one that's easy to get wrong
* And it's hard to spot problems without inspecting every single flag

This change adds the Condition into the various admin list views, so
that it's easier to scan them all for problems and look for inconsistencies.
1 file changed with 11 insertions and 3 deletions:
0 comments (0 inline, 0 general)
vendor/registrasion/registrasion/admin.py
Show inline comments
...
 
@@ -140,24 +140,31 @@ class VoucherFlagInline(nested_admin.NestedStackedInline):
 
class VoucherAdmin(nested_admin.NestedAdmin):
 

	
 
    def effects(self, obj):
 
        ''' List the effects of the voucher in the admin. '''
 
        out = []
 

	
 
        try:
 
            voucher_condition = obj.voucherflag.condition
 
        except ObjectDoesNotExist:
 
            voucher_condition = None
 

	
 
        try:
 
            discount_effects = obj.voucherdiscount.effects()
 
        except ObjectDoesNotExist:
 
            discount_effects = None
 

	
 
        try:
 
            enabling_effects = obj.voucherflag.effects()
 
        except ObjectDoesNotExist:
 
            enabling_effects = None
 

	
 
        if discount_effects:
 
            out.append("Discounts: " + str(list(discount_effects)))
 
        if voucher_condition:
 
            out.append("Condition: " + obj.voucherflag.get_condition_display())
 
        if enabling_effects:
 
            out.append("Enables: " + str(list(enabling_effects)))
 

	
 
        return "\n".join(out)
 

	
 
    model = inventory.Voucher
...
 
@@ -178,26 +185,26 @@ class ProductFlagAdmin(
 
        return list(obj.enabling_products.all())
 

	
 
    model = conditions.ProductFlag
 
    fields = ("description", "enabling_products", "condition", "products",
 
              "categories"),
 

	
 
    list_display = ("description", "enablers", "effects")
 
    list_display = ("description", "condition", "enablers", "effects")
 

	
 

	
 
# Enabling conditions
 
@admin.register(conditions.CategoryFlag)
 
class CategoryFlagAdmin(
 
        nested_admin.NestedAdmin,
 
        EffectsDisplayMixin):
 

	
 
    model = conditions.CategoryFlag
 
    fields = ("description", "enabling_category", "condition", "products",
 
              "categories"),
 

	
 
    list_display = ("description", "enabling_category", "effects")
 
    list_display = ("description", "condition", "enabling_category", "effects")
 
    ordering = ("enabling_category",)
 

	
 

	
 
@admin.register(conditions.SpeakerFlag)
 
class SpeakerFlagAdmin(nested_admin.NestedAdmin, EffectsDisplayMixin):
 

	
...
 
@@ -212,19 +219,20 @@ class SpeakerFlagAdmin(nested_admin.NestedAdmin, EffectsDisplayMixin):
 

	
 
@admin.register(conditions.GroupMemberFlag)
 
class GroupMemberFlagAdmin(admin.ModelAdmin, EffectsDisplayMixin):
 

	
 
    fields = ("description", "group", "products", "categories")
 

	
 
    list_display = ("description", "effects")
 
    list_display = ("description", "condition", "effects")
 

	
 

	
 
@admin.register(conditions.TimeOrStockLimitFlag)
 
class TimeOrStockLimitFlagAdmin(admin.ModelAdmin, EffectsDisplayMixin):
 
    list_display = (
 
        "description",
 
        "condition",
 
        "start_time",
 
        "end_time",
 
        "limit",
 
        "effects",
 
    )
 
    ordering = ("start_time", "end_time", "limit")
0 comments (0 inline, 0 general)