| #summary Question entity model |
| #labels Phase-Design,Contents-Skeleton,Design-Model |
| |
| _*Eventually, this topic should be populated by the output of*_ `pydoc`. |
| |
| {{{ |
| class Question(db.Model): |
| """Model of a Question asked in a Review. |
| |
| A Question entity participates in a number of relationships: |
| |
| reviews) a many:many relationship between available Questions and the |
| Reviews that ask them. See the ReviewsQuestions model for details. |
| |
| answers) a 1:many relationship of the many specific Answers to this |
| particular question. Since the same Question can be asked in many |
| different Reviews based on different Review "templates" containing |
| different question mixes, this relationship is probably not particularly |
| useful, but is included for completeness. |
| |
| question: required db.StringProperty containing the actual question text. |
| Questions can be indexed, filtered, and sorted by 'question'. |
| |
| styles: required db.ListProperty that indicates the style(s) of |
| thes Question. The 'styles' list must contain at least one of: |
| |
| "text_short": a Unicode string is expected in the Answer 'short' field. |
| |
| "text_long": Unicode text is expected in the Answer 'long' field. |
| |
| "pick_one": exactly one string present in the pick_choices list |
| in this Question is expected in the Answer 'picks' list. |
| |
| "pick_many": one or more strings present in the pick_choices list |
| in this Question is expected in the Answer 'picks' list. |
| |
| The various "pick_" choices are mutually exclusive, but can be |
| combined with the "text_" choices. For example, a "pick_one" |
| pick_choices list may have an "other" value, and the "text_short" |
| field is then used for free-form text input to elaborate on the |
| "other" choice. |
| |
| For another example, a "pick_many" style might be combined with a |
| "text_long" style where the question text indicates that the |
| "text_long" field is available for additional comments. Of course, |
| this example could also be implemented as two separate Questions. |
| |
| pick_choices: db.ListProperty containing short strings that represent the |
| selected "values" in pick_one and pick_many Questions. These values |
| must be unique within this pick_choices list and must be compatible with |
| being used in <SELECT> and <OPTION> controls in HTML forms. |
| |
| pick_labels: db.ListProperty containing Unicode strings that are the |
| human-readable representations of the corresponding short strings in |
| the pick_choices list. These labels are paired with the pick_choices |
| strings in the same order. If one (or more) of the label strings in |
| this list is the empty string, the pick_choices string will be displayed |
| instead (in forms, generated reports, etc.). |
| |
| approval_style: optional db.StringProperty that indicates which *one* of |
| the question styles in the 'styles' list is used to interpret the |
| approval_answers list. Not all question styles have corresponding |
| approval styles. The supported approval styles are: |
| |
| "match_short": one of the strings found in approval_answers must be |
| present in (exactly match) the Answer 'short' field string for |
| the question to indicate "approval". ("text_short" must be present |
| in pick_choices for this approval style to be valid.) |
| |
| "match_only_one": the *one* value in the Answer 'picks' list must |
| be present in the approval_answers list to indicate "approval". |
| ("pick_one" must be present in pick_choices for this approval style |
| to be valid.) |
| |
| "match_all": all of the values in the approval_answers list must be |
| present in the Answer 'picks' list to indicate "approval". |
| ("pick_many" must be present in pick_choices for this approval style |
| to be valid.) |
| |
| Other potential approval styles are possible and may be added in the |
| future. |
| |
| approval_answers: optional db.ListProperty containing strings that |
| list the Answer values that indicate "approval" (or "passing grade") for |
| the Question. If this list is empty and the approval_style string is |
| empty, the Question is not treated as an "approval" question for Reviews |
| that ask it. |
| """ |
| question = db.StringProperty(required=True) |
| styles = db.ListProperty(item_type=str) |
| |
| pick_choices = db.ListProperty(item_type=str) |
| pick_labels = db.ListProperty(item_type=unicode) |
| |
| approval_style = db.StringProperty() |
| approval_answers = db.ListProperty(item_type=str) |
| }}} |
| |
| ---- |
| _Copyright 2008 Google Inc._ |
| _This work is licensed under a_ |
| [http://soc.googlecode.com/svn/wiki/html/licenses/cc-by-attribution-2_5.html Creative Commons Attribution 2.5 License]. |
| [http://creativecommons.org/licenses/by/2.5/ http://soc.googlecode.com/svn/wiki/html/licenses/cc-by-2_5-88x31.png] |