blob: 43ae973f8d5f5cc1bdd9ac0513e66e6f2c492bbf [file] [log] [blame]
# Copyright 2010 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.
"""A Django template tag library containing StudentProposal helpers.
"""
from google.appengine.ext import db
from django import template
from soc.modules.gsoc.models.org_admin import GSoCOrgAdmin
register = template.Library()
@register.inclusion_tag(
'modules/gsoc/templatetags/_as_proposal_duplicates.html',
takes_context=True)
def as_proposal_duplicates(context, proposal_duplicate):
"""Returns a HTML representation of a proposal duplicates.
"""
context['student'] = proposal_duplicate.student
orgs = db.get(proposal_duplicate.orgs)
proposals = db.get(proposal_duplicate.duplicates)
orgs_details = {}
for org in orgs:
orgs_details[org.key().id_or_name()] = {
'name': org.name
}
q = GSoCOrgAdmin.all()
q.filter('scope', org)
q.filter('status', 'active')
org_admins = q.fetch(1000)
orgs_details[org.key().id_or_name()]['admins'] = []
for org_admin in org_admins:
orgs_details[org.key().id_or_name()]['admins'].append({
'name': org_admin.name(),
'email': org_admin.email
})
orgs_details[org.key().id_or_name()]['proposals'] = []
for proposal in proposals:
if proposal.org.key() == org.key():
orgs_details[org.key().id_or_name()]['proposals'].append({
'key': proposal.key().id_or_name(),
'title': proposal.title,
})
context['orgs'] = orgs_details
return context
@register.inclusion_tag(
'modules/gsoc/templatetags/_as_student_proposal_review_duplicate.html',
takes_context=True)
def as_student_proposal_review_duplicate(context, proposal):
"""Returns a HTML representation of a proposal duplicates for the Proposal
Review page.
"""
org_entity = proposal.org
fields = {'scope': org_entity,
'status': 'active'}
org_admin_entities = org_admin_logic.getForFields(fields)
org_admins = [(org_admin.name(), org_admin.email)
for org_admin in org_admin_entities]
context.update({'title': proposal.title,
'org_name': org_entity.name,
'org_admins': org_admins })
return context