예제 #1
0
    def clean_unlock_condition(self):
        """Validates the unlock conditions of the action."""
        data = self.cleaned_data["unlock_condition"]
        utils.validate_form_predicates(data)
        return data


class LevelAdmin(admin.ModelAdmin):
    """Level Admin"""
    list_display = ["name", "priority"]
    form = LevelAdminForm


admin.site.register(Level, LevelAdmin)
challenge_mgr.register_game_admin_model("smartgrid", Level)


class CategoryAdmin(admin.ModelAdmin):
    """Category Admin"""
    list_display = ["name", "priority"]
    prepopulated_fields = {"slug": ("name",)}

admin.site.register(Category, CategoryAdmin)
challenge_mgr.register_game_admin_model("smartgrid", Category)


def redirect_urls(model_admin, url_type):
    """change the url redirection."""
    from django.conf.urls import patterns, url
    from functools import update_wrapper
예제 #2
0
    list_display = ["pk", "code", "point_value", "create_date", "is_active", "user"]
    ordering = ["create_date", "is_active"]

    form = BonusPointAdminForm

    def delete_selected(self, request, queryset):
        """override the delete selected method."""
        _ = request
        for obj in queryset:
            obj.delete()

    delete_selected.short_description = "Delete the selected Bonus Points."

    def deactivate_selected(self, request, queryset):
        """Changes the is_active flag to false for the selected Bonus Points."""
        _ = request
        queryset.update(is_active=False)

    deactivate_selected.short_description = "Deactivate the selected Bonus Points."

    def view_codes(self, request, queryset):
        """Views the Bonus Points Codes for printing."""
        _ = request
        _ = queryset
        response = HttpResponseRedirect(reverse("bonus_view_codes", args=()))
        return response


admin.site.register(BonusPoint, BonusPointAdmin)
challenge_mgr.register_game_admin_model("smartgrid", BonusPoint)
예제 #3
0
"""Administrator interface to score_mgr."""
from django.contrib import admin
from apps.managers.challenge_mgr import challenge_mgr
from apps.widgets.participation.models import ParticipationSetting, TeamParticipation


class ParticipationSettingAdmin(admin.ModelAdmin):
    """EnergyGoal administrator interface definition."""
    list_display = ["points_50_percent", "points_75_percent", "points_100_percent", ]


admin.site.register(ParticipationSetting, ParticipationSettingAdmin)
challenge_mgr.register_game_admin_model("participation", ParticipationSetting)


class TeamParticipationAdmin(admin.ModelAdmin):
    """EnergyGoal administrator interface definition."""
    list_display = ["team", "participation", "updated_at"]


admin.site.register(TeamParticipation, TeamParticipationAdmin)
challenge_mgr.register_game_admin_model("participation", TeamParticipation)
예제 #4
0
"""Energy goal widget administrator interface; shows the team, actual vs. goal, last update."""

from django.contrib import admin
from apps.managers.challenge_mgr import challenge_mgr
from apps.managers.resource_mgr.models import WaterUsage
from apps.widgets.resource_goal.admin import GoalSettingsAdmin, GoalAdmin, BaselineDailyAdmin
from apps.widgets.resource_goal.models import WaterGoalSetting, WaterGoal, WaterBaselineDaily


admin.site.register(WaterGoalSetting, GoalSettingsAdmin)
admin.site.register(WaterGoal, GoalAdmin)
admin.site.register(WaterBaselineDaily, BaselineDailyAdmin)

challenge_mgr.register_game_admin_model("resource_goal.water", WaterGoalSetting)
challenge_mgr.register_game_admin_model("resource_goal.water", WaterUsage)
challenge_mgr.register_game_admin_model("resource_goal.water", WaterGoal)

challenge_mgr.register_sys_admin_model("Resource Settings", WaterBaselineDaily)
예제 #5
0
"""Energy goal widget administrator interface; shows the team, actual vs. goal, last update."""

from django.contrib import admin
from apps.managers.challenge_mgr import challenge_mgr
from apps.managers.resource_mgr.models import EnergyUsage
from apps.widgets.resource_goal.admin import GoalSettingsAdmin, GoalAdmin, BaselineDailyAdmin, \
    BaselineHourlyAdmin
from apps.widgets.resource_goal.models import EnergyGoalSetting, EnergyGoal, EnergyBaselineDaily, \
    EnergyBaselineHourly


