示例#1
0
文件: admin.py 项目: csdl/makahiki
    DesignerGrid
from django.http import HttpResponseRedirect
from apps.managers.predicate_mgr import predicate_mgr


class DesignerDraftAdmin(admin.ModelAdmin):
    """Admin for Drafts."""
    list_display = ["name", ]
    prepopulated_fields = {"slug": ("name",)}


admin.site.register(Draft, DesignerDraftAdmin)
challenge_designer_site.register(Draft, DesignerDraftAdmin)
challenge_manager_site.register(Draft, DesignerDraftAdmin)
developer_site.register(Draft, DesignerDraftAdmin)
challenge_mgr.register_designer_challenge_info_model("Smart Grid Game Designer", 5, \
                                                     Draft, 1)
challenge_mgr.register_developer_challenge_info_model("Smart Grid Game Designer", 4, \
                                                      Draft, 1)


class DesignerActionAdmin(admin.ModelAdmin):
    """abstract admin for action."""
    actions = ["delete_selected", "copy_action"]
    list_display = ["draft", "slug", "title", "type", "point_value"]
    search_fields = ["draft", "slug", "title"]
    list_filter = ['draft', 'type', ]

    def delete_selected(self, request, queryset):
        """override the delete selected."""
        _ = request
        for obj in queryset:
示例#2
0
    "There must be only one Challenge Setting."

    def has_add_permission(self, request):
        return False

    def has_delete_permission(self, request, obj=None):
        return False

admin.site.register(ChallengeSetting, ChallengeSettingAdmin)
challenge_designer_site.register(ChallengeSetting, ChallengeSettingAdmin)
challenge_manager_site.register(ChallengeSetting, ChallengeSettingAdmin)
developer_site.register(ChallengeSetting, ChallengeSettingAdmin)
admin.site.register(UploadImage)
developer_site.register(UploadImage)

challenge_mgr.register_designer_challenge_info_model("Challenge", 1, ChallengeSetting, 1)
challenge_mgr.register_designer_challenge_info_model("Challenge", 1, RoundSetting, 2)
challenge_mgr.register_designer_challenge_info_model("Other Settings", 3, PageInfo, 1)

from djcelery.models import CrontabSchedule, PeriodicTask, IntervalSchedule
CrontabSchedule.__doc__ = "Defines the schedule in crontab format (minute/hour/day)."
developer_site.register(CrontabSchedule)

IntervalSchedule.__doc__ = "Defines the schedule in intervals, such as every hour, every minutes."
developer_site.register(IntervalSchedule)

PeriodicTask.__doc__ = "Defines the scheduled tasks."
developer_site.register(PeriodicTask)

challenge_mgr.register_developer_challenge_info_model("Challenge", 1, ChallengeSetting, 1)
challenge_mgr.register_developer_challenge_info_model("Challenge", 1, RoundSetting, 2)
示例#3
0
    def team(self, obj):
        """return the user name."""
        return obj.get_profile().team
    team.short_description = 'Team'

    def referred_by(self, obj):
        """return the name of the referrer."""
        return obj.get_profile().referring_user

    referred_by.short_description = 'Referred by'

    def profile(self, obj):
        """return the user profile."""
        return '<a href="%s/%d/">%s</a>' % ("/admin/player_mgr/profile",
                                           obj.get_profile().pk,
                                           obj.get_profile().name)
    profile.allow_tags = True
    profile.short_description = 'Link to Profile'


admin.site.unregister(User)
User.__doc__ = "Represents a player in the system."
User.admin_tool_tip = "Challenge Players. They must be defined before anyone can play."
admin.site.register(User, MakahikiUserAdmin)
challenge_designer_site.register(User, MakahikiUserAdmin)
challenge_manager_site.register(User, MakahikiUserAdmin)
developer_site.register(User, MakahikiUserAdmin)
challenge_mgr.register_designer_challenge_info_model("Players", 2, User, 2)
challenge_mgr.register_developer_challenge_info_model("Players", 2, User, 3)
admin.site.register(Team, TeamAdmin)
challenge_designer_site.register(Team, TeamAdmin)
challenge_manager_site.register(Team, TeamAdmin)
developer_site.register(Team, TeamAdmin)


class PostAdmin(admin.ModelAdmin):
    """Post administrator for teams, overrides delete_selected"""
    list_filter = ["style_class", "team"]
    actions = ["delete_selected"]

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

    delete_selected.short_description = "Delete the selected objects."

admin.site.register(Post, PostAdmin)
challenge_designer_site.register(Post, PostAdmin)
challenge_manager_site.register(Post, PostAdmin)
developer_site.register(Post, PostAdmin)

