Add functions for CSV export of organizations and roles.
Those CSV exports are used to create Google Code GSoC projects at the end of the program for students code submissions.
indexes:
# used to list proposal in descending order of their score
- kind: StudentProposal
properties:
- name: org
- name: status
- name: score
direction: desc
# used to list reviews in ascending order of date
- kind: Review
properties:
- name: is_public
- name: scope
- name: created
# used to determine which orgs have more then 0 slots assigned.
- kind: Organization
properties:
- name: scope
- name: status
- name: slots
# used to order accepted orgs
- kind: Organization
properties:
- name: scope
- name: status
- name: name
# used to determine which proposals have a mentor assigned
- kind: StudentProposal
properties:
- name: org
- name: status
- name: mentor
# used to determine which proposals will be accepted
- kind: StudentProposal
properties:
- name: org
- name: status
- name: __key__
# used for the bulk mailing of students
- kind: Student
properties:
- name: scope
- name: __key__
# used for the cron system
- kind: Job
properties:
- name: priority_group
- name: status
- name: __key__
# Used for bulk mailing student and mentors with survey reminders. Also used
# for gathering GradingRecords for evaluation purposes.
- kind: StudentProject
properties:
- name: program
- name: status
- name: __key__
# Used to update StudentProjects with the grade_decsion contained in a
# GradingRecord.
- kind: GradingRecord
properties:
- name: grading_survey_group
- name: __key__
# used to order the accepted GHOPorganizations on there name
- kind: GHOPOrganization
properties:
- name: scope
- name: status
- name: name
# used to order GHOPComments under a GHOPTask with that GHOPTask being
# its ancestor entity in the entity group.
- kind: GHOPComment
ancestor: yes
properties:
- name: created_on
# used to order GHOPWorkSubmissions under a GHOPTask with that GHOPTask being
# its ancestor entity in the entity group.
- kind: GHOPWorkSubmission
ancestor: yes
properties:
- name: submitted_on
# used to fetch Task Difficulty levels for a given GHOP Program in the
# specified order of tags.
- kind: TaskDifficultyTag
properties:
- name: scope
- name: order
direction: desc
# used to fetch Task Difficulty levels for a given GHOP Program in the
# specified order of tags which is used to create a new tag. When creating
# a TaskDifficultyTag we need to determine the highest order'ed Tag and then
# assign an order of one greater than the highest order'ed tag to the newly
# created tag.
- kind: TaskDifficultyTag
properties:
- name: scope
- name: order
# used to fetch Task Type tags for a given GHOP Program in the
# specified order of tags.
- kind: TaskTypeTag
properties:
- name: scope
- name: order
direction: desc
# used to fetch Task Type tags for a given GHOP Program in the
# specified order of tags which is used to create a new tag. When creating
# a TaskTypeTag we need to determine the highest order'ed Tag and then
# assign an order of one greater than the highest order'ed tag to the newly
# created tag.
- kind: TaskTypeTag
properties:
- name: scope
- name: order
# used to fetch arbitrary tags for a given GHOP Program in the
# specified order of tags.
- kind: TaskArbitraryTag
properties:
- name: scope
- name: order
direction: desc
# AUTOGENERATED
# This index.yaml is automatically updated whenever the dev_appserver
# detects that a new type of query is run. If you want to manage the
# index.yaml file manually, remove the above marker line (the line
# saying "# AUTOGENERATED"). If you want to manage some indexes
# manually, move them above the marker line. The index.yaml file is
# automatically uploaded to the admin console when you next deploy
# your application using appcfg.py.