blob: 2b931cf061150778e3c005ffac275259f1153882 [file] [log] [blame]
# Copyright 2009 the Melange authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Module containing the GSoC Callback.
"""
class Callback(object):
"""Callback object that handles interaction between the core.
"""
API_VERSION = 1
def __init__(self, core):
"""Initializes a new Callback object for the specified core.
"""
self.core = core
self.views = []
def registerViews(self):
"""Instantiates all view objects.
"""
from soc.modules.gsoc.views import accept_proposals
from soc.modules.gsoc.views import accepted_orgs
from soc.modules.gsoc.views import admin
from soc.modules.gsoc.views import dashboard
from soc.modules.gsoc.views import document
from soc.modules.gsoc.views import duplicates
from soc.modules.gsoc.views import grading_record_details
from soc.modules.gsoc.views import homepage
from soc.modules.gsoc.views import invite
#from soc.modules.gsoc.views import org_app
from soc.modules.gsoc.views import mentor_evaluation
from soc.modules.gsoc.views import org_app
from soc.modules.gsoc.views import org_admin_dashboard
from soc.modules.gsoc.views import org_home
from soc.modules.gsoc.views import org_profile
from soc.modules.gsoc.views import profile
from soc.modules.gsoc.views import profile_show
from soc.modules.gsoc.views import program
from soc.modules.gsoc.views import project_details
from soc.modules.gsoc.views import projects_list
from soc.modules.gsoc.views import proposal
from soc.modules.gsoc.views import proposal_review
from soc.modules.gsoc.views import request
from soc.modules.gsoc.views import search
from soc.modules.gsoc.views import slot_transfer
from soc.modules.gsoc.views import slot_transfer_admin
#from soc.modules.gsoc.views import statistic
from soc.modules.gsoc.views import student_evaluation
from soc.modules.gsoc.views import student_forms
from soc.modules.gsoc.views import oauth
from soc.modules.gsoc.views import withdraw_projects
self.views.append(accept_proposals.AcceptProposalsPage())
self.views.append(accepted_orgs.AcceptedOrgsPage())
self.views.append(admin.DashboardPage())
self.views.append(admin.LookupLinkIdPage())
self.views.append(admin.ProjectsAcceptedOrgsPage())
self.views.append(admin.ProjectsPage())
self.views.append(admin.ProposalsAcceptedOrgsPage())
self.views.append(admin.ProposalsPage())
self.views.append(admin.SlotsPage())
self.views.append(admin.StudentsListPage())
self.views.append(admin.SurveyReminderPage())
self.views.append(dashboard.DashboardPage())
self.views.append(document.DocumentPage())
self.views.append(document.DocumentListPage())
self.views.append(document.EditDocumentPage())
self.views.append(document.EventsPage())
self.views.append(duplicates.DuplicatesPage())
self.views.append(grading_record_details.GradingRecordDetails())
self.views.append(grading_record_details.GradingRecordsOverview())
self.views.append(homepage.Homepage())
self.views.append(invite.InvitePage())
self.views.append(invite.ShowInvite())
self.views.append(mentor_evaluation.GSoCMentorEvaluationEditPage())
self.views.append(mentor_evaluation.GSoCMentorEvaluationPreviewPage())
self.views.append(mentor_evaluation.GSoCMentorEvaluationRecordsList())
self.views.append(mentor_evaluation.GSoCMentorEvaluationShowPage())
self.views.append(mentor_evaluation.GSoCMentorEvaluationTakePage())
self.views.append(org_app.GSoCOrgAppEditPage())
self.views.append(org_app.GSoCOrgAppPreviewPage())
self.views.append(org_app.GSoCOrgAppRecordsList())
self.views.append(org_app.GSoCOrgAppShowPage())
self.views.append(org_app.GSoCOrgAppTakePage())
self.views.append(org_admin_dashboard.Dashboard())
self.views.append(org_home.OrgHome())
self.views.append(org_profile.OrgProfilePage())
self.views.append(profile.GSoCProfilePage())
self.views.append(profile_show.GSoCProfileAdminPage())
self.views.append(profile_show.GSoCProfileShowPage())
self.views.append(program.ProgramPage())
self.views.append(program.GSoCProgramMessagesPage())
self.views.append(program.TimelinePage())
self.views.append(project_details.AssignMentors())
self.views.append(project_details.FeaturedProject())
self.views.append(project_details.ProjectDetails())
self.views.append(project_details.ProjectDetailsUpdate())
self.views.append(projects_list.ListProjects())
self.views.append(proposal.ProposalPage())
self.views.append(proposal_review.AcceptProposal())
self.views.append(proposal_review.AssignMentor())
self.views.append(proposal_review.IgnoreProposal())
self.views.append(proposal_review.PostComment())
self.views.append(proposal_review.PostScore())
self.views.append(proposal_review.ProposalModificationPostDeadline())
self.views.append(proposal_review.ProposalPubliclyVisible())
self.views.append(proposal_review.ReviewProposal())
self.views.append(proposal_review.WishToMentor())
self.views.append(proposal_review.WithdrawProposal())
self.views.append(proposal.UpdateProposal())
self.views.append(request.RequestPage())
self.views.append(request.ShowRequest())
self.views.append(search.SearchGsocPage())
self.views.append(slot_transfer_admin.SlotsTransferAdminPage())
self.views.append(slot_transfer.SlotTransferPage())
self.views.append(slot_transfer.UpdateSlotTransferPage())
self.views.append(student_evaluation.GSoCStudentEvaluationEditPage())
self.views.append(student_evaluation.GSoCStudentEvaluationPreviewPage())
self.views.append(student_evaluation.GSoCStudentEvaluationRecordsList())
self.views.append(student_evaluation.GSoCStudentEvaluationShowPage())
self.views.append(student_evaluation.GSoCStudentEvaluationTakePage())
self.views.append(student_forms.DownloadForm())
self.views.append(student_forms.FormPage())
self.views.append(oauth.OAuthRedirectPage())
self.views.append(oauth.OAuthVerifyToken())
# self.views.append(statistic.StatisticDashboard())
# self.views.append(statistic.StatisticFetcher())
self.views.append(withdraw_projects.WithdrawProjects())
# Appengine Task related views
from soc.modules.gsoc.tasks.grading_survey_group import \
GradingRecordTasks
from soc.modules.gsoc.tasks.accept_proposals import \
ProposalAcceptanceTask
from soc.modules.gsoc.tasks.proposal_duplicates import \
ProposalDuplicatesTask
from soc.modules.gsoc.tasks.survey_reminders import \
SurveyReminderTask
#from soc.modules.gsoc.tasks.statistic import CollectProfileSpecificStatistics
#from soc.modules.gsoc.tasks.statistic import CollectProposalSpecificStatistics
#from soc.modules.gsoc.tasks.statistic import CreateProfileSpecificStatisticService
#from soc.modules.gsoc.tasks.statistic import CreateProposalSpecificStatisticService
self.views.append(GradingRecordTasks())
self.views.append(ProposalAcceptanceTask())
self.views.append(ProposalDuplicatesTask())
self.views.append(SurveyReminderTask())
# self.views.append(CollectProfileSpecificStatistics())
# self.views.append(CollectProposalSpecificStatistics())
# self.views.append(CreateProfileSpecificStatisticService())
# self.views.append(CreateProposalSpecificStatisticService())
def registerWithSitemap(self):
"""Called by the server when sitemap entries should be registered.
"""
self.core.requireUniqueService('registerWithSitemap')
# Redesigned view registration
for view in self.views:
self.core.registerSitemapEntry(view.djangoURLPatterns())
def registerWithProgramMap(self):
"""Called by the server when program_map entries should be registered.
"""
self.core.requireUniqueService('registerWithProgramMap')
from soc.modules.gsoc.models.program import GSoCProgram
program_entities = GSoCProgram.all().fetch(1000)
map = ('GSoC Programs', [
(str(e.key()), e.name) for e in program_entities])
self.core.registerProgramEntry(map)