blob: de02a90c9163c16f1c0d7985a73b3d55dd56ac35 [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.
"""This module contains the ProposalDuplicates Model.
"""
from google.appengine.ext import db
import soc.modules.gsoc.models.profile
import soc.modules.gsoc.models.program
class GSoCProposalDuplicate(db.Model):
"""Model used to store the duplicate proposals for a student
in a Project-Based Program.
"""
#: Program in which this duplicates exist
program = db.ReferenceProperty(
reference_class=soc.modules.gsoc.models.program.GSoCProgram,
required=True, collection_name='duplicate_proposals')
#: Student who has these duplicates
student = db.ReferenceProperty(
reference_class=soc.modules.gsoc.models.profile.GSoCProfile,
required=True, collection_name='students_duplicates')
#: List of organizations to which the proposals belong to
orgs = db.ListProperty(item_type=db.Key, default=[])
#: List of all proposals that would be accepted for this student
duplicates = db.ListProperty(item_type=db.Key, default=[])
#: Property which specifies if number of proposals in duplicates
#: is more than allowed amount of the program.
is_duplicate = db.BooleanProperty(required=True, default=False)