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
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)
"""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)
"""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)
"""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)
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)
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)
"""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)
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)