challenge_mgr.register_designer_challenge_info_model("Players", 2, Group, 2)
challenge_mgr.register_designer_challenge_info_model("Players", 2, Team, 2)
challenge_mgr.register_admin_challenge_info_model("Status", 1, Post, 5)
challenge_mgr.register_developer_challenge_info_model("Players", 2, Group, 1)
challenge_mgr.register_developer_challenge_info_model("Players", 2, Team, 2)
challenge_mgr.register_developer_challenge_info_model("Status", 4, Post, 5)
示例#5
0
        "start_dynamic_bonus",
    ]

    def has_add_permission(self, request):
        return False

    def has_delete_permission(self, request, obj=None):
        return False


admin.site.register(ReferralSetting, ReferralSettingAdmin)
challenge_designer_site.register(ReferralSetting, ReferralSettingAdmin)
challenge_manager_site.register(ReferralSetting, ReferralSettingAdmin)
developer_site.register(ReferralSetting, ReferralSettingAdmin)

challenge_mgr.register_designer_challenge_info_model("Challenge", 1,
                                                     ScoreSetting, 3)
challenge_mgr.register_designer_game_info_model("Referral Game Mechanics",
                                                ReferralSetting)
challenge_mgr.register_admin_challenge_info_model("Status", 1,
                                                  PointsTransaction, 4)
challenge_mgr.register_admin_challenge_info_model("Status", 1, ScoreboardEntry,
                                                  5)
challenge_mgr.register_developer_challenge_info_model("Challenge", 1,
                                                      ScoreSetting, 3)
challenge_mgr.register_developer_challenge_info_model("Status", 4,
                                                      PointsTransaction, 2)
challenge_mgr.register_developer_challenge_info_model("Status", 4,
                                                      ScoreboardEntry, 3)
challenge_mgr.register_developer_game_info_model("Referral Game Mechanics",
                                                 ReferralSetting)
示例#6
0
developer_site.register(ScoreSetting, ScoreSettingAdmin)


class ReferralSettingAdmin(admin.ModelAdmin):
    """PointsTransaction administrator interface definition."""
    list_display = ["normal_referral_points", "super_referral_points",
                    "mega_referral_points", "start_dynamic_bonus", ]
    list_display_links = ["normal_referral_points", "super_referral_points",
                    "mega_referral_points", "start_dynamic_bonus", ]

    def has_add_permission(self, request):
        return False

    def has_delete_permission(self, request, obj=None):
        return False

admin.site.register(ReferralSetting, ReferralSettingAdmin)
challenge_designer_site.register(ReferralSetting, ReferralSettingAdmin)
challenge_manager_site.register(ReferralSetting, ReferralSettingAdmin)
developer_site.register(ReferralSetting, ReferralSettingAdmin)


challenge_mgr.register_designer_challenge_info_model("Challenge", 1, ScoreSetting, 3)
challenge_mgr.register_designer_game_info_model("Referral Game Mechanics", ReferralSetting)
challenge_mgr.register_admin_challenge_info_model("Status", 1, PointsTransaction, 4)
challenge_mgr.register_admin_challenge_info_model("Status", 1, ScoreboardEntry, 5)
challenge_mgr.register_developer_challenge_info_model("Challenge", 1, ScoreSetting, 3)
challenge_mgr.register_developer_challenge_info_model("Status", 4, PointsTransaction, 2)
challenge_mgr.register_developer_challenge_info_model("Status", 4, ScoreboardEntry, 3)
challenge_mgr.register_developer_game_info_model("Referral Game Mechanics", ReferralSetting)
示例#7
0
            obj.slug = slug + "-copy"
            try:
                obj.save()
            except IntegrityError:
                # How do we indicate an error to the admin?
                pass
    copy_action.short_description = "Copy selected Action(s)"

    def get_urls(self):
        return redirect_urls(self, "change")

admin.site.register(LibraryAction, LibraryActionAdmin)
challenge_designer_site.register(LibraryAction, LibraryActionAdmin)
challenge_manager_site.register(LibraryAction, LibraryActionAdmin)
developer_site.register(LibraryAction, LibraryActionAdmin)
challenge_mgr.register_designer_challenge_info_model("Smart Grid Game Library", 4, \
                                                     LibraryAction, 2)
challenge_mgr.register_developer_challenge_info_model("Smart Grid Game Library", 4, \
                                                      LibraryAction, 2)


class LibraryColumnNameAdmin(admin.ModelAdmin):
    """LibraryColumnName Admin."""
    list_display = ["name"]
    prepopulated_fields = {"slug": ("name",)}
    fields = ["name", "slug"]

