def _getListConfig(self): """See ConversationList._getListConfig for full specification.""" list_config = lists.ListConfiguration() def createHtml(e, *args): return conversation_list_cell.ConversationListCell( self.data, e.conversation).render() def rowAction(e, *args): self.data.redirect.id(id=e.conversation.integer_id()) return self.data.redirect.urlOf(url_names.GCI_CONVERSATION) list_config.addHtmlColumn('conversation', 'Conversation', createHtml) list_config.addPlainTextColumn( 'subject', 'Subject', lambda e, *args: e.conversation.get().subject, hidden=True) list_config.addPlainTextColumn( 'last_message_on', 'Last Message Time (raw)', lambda e, *args: e.conversation.get().last_message_on, hidden=True) list_config.addPlainTextColumn( 'last_message_on_ctime', 'Last Message Time', lambda e, *args: e.conversation.get().last_message_on.ctime(), hidden=True) list_config.setDefaultPagination(20) list_config.setDefaultSort('last_message_on', order='desc') list_config.setRowAction(rowAction) return list_config
def _getListConfig(self): """See ConnectionList._getListConfig for specification.""" list_config = lists.ListConfiguration(add_key_column=False) list_config.addPlainTextColumn('key', 'Key', lambda e, *args: e.keyName(), hidden=True) list_config.addPlainTextColumn('username', 'Username', lambda e, *args: e.key.parent().parent().id()) # organization column is added only when the user is an admin for # more than one organization if len(self.data.url_ndb_profile.admin_for) > 1: list_config.addPlainTextColumn('organization', 'Organization', lambda e, *args: e.organization.get().name) list_config.addPlainTextColumn('role', 'Role', lambda e, *args: connection_model.VERBOSE_ROLE_NAMES[e.getRole()]) list_config.addPlainTextColumn('seen', 'Seen By Org', lambda e, *args: 'Yes' if e.seen_by_org else 'No') list_config.addDateColumn('last_modified', 'Last Modified On', lambda e, *args: e.last_modified) list_config.setRowAction( lambda e, *args: links.LINKER.userId( e.key.parent(), e.key.id(), self.url_names.CONNECTION_MANAGE_AS_ORG)) return list_config
def __init__(self, data, survey): """Initializes the component. Args: data: The RequestData object survey: the OrgApplicationSurvey entity """ super(MyOrgApplicationsComponent, self).__init__(data) # passed in so we don't have to do double queries self.survey = survey list_config = lists.ListConfiguration() list_config.addSimpleColumn('name', 'Name') list_config.addSimpleColumn('org_id', 'Organization ID') list_config.addSimpleColumn('created', 'Created On', column_type=lists.DATE) list_config.addSimpleColumn('modified', 'Last Modified On', column_type=lists.DATE) if self.data.timeline.surveyPeriod(survey): url_name = 'gci_retake_org_app' else: url_name = 'gci_show_org_app' list_config.setRowAction(lambda entity, *args: data.redirect.id( entity.key().id()).urlOf(url_name)) self._list_config = list_config super(MyOrgApplicationsComponent, self).__init__(data)
def _getListConfig(self): """Returns ListConfiguration object for the list. """ list_config = lists.ListConfiguration() list_config.addPlainTextColumn('name', 'Name', lambda e, *args: e.name.strip()) list_config.addSimpleColumn('link_id', 'Link ID', hidden=True) list_config.setRowAction(self._getRedirect()) return list_config
def __init__(self, data): self.data = data list_config = lists.ListConfiguration() list_config.addSimpleColumn('title', 'Title') list_config.setRowAction(lambda e, *args: data.redirect.id(e.key().id( )).urlOf('gci_view_task')) self._list_config = list_config
def __init__(self, data): """See template.Template.__init__ for specification.""" super(PublicOrganizationList, self).__init__(data) self._list_config = lists.ListConfiguration() self._list_config.addPlainTextColumn( 'name', 'Name', lambda e, *args: e.name.strip()) self._list_config.addPlainTextColumn( 'tags', 'Tags', lambda e, *args: ', '.join(e.tags)) self._list_config.addPlainTextColumn('ideas', 'Ideas', lambda e, *args: url_helper.urlize(e.ideas, name='[ideas page]'), hidden=True)
def _getListConfig(self): """See ConversationList._getListConfig for full specification.""" list_config = lists.ListConfiguration() list_config.addPlainTextColumn( 'user', 'Username', lambda e, *args: db.get(ndb.Key.to_old_key(e.user)).name) list_config.setDefaultPagination(30) return list_config
def __init__(self, data, edit_name): self.data = data list_config = lists.ListConfiguration() list_config.addSimpleColumn('title', 'Title') list_config.addSimpleColumn('link_id', 'Document ID', hidden=True) list_config.setRowAction( lambda e, *args: data.redirect.document(e).urlOf(edit_name)) list_config.setDefaultPagination(False) list_config.setDefaultSort('title') self._list_config = list_config
def __init__(self, data): """Initializes this component. """ self.data = data list_config = lists.ListConfiguration() list_config.addPlainTextColumn('title', 'Title', lambda entity, *args: entity.name()) list_config.setRowAction(lambda entity, *args: self.data.redirect. document(entity).urlOf('show_gci_document')) self._list_config = list_config super(DocumentComponent, self).__init__(data)
def __init__(self, data): self.data = data list_config = lists.ListConfiguration() list_config.addPlainTextColumn('student', 'Student', lambda e, *args: e.parent().name()) list_config.addSimpleColumn('points', 'Points') list_config.addNumericalColumn('tasks', 'Tasks', lambda e, *args: len(e.tasks)) list_config.setDefaultSort('points', 'desc') list_config.setRowAction(lambda e, *args: data.redirect.profile( e.parent().link_id).urlOf(url_names.GCI_STUDENT_TASKS)) self._list_config = list_config
def __init__(self, data): """Initializes the component. Args: data: The RequestData object """ super(MyOrgsMentorsList, self).__init__(data) list_config = lists.ListConfiguration() list_config.addSimpleColumn('public_name', 'Name') list_config.addSimpleColumn('link_id', 'Username') list_config.addSimpleColumn('email', 'Email') self._list_config = list_config
def __init__(self, data): self.data = data list_config = lists.ListConfiguration() list_config.addSimpleColumn('title', 'Title') list_config.addPlainTextColumn( 'student', 'Student', lambda entity, *args: entity.student.name()) list_config.addPlainTextColumn( 'types', 'Type', lambda entity, *args: ", ".join(entity.types)) list_config.setRowAction(lambda e, *args: data.redirect.id(e.key().id( )).urlOf(url_names.GCI_VIEW_TASK)) self.list_config = list_config
def __init__(self, data): self.data = data list_config = lists.ListConfiguration() list_config.addPlainTextColumn('student', 'Student', lambda e, *args: e.parent().name()) list_config.addNumericalColumn('tasks', 'Tasks', lambda e, *args: e.numberOfTasks()) list_config.setDefaultSort('tasks', 'desc') list_config.setRowAction( lambda e, *args: data.redirect.userOrg(user=e.parent( ).link_id).urlOf(url_names.GCI_STUDENT_TASKS_FOR_ORG)) self._list_config = list_config
def _getListConfig(self): """See org_list.OrgList._getListConfig for specification.""" list_config = lists.ListConfiguration() list_config.addPlainTextColumn('name', 'Name', lambda e, *args: e.name.strip()) list_config.addSimpleColumn('org_id', 'Organization ID', hidden=True) options = [('', 'All'), ('true', 'New'), ('false', 'Veteran')] list_config.addPlainTextColumn('is_veteran', 'New/Veteran', lambda e, *args: 'Veteran' if e.is_veteran else 'New', width=60, options=options) list_config.setColumnEditable('is_veteran', True, 'select') list_config.addSimpleColumn('slot_request_min', 'Min', width=25, column_type=lists.NUMERICAL) list_config.addSimpleColumn('slot_request_max', 'Max', width=25, column_type=lists.NUMERICAL) list_config.addSimpleColumn('slot_allocation', 'Slots', width=50, column_type=lists.NUMERICAL) list_config.setColumnEditable('slot_allocation', True) list_config.setColumnSummary('slot_allocation', 'sum', '<b>Total: {0}</b>') list_config.addHtmlColumn( 'slots_unused', 'Unused slots', lambda ent, s, *args: ('<strong><font color="red">%s</font></strong>' % (s[ent.key]))) # TODO(daniel): add note to organization model? #list_config.addSimpleColumn('note', 'Note') #list_config.setColumnEditable('note', True) list_config.setDefaultPagination(False) list_config.setDefaultSort('name') list_config.addPostEditButton('save', 'Save', "", [], refresh='none') return list_config
def __init__(self, data): def getOrganization(entity, *args): """Helper function to get value of organization column.""" org_key = project_model.GSoCProject.org.get_value_for_datastore( entity) return ndb.Key.from_old_key(org_key).get().name def getStudent(entity, *args): """Helper function to get value of student column.""" return ndb.Key.from_old_key(entity.parent_key()).get().public_name self.data = data list_config = lists.ListConfiguration() list_config.addPlainTextColumn('student', 'Student', getStudent) list_config.addSimpleColumn('title', 'Title') list_config.addPlainTextColumn('org', 'Organization', getOrganization) def status(project): """Status to show on the list with color. """ if project.status == project_model.STATUS_ACCEPTED: return """<strong><font color="green">Accepted</font><strong>""" elif project.status == 'withdrawn': return """<strong><font color="red">Withdrawn</font></strong>""" return project.status list_config.addHtmlColumn('status', 'Status', lambda entity, *args: status(entity)) list_config.setDefaultPagination(False) list_config.setDefaultSort('student') # hidden keys list_config.addPlainTextColumn('full_project_key', 'Full project key', lambda ent, *args: str(ent.key()), hidden=True) # action button bounds = [1, 'all'] keys = ['full_project_key'] list_config.addPostButton('withdraw', "Withdraw", "", bounds, keys) list_config.addPostButton('accept', "Accept", "", bounds, keys) self._list_config = list_config
def __init__(self, data): """Initializes the component. Args: data: The RequestData object """ super(MyOrgsList, self).__init__(data) list_config = lists.ListConfiguration() list_config.addSimpleColumn('name', 'Organization Name') self._list_config = list_config self._setRowAction(data.request, data) self._setIdx()
def __init__(self, data, description): """See template.Template.__init__ for specification.""" super(ProjectList, self).__init__(data) self._list_config = lists.ListConfiguration() def getStudent(entity, *args): """Helper function to get value for student column.""" return ndb.Key.from_old_key(entity.parent_key()).get().public_name self._list_config.addPlainTextColumn('student', 'Student', getStudent) self._list_config.addSimpleColumn('title', 'Title') self._list_config.addPlainTextColumn( 'mentors', 'Mentors', lambda entity, m, *args: ', '.join( mentor.public_name for mentor in entity.getMentors())) self._list_config.setDefaultSort('student') self._description = description
def _getListConfig(self): """See ConnectionList._getListConfig for specification.""" list_config = lists.ListConfiguration(add_key_column=False) list_config.addPlainTextColumn('key', 'Key', lambda e, *args: e.keyName(), hidden=True) list_config.addPlainTextColumn('organization', 'Organization', lambda e, *args: e.organization.get().name) list_config.addPlainTextColumn('role', 'Role', lambda e, *args: connection_model.VERBOSE_ROLE_NAMES[e.getRole()]) list_config.addDateColumn('last_modified', 'Last Modified On', lambda e, *args: e.last_modified) list_config.setRowAction( lambda e, *args: links.LINKER.userId( e.key.parent(), e.key.id(), self.url_names.CONNECTION_MANAGE_AS_USER)) return list_config
def __init__(self, request, data): def getOrganization(entity, *args): """Helper function to get value of organization column.""" org_key = GSoCProject.org.get_value_for_datastore(entity) return ndb.Key.from_old_key(org_key).get().name self.data = data list_config = lists.ListConfiguration() list_config.addPlainTextColumn( 'student', 'Student', lambda entity, *args: entity.parent().name()) list_config.addSimpleColumn('title', 'Title') list_config.addPlainTextColumn('org', 'Organization', getOrganization) list_config.addPlainTextColumn( 'mentors', 'Mentor', lambda entity, m, *args: [m[i].name() for i in entity.mentors]) list_config.setDefaultPagination(False) list_config.setDefaultSort('student') self._list_config = list_config
def __init__(self, data): """Initializes a new object. Args: data: RequestData object associated with the request. """ self.data = data list_config = lists.ListConfiguration() list_config.addPlainTextColumn( 'name', 'Name', lambda entity, *args: entity.content.filename) list_config.addPlainTextColumn( 'size', 'Size', lambda entity, *args: defaultfilters. filesizeformat(entity.content.size)) list_config.setDefaultSort('name') list_config.setRowAction(lambda e, *args: links.LINKER.staticContent( e.parent(), e.content_id, url_names.GCI_CONTENT_DOWNLOAD)) self._list_config = list_config
def __init__(self, data): self.data = data list_config = lists.ListConfiguration() list_config.addSimpleColumn('title', 'Title') #list_config.addPlainTextColumn( # 'task_type', 'Type', # lambda entity, all_d, all_t, *args: entity.taskType(all_t)) #list_config.addPlainTextColumn('arbit_tag', 'Tags', lambda entity, # *args: entity.taskArbitTag()) list_config.addPlainTextColumn( 'time_to_complete', 'Time to complete', lambda entity, *args: entity.taskTimeToComplete()) list_config.addPlainTextColumn( 'types', 'Type', lambda entity, *args: ", ".join(entity.types)) list_config.setRowAction(lambda e, *args: data.redirect.id(e.key().id( )).urlOf(url_names.GCI_VIEW_TASK)) self.list_config = list_config
def _getListConfig(self): """Returns ListConfiguration object for the list. """ def proposedWinnersFunc(organization, *args): profiles = profile_model.GCIProfile.get( organization.proposed_winners) return ', '.join([p.public_name for p in profiles if p]) list_config = lists.ListConfiguration() list_config.addPlainTextColumn('name', 'Name', lambda e, *args: e.name.strip()) list_config.addPlainTextColumn('proposed_winners', 'Proposed Winners', proposedWinnersFunc) list_config.addPlainTextColumn( 'backup_winner', 'Backup Winner', lambda e, *args: e.backup_winner.public_name if e.backup_winner else '') list_config.addSimpleColumn('profile_id', 'Username', hidden=True) list_config.setRowAction(self._getRedirect()) return list_config
def __init__(self, data): self.data = data list_config = lists.ListConfiguration() list_config.addPlainTextColumn('name', 'Name', lambda e, *args: e.public_name.strip()) list_config.addSimpleColumn('profile_id', 'Username') list_config.addPlainTextColumn('is_admin', 'Is Admin', lambda e, *args: 'Yes' if e.is_admin else 'No', hidden=True) list_config.addPlainTextColumn( 'email', 'Email', lambda entity, *args: entity.contact.email) def getMentorFor(entity, *args): """Helper function to get value of mentor_for column.""" org_keys = [org_key.to_old_key() for org_key in entity.admin_for] return ', '.join(org.name for org in org_model.GCIOrganization.get(org_keys) if org) def getAdminFor(entity, *args): """Helper function to get value of admin_for column.""" org_keys = [org_key.to_old_key() for org_key in entity.mentor_for] return ', '.join(org.name for org in org_model.GCIOrganization.get(org_keys) if org) list_config.addPlainTextColumn('admin_for', 'Admin For', getAdminFor) list_config.addPlainTextColumn('mentor_for', 'Mentor For', getMentorFor) addresses.addAddressColumns(list_config) list_config.setDefaultPagination(False) list_config.setDefaultSort('name') self._list_config = list_config
def __init__(self, data): self.data = data def getMentorFor(entity, *args): """Helper function to get value of mentor_for column.""" return ', '.join(org.name for org in ndb.get_multi(entity.mentor_for) if org) def getAdminFor(entity, *args): """Helper function to get value of admin_for column.""" return ', '.join(org.name for org in ndb.get_multi(entity.admin_for) if org) list_config = lists.ListConfiguration() list_config.addPlainTextColumn( 'name', 'Name', lambda entity, *args: entity.public_name.strip()) list_config.addSimpleColumn('profile_id', 'Username') list_config.addPlainTextColumn('is_admin', 'Is Admin', lambda entity, *args: 'Yes' if entity.is_admin else 'No', hidden=True) list_config.addPlainTextColumn( 'email', 'Email', lambda entity, *args: entity.contact.email) list_config.addPlainTextColumn('admin_for', 'Admin For', getAdminFor) list_config.addPlainTextColumn('mentor_for', 'Mentor For', getMentorFor) addresses.addAddressColumns(list_config) list_config.addPlainTextColumn('tee_style', 'T-Shirt Style', lambda entity, *args: entity.tee_style) list_config.addPlainTextColumn('tee_size', 'T-Shirt Size', lambda entity, *args: entity.tee_size) list_config.setDefaultPagination(False) list_config.setDefaultSort('name') self._list_config = list_config
def _getListConfig(self): # TODO(nathaniel): squeeze this back into a lambda expression in # the call to setRowAction below. def RowAction(e, *args): # TODO(nathaniel): make this .organization call unnecessary. self.data.redirect.organization(organization=e) return self.data.redirect.urlOf(url_names.GCI_ORG_HOME) list_config = lists.ListConfiguration() list_config.addPlainTextColumn('name', 'Name', lambda e, *args: e.name.strip()) list_config.addSimpleColumn('link_id', 'Organization ID', hidden=True) list_config.setRowAction(RowAction) list_config.addPlainTextColumn( 'ideas', 'Ideas', (lambda e, *args: url_helper.urlize(e.ideas, name="[ideas page]")), hidden=True) list_config.setDefaultPagination(False) list_config.setDefaultSort('name') return list_config
def __init__(self, request, data): self.request = request self.data = data list_config = lists.ListConfiguration() list_config.addSimpleColumn('name', 'Name') list_config.addSimpleColumn('status', 'Status') list_config.addPlainTextColumn( 'last_sync_time', 'Last Sync Time', lambda ent, *args: format( ent.last_sync_time, lists.DATETIME_FORMAT) if \ ent.last_sync_time else 'N/A') self._list_config = list_config def rowAction(entity, *args): entity_id = entity.key.id() return links.SOC_LINKER.shipmentInfo( data.program, entity_id, url_names.GSOC_EDIT_SHIPMENT_INFO) self._list_config.setRowAction(rowAction)
def _getListConfig(self): list_config = lists.ListConfiguration() def getMentors(entity, *args): """Helper function to get value for mentors column.""" mentors = ndb.get_multi( map(ndb.Key.from_old_key, GCITask.mentors.get_value_for_datastore(entity))) return ', '.join(mentor.public_name for mentor in mentors if mentor) if 'title' in self._columns: list_config.addSimpleColumn('title', 'Title') if 'organization' in self._columns: list_config.addPlainTextColumn( 'org', 'Organization', lambda entity, *args: entity.org.name) if 'mentors' in self._columns: list_config.addPlainTextColumn('mentors', 'Mentors', getMentors) if 'types' in self._columns: list_config.addPlainTextColumn( 'types', 'Category', lambda entity, *args: ', '.join(entity.types)) if 'tags' in self._columns: list_config.addPlainTextColumn( 'tags', 'Tags', lambda entity, *args: ', '.join(entity.tags)) if 'status' in self._columns: list_config.addSimpleColumn('status', 'Status') list_config.setRowAction(lambda e, *args: self.data.redirect.id(e.key( ).id()).urlOf('gci_view_task')) return list_config
def __init__(self, data, survey, record_model, idx=0, description=''): """Creates a new SurveyRecordList template. Args: data: The RequestData object to use. survey: The Survey to show the records for record_model: The Model class of the Record entities. idx: The index of the list to use. description: The (optional) description of the list. """ super(SurveyRecordList, self).__init__(data) self.survey = survey self.record_model = record_model self.idx = idx self.description = description # Create the configuration based on the schema of the survey list_config = lists.ListConfiguration() schema = surveys.SurveySchema(survey) for field in schema: label = field.getLabel() field_id = field.getFieldName() list_config.addPlainTextColumn(field_id, label, field_or_empty(field_id), hidden=True) list_config.addSimpleColumn('created', 'Created On', column_type=lists.DATE) list_config.addSimpleColumn('modified', 'Last Modified On', column_type=lists.DATE) self.list_config = list_config
def _getListConfig(self): # TODO(nathaniel): squeeze this back into a lambda expression in the # call to setRowAction below. def RowAction(e, *args): # TODO(nathaniel): make this .organization call unnecessary. self.data.redirect.organization(organization=e) return self.data.redirect.urlOf(url_names.GCI_ORG_HOME) list_config = lists.ListConfiguration() list_config.addPlainTextColumn('name', 'Name', lambda e, *args: e.name.strip()) list_config.addSimpleColumn('link_id', 'Organization ID', hidden=True) list_config.setRowAction(RowAction) list_config.setDefaultPagination(False) list_config.setDefaultSort('name') list_config.addPlainTextColumn( 'org_admins', 'Org Admins', lambda e, org_admins, *args: ", ".join( ["%s <%s>" % (o.name(), o.email) for o in org_admins[e.key()]]), hidden=True) return list_config
def __init__(self, data): self.data = data self.idx = 1 list_config = lists.ListConfiguration() list_config.setRowAction( lambda entity, *args: data.redirect.profile( entity.profile_id).urlOf(url_names.GCI_STUDENT_TASKS)) list_config.addSimpleColumn('public_name', 'Public Name') list_config.addSimpleColumn('profile_id', 'Username') list_config.addPlainTextColumn( 'email', 'Email', lambda entity, *args: entity.contact.email) list_config.addSimpleColumn('first_name', 'First Name', hidden=True) list_config.addSimpleColumn('last_name', 'Last Name') list_config.addBirthDateColumn( 'birth_date', 'Birth date', lambda entity, *args: entity.birth_date, hidden=True) list_config.addSimpleColumn('gender', 'Gender') addresses.addAddressColumns(list_config) list_config.addPlainTextColumn( 'school_id', 'School name', lambda entity, *args: entity.student_data.education.school_id, hidden=True) list_config.addPlainTextColumn( 'school_country', 'School Country', lambda entity, *args: entity.student_data.education.school_country, hidden=True) list_config.addPlainTextColumn( 'grade', 'Grade', lambda entity, *args: entity.student_data.education.grade, hidden=True) list_config.addPlainTextColumn( 'expected_graduation', 'Expected Graduation', lambda entity, *args: entity.student_data.education.expected_graduation, hidden=True) list_config.addPlainTextColumn( 'number_of_completed_tasks', 'Completed tasks', lambda entity, *args: entity.student_data.number_of_completed_tasks) def formsSubmitted(entity, form_type): """Returns "Yes" if form has been submitted otherwise "No". form takes either 'consent' or 'student_id' as values which stand for parental consent form and student id form respectively. """ if form_type == 'consent': return 'Yes' if entity.student_data.consent_form else 'No' elif form_type == 'enrollment': return 'Yes' if entity.student_data.enrollment_form else 'No' else: raise ValueError('Unsupported form type: %s' % form_type) list_config.addPlainTextColumn( 'consent_form', 'Consent Form Submitted', lambda entity, *args: formsSubmitted(entity, 'consent')) list_config.addPlainTextColumn( 'enrollment_form', 'Student ID Form Submitted', lambda entity, *args: formsSubmitted(entity, 'enrollment')) list_config.addPlainTextColumn( 'home_page', 'Home Page', lambda entity, *args: entity.contact.web_page, hidden=True) list_config.addPlainTextColumn( 'blog', 'Blog', lambda entity, *args: entity.contact.blog, hidden=True) list_config.addSimpleColumn('tee_style', 'T-Shirt Style') list_config.addSimpleColumn('tee_size', 'T-Shirt Size') list_config.addHtmlColumn( 'photo_url', 'Photo URL', (lambda entity, *args: urlize(entity.photo_url)), hidden=True) list_config.addSimpleColumn( 'program_knowledge', 'Program Knowledge', hidden=True) self._list_config = list_config