admin.site.register(EnergyGoalSetting, GoalSettingsAdmin)
admin.site.register(EnergyGoal, GoalAdmin)
admin.site.register(EnergyBaselineDaily, BaselineDailyAdmin)
admin.site.register(EnergyBaselineHourly, BaselineHourlyAdmin)

challenge_mgr.register_game_admin_model("resource_goal.energy", EnergyGoalSetting)
challenge_mgr.register_game_admin_model("resource_goal.energy", EnergyUsage)
challenge_mgr.register_game_admin_model("resource_goal.energy", EnergyGoal)

challenge_mgr.register_sys_admin_model("Resource Settings", EnergyBaselineDaily)
challenge_mgr.register_sys_admin_model("Resource Settings", EnergyBaselineHourly)
예제 #6
0
        self.message_user(request, "Winners notification sent.")

    notify_winner.short_description = "Notify winner for selected prizes."

    def winner(self, obj):
        """return the winner and link to pickup form."""
        leader = obj.leader()
        if leader and obj.award_to in ('individual_overall', 'individual_team'):
            return "%s (<a href='%s'>View pickup form</a>)" % (leader,
            reverse('prize_view_form', args=(obj.pk,)))
        else:
            return leader
    winner.allow_tags = True
    winner.short_description = 'Winner'

    def notice_sent(self, obj):
        """return True if the notification had been sent."""
        leader = obj.leader()
        if leader and obj.award_to in ('individual_overall', 'individual_team'):
            return UserNotification.objects.filter(
                recipient=leader.user,
                content_type=ContentType.objects.get(model="prize"),
                object_id=obj.id).exists()
        else:
            return "N/A"
    notice_sent.short_description = 'Winner Notice Sent'


admin.site.register(Prize, PrizeAdmin)
challenge_mgr.register_game_admin_model("prizes", Prize)
예제 #7
0
class QuestAdminForm(forms.ModelForm):
    """admin form"""
    class Meta:
        """meta"""
        model = Quest

    def clean_unlock_conditions(self):
        """Validates the unlock conditions of the quest."""
        data = self.cleaned_data["unlock_conditions"]
        utils.validate_form_predicates(data)
        return data

    def clean_completion_conditions(self):
        """Validates the unlock conditions of the quest."""
        data = self.cleaned_data["completion_conditions"]
        utils.validate_form_predicates(data)
        return data


class QuestAdmin(admin.ModelAdmin):
    """Admin"""
    list_display = ["name", "level", ]

    # Automatically populates the slug field.
    prepopulated_fields = {"quest_slug": ("name",)}

    form = QuestAdminForm

admin.site.register(Quest, QuestAdmin)
challenge_mgr.register_game_admin_model("quests", Quest)
예제 #8
0
"""Administrator interface to badge."""
from django.contrib import admin
from apps.managers.challenge_mgr import challenge_mgr
from apps.widgets.badges.models import Badge


class BadgeAdmin(admin.ModelAdmin):
    """Category Admin"""
    list_display = ["name", "points", "award_condition", "priority"]
    prepopulated_fields = {"slug": ("name",)}

admin.site.register(Badge, BadgeAdmin)
challenge_mgr.register_game_admin_model("badges", Badge)
예제 #9
0
                challenge = challenge_mgr.get_challenge()
                subject = "[%s] Congratulations, you won a prize!" % challenge.competition_name
                UserNotification.create_email_notification(
                    obj.winner.email, subject, message, message)

        self.message_user(request, "Winners notification sent.")

    notify_winner.short_description = "Notify winner for selected raffle prizes."

    def winner_form(self, obj):
        """return the winner and link to pickup form."""
        if obj.winner:
            return "%s (<a href='%s'>View pickup form</a>)" % (obj.winner,
            reverse('raffle_view_form', args=(obj.pk,)))
        else:
            return '(None)'
    winner_form.allow_tags = True
    winner_form.short_description = 'Winner'

    def notice_sent(self, obj):
        """return True if the notification had been sent."""
        return UserNotification.objects.filter(
            recipient=obj.winner,
            content_type=ContentType.objects.get(model="raffleprize"),
            object_id=obj.id).exists()
    notice_sent.short_description = 'Winner Notice Sent'

admin.site.register(RafflePrize, RafflePrizeAdmin)
challenge_mgr.register_game_admin_model("raffle", RafflePrize)