admin.site.register(LibraryColumnName, LibraryColumnNameAdmin)
challenge_designer_site.register(LibraryColumnName, LibraryColumnNameAdmin)
challenge_manager_site.register(LibraryColumnName, LibraryColumnNameAdmin)
developer_site.register(LibraryColumnName, LibraryColumnNameAdmin)
challenge_mgr.register_designer_challenge_info_model("Smart Grid Game Library", 4, \
示例#8
0
    is_ra.short_description = 'Is RA'

    def points(self, obj):
        """return the user name."""
        return obj.profile.points()

    points.short_description = 'Points'

    def setup_complete(self, obj):
        """return the user name."""
        return obj.profile.setup_complete

    setup_complete.short_description = 'Setup completed'

    def referred_by(self, obj):
        """return the name of the referrer."""
        return obj.profile.referring_user

    referred_by.short_description = 'Referred by'


User.__doc__ = "Represents a player in the system."
User.admin_tool_tip = "Challenge Players. They must be defined before anyone can play."

challenge_designer_site.register(User, MakahikiUserAdmin)
challenge_manager_site.register(User, MakahikiUserAdmin)
developer_site.register(User, MakahikiUserAdmin)

challenge_mgr.register_designer_challenge_info_model("Players", 2, User, 2)
challenge_mgr.register_developer_challenge_info_model("Players", 2, User, 3)
            obj.slug = slug + "-copy"
            try:
                obj.save()
            except IntegrityError:
                # How do we indicate an error to the admin?
                pass
    copy_action.short_description = "Copy selected Action(s)"

    def get_urls(self):
        return redirect_urls(self, "change")

admin.site.register(DesignerAction, DesignerActionAdmin)
challenge_designer_site.register(DesignerAction, DesignerActionAdmin)
challenge_manager_site.register(DesignerAction, DesignerActionAdmin)
developer_site.register(DesignerAction, DesignerActionAdmin)
challenge_mgr.register_designer_challenge_info_model("Smart Grid Game Designer", 5, \
                                                     DesignerAction, 2)
challenge_mgr.register_developer_challenge_info_model("Smart Grid Game Designer", 4, \
                                                      DesignerAction, 2)


class DesignerActivityAdminForm(forms.ModelForm):
    """Activity Admin Form."""
    class Meta:
        """Meta"""
        model = DesignerActivity

    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
示例#10
0
challenge_designer_site.register(Team, TeamAdmin)
challenge_manager_site.register(Team, TeamAdmin)
developer_site.register(Team, TeamAdmin)


class PostAdmin(admin.ModelAdmin):
    """Post administrator for teams, overrides delete_selected"""
    list_filter = ["style_class", "team"]
    actions = ["delete_selected"]

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

    delete_selected.short_description = "Delete the selected objects."


admin.site.register(Post, PostAdmin)
challenge_designer_site.register(Post, PostAdmin)
challenge_manager_site.register(Post, PostAdmin)
developer_site.register(Post, PostAdmin)

challenge_mgr.register_designer_challenge_info_model("Players", 2, Group, 2)
challenge_mgr.register_designer_challenge_info_model("Players", 2, Team, 2)
challenge_mgr.register_admin_challenge_info_model("Status", 1, Post, 5)
challenge_mgr.register_developer_challenge_info_model("Players", 2, Group, 1)
challenge_mgr.register_developer_challenge_info_model("Players", 2, Team, 2)
challenge_mgr.register_developer_challenge_info_model("Status", 4, Post, 5)
示例#11
0
    list_display = ["name", "unit", "winning_order", "conversion_rate"]
    readonly_fields = ["name"]

    def has_add_permission(self, request):
        return False

    def has_delete_permission(self, request, obj=None):
        return False

admin.site.register(ResourceSetting, ResourceSettingsAdmin)
challenge_designer_site.register(ResourceSetting, ResourceSettingsAdmin)
challenge_manager_site.register(ResourceSetting, ResourceSettingsAdmin)
developer_site.register(ResourceSetting, ResourceSettingsAdmin)


class ResourceBlackoutDateAdmin(admin.ModelAdmin):
    """EnergyGoal administrator interface definition."""
    list_display = ["date", "description"]

admin.site.register(ResourceBlackoutDate, ResourceBlackoutDateAdmin)
challenge_designer_site.register(ResourceBlackoutDate, ResourceBlackoutDateAdmin)
challenge_manager_site.register(ResourceBlackoutDate, ResourceBlackoutDateAdmin)
developer_site.register(ResourceBlackoutDate, ResourceBlackoutDateAdmin)
challenge_mgr.register_designer_challenge_info_model("Other Settings", 3, ResourceBlackoutDate, 4)

challenge_mgr.register_developer_challenge_info_model("Resources", 5, ResourceSetting, 1)
challenge_mgr.register_developer_challenge_info_model("Resources", 5, ResourceBlackoutDate, 1)
challenge_mgr.register_developer_game_info_model("Energy Game", EnergyUsage)
challenge_mgr.register_developer_game_info_model("Water Game", WaterUsage)
challenge_mgr.register_developer_game_info_model("Waste Game", WasteUsage)
示例#12
0
    def has_add_permission(self, request):
        return False

    def has_delete_permission(self, request, obj=None):
        return False


admin.site.register(ChallengeSetting, ChallengeSettingAdmin)
challenge_designer_site.register(ChallengeSetting, ChallengeSettingAdmin)
challenge_manager_site.register(ChallengeSetting, ChallengeSettingAdmin)
developer_site.register(ChallengeSetting, ChallengeSettingAdmin)
admin.site.register(UploadImage)
developer_site.register(UploadImage)

challenge_mgr.register_designer_challenge_info_model("Challenge", 1,
                                                     ChallengeSetting, 1)
challenge_mgr.register_designer_challenge_info_model("Challenge", 1,
                                                     RoundSetting, 2)
challenge_mgr.register_designer_challenge_info_model("Other Settings", 3,
                                                     PageInfo, 1)

from djcelery.models import CrontabSchedule, PeriodicTask, IntervalSchedule
CrontabSchedule.__doc__ = "Defines the schedule in crontab format (minute/hour/day)."
developer_site.register(CrontabSchedule)

IntervalSchedule.__doc__ = "Defines the schedule in intervals, such as every hour, every minutes."
developer_site.register(IntervalSchedule)

PeriodicTask.__doc__ = "Defines the scheduled tasks."
developer_site.register(PeriodicTask)
示例#13
0
"""Admin definition."""
from django.contrib import admin
from apps.managers.challenge_mgr import challenge_mgr
from apps.widgets.notifications.models import NoticeTemplate, UserNotification
from apps.admin.admin import challenge_designer_site, challenge_manager_site, developer_site


class UserNotificationAdmin(admin.ModelAdmin):
    """raffle admin"""
    list_display = ('recipient', 'content_object', 'content_type', 'unread', 'level')
    search_fields = ('recipient__username', 'content_type__name')


admin.site.register(NoticeTemplate)
challenge_designer_site.register(NoticeTemplate)
challenge_manager_site.register(NoticeTemplate)
developer_site.register(NoticeTemplate)
admin.site.register(UserNotification, UserNotificationAdmin)
challenge_designer_site.register(UserNotification, UserNotificationAdmin)
challenge_manager_site.register(UserNotification, UserNotificationAdmin)
developer_site.register(UserNotification, UserNotificationAdmin)
challenge_mgr.register_designer_challenge_info_model("Other Settings", 3, NoticeTemplate, 3)
challenge_mgr.register_admin_challenge_info_model("Notifications", 3, UserNotification, 2)
challenge_mgr.register_developer_challenge_info_model("Status", 4, NoticeTemplate, 5)
challenge_mgr.register_developer_challenge_info_model("Status", 4, UserNotification, 5)
示例#14
0
                                        "Sub-topics of sub-topics are not "
                                        "allowed.")
        if parent_topic and parent_topic.slug == self.cleaned_data["slug"]:
            raise forms.ValidationError(
                "Topic cannot be a sub-topic of itself.")

        return parent_topic


class HelpTopicAdmin(admin.ModelAdmin):
    """Help topic administrative interface."""
    # Automatically populates the slug field.
    prepopulated_fields = {"slug": ("title",)}
    list_filter = ["category", ]
    search_fields = ["slug", "title"]
    list_display = ["slug", "category", "priority", "parent_topic"]
    page_text = "Click on the slug to edit the details of the Help Topic. " + \
    "There are three categories of Help Topic, FAQs, Rules, and Widget. " + \
    "Widget Help Topics are displayed when a player clicks the help link for " + \
    "an individual widget. FAQs, and Rules are used by the Help FAQ widget and " + \
    "Help Rules widget."

    form = HelpAdminForm

admin.site.register(HelpTopic, HelpTopicAdmin)
challenge_designer_site.register(HelpTopic, HelpTopicAdmin)
challenge_manager_site.register(HelpTopic, HelpTopicAdmin)
developer_site.register(HelpTopic, HelpTopicAdmin)
challenge_mgr.register_designer_challenge_info_model("Other Settings", 3, HelpTopic, 2)
challenge_mgr.register_developer_challenge_info_model("Challenge", 1, HelpTopic, 5)