def add_owner(self, card_id):
     if AppUser.for_user(users.get_current_user()).is_admin:
         card = ReportCard.find_by_id(int(card_id))
         card.owner_user_id.append(self.request.get('new_owner_id'))
         card.put()
         ReportCard.create(self.request.get('name'))
         return webapp2.redirect_to('card-list')
 def test_add(self):
     self.assertEqual(0, len(ReportCard.list_by_user()))
     response = self.testapp.post('/card/add', {'name': 'Add Test Name'})
     self.assertRedirect('/card/list$', response)
     cards = ReportCard.list_by_user()
     self.assertEqual(1, len(cards))
     self.assertEqual('Add Test Name', cards[0].name)
 def test_add_owner(self):
     self.makeAdmin()
     c = ReportCard.find_by_id(ReportCard.create(name='Add Owner Test Name').id())
     self.assertEqual(1, len(c.owner_user_id))
     response = self.testapp.post('/card/%d/add_owner' % c.key().id(), {'new_owner_id':'newowner'})
     self.assertRedirect('/card/list$', response)
     c = ReportCard.find_by_id(c.key().id())
     self.assertEqual(2, len(c.owner_user_id))
 def add(self, card_id):
     card = ReportCard.find_by_id(int(card_id))
     if card.is_authorized():
         signature_id = Signature.create(self.request.get('name'), int(card_id)).id()
         signature = Signature.find_by_id(signature_id)
         template = JinjaEnv.get().get_template('templates/signature/edit_row.html')
         self.response.out.write(template.render({'signature': signature}))
 def create(self, name, score, card_id):
     key_level = EvalKeyLevel(parent=self.report_key())
     key_level.name = name
     key_level.score = score
     card = ReportCard.find_by_id(card_id)
     key_level.card = card
     return key_level.put()
 def test_add(self):
     response = self.testapp.get('/card/%d/key_level/add' % self.card_id, {'name': 'Add Test Name', 'score': 1})
     self.assertSuccess(response)
     card = ReportCard.find_by_id(self.card_id)
     self.assertEqual(1, len(card.key_levels()))
     self.assertEqual('Add Test Name', card.key_levels()[0].name)
     self.assertEqual(1, card.key_levels()[0].score)
 def add(self, card_id):
     card = ReportCard.find_by_id(int(card_id))
     if card.is_authorized():
         text_line_id = TextLine.create(self.request.get('name'), int(card_id)).id()
         text_line = TextLine.find_by_id(text_line_id)
         template = JinjaEnv.get().get_template('templates/text_line/edit_row.html')
         self.response.out.write(template.render({'text_line': text_line}))
 def edit(self, card_id):
     # TODO: handle this some other way
     AppUser.record_access(users.get_current_user())
     card = ReportCard.find_by_id(int(card_id))
     if card.is_authorized():
         template = JinjaEnv.get().get_template('templates/card/edit_form.html')
         self.response.out.write(template.render({'card': card}))
 def add(self, card_id):
     card = ReportCard.find_by_id(int(card_id))
     if card.is_authorized():
         key_level_id = EvalKeyLevel.create(self.request.get('name'), int(self.request.get('score')), int(card_id)).id()
         key_level = EvalKeyLevel.find_by_id(key_level_id)
         template = JinjaEnv.get().get_template('templates/key_level/edit_row.html')
         self.response.out.write(template.render({'key_level': key_level}))
 def test_edit(self):
     item_id = EvalItem.create("Edit Test Name", self.category_id).id()
     response = self.testapp.post("/item/%d/edit" % item_id, {"name": "Edit Test New Name"})
     self.assertSuccess(response)
     category = ReportCard.find_by_id(self.card_id).categories()[0]
     self.assertEqual(1, len(category.items()))
     self.assertEqual("Edit Test New Name", category.items()[0].name)
 def test_edit(self):
     text_line_id = TextLine.create('Edit Test Name', self.card_id).id()
     response = self.testapp.post('/text_line/%d/edit' % text_line_id, {'name': 'Edit Test New Name'})
     self.assertSuccess(response)
     card = ReportCard.find_by_id(self.card_id)
     self.assertEqual(1, len(card.text_lines()))
     self.assertEqual('Edit Test New Name', card.text_lines()[0].name)
 def add(self, card_id):
     card = ReportCard.find_by_id(int(card_id))
     if card.is_authorized():
         category_id = EvalCategory.create(self.request.get('name'), int(card_id)).id()
         category = EvalCategory.find_by_id(category_id)
         template = JinjaEnv.get().get_template('templates/category/edit_table.html')
         self.response.out.write(template.render({'category': category}))
 def test_edit(self):
     signature_id = Signature.create('Edit Test Name', self.card_id).id()
     response = self.testapp.post('/signature/%d/edit' % signature_id, {'name': 'Edit Test New Name'})
     self.assertSuccess(response)
     card = ReportCard.find_by_id(self.card_id)
     self.assertEqual(1, len(card.signatures()))
     self.assertEqual('Edit Test New Name', card.signatures()[0].name)
 def test_edit(self):
     key_level_id = EvalKeyLevel.create('Edit Test Name', 1, self.card_id).id()
     response = self.testapp.post('/key_level/%d/edit' % key_level_id, {'name': 'Edit Test New Name', 'score': 2})
     self.assertSuccess(response)
     card = ReportCard.find_by_id(self.card_id)
     self.assertEqual(1, len(card.key_levels()))
     self.assertEqual('Edit Test New Name', card.key_levels()[0].name)
     self.assertEqual(2, card.key_levels()[0].score)
 def create(self, name, card_id):
     text_line = TextLine(parent=self.report_key())
     text_line.name = name
     card = ReportCard.find_by_id(card_id)
     text_line.card = card
     if len(card.text_lines()) > 0:
         text_line.position = card.text_lines()[-1].position+1
     return text_line.put()
 def create(self, name, card_id):
     signature = Signature(parent=self.report_key())
     signature.name = name
     card = ReportCard.find_by_id(card_id)
     signature.card = card
     if len(card.signatures()) > 0:
         signature.position = card.signatures()[-1].position+1
     return signature.put()
 def create(self, name, card_id):
     category = EvalCategory(parent=self.report_key())
     category.name = name
     card = ReportCard.find_by_id(card_id)
     category.card = card
     if len(card.categories()) > 0:
         category.position = card.categories()[-1].position+1
     return category.put()
 def test_move_down(self):
     category1_id = EvalCategory.create("Move Up Test Name 1", self.card_id).id()
     category2_id = EvalCategory.create("Move Up Test Name 2", self.card_id).id()
     self.assertRaises(Exception, self.testapp.post, "/category/%d/move_down" % category2_id)
     response = self.testapp.post("/category/%d/move_down" % category1_id)
     self.assertSuccess(response)
     card = ReportCard.find_by_id(self.card_id)
     categories = card.categories()
     self.assertEqual(2, len(categories))
     self.assertEqual(category2_id, categories[0].key().id())
     self.assertEqual(category1_id, categories[1].key().id())
 def test_move_down(self):
     item1_id = EvalItem.create("Move Up Test Name 1", self.category_id).id()
     item2_id = EvalItem.create("Move Up Test Name 2", self.category_id).id()
     self.assertRaises(Exception, self.testapp.post, "/item/%d/move_down" % item2_id)
     response = self.testapp.post("/item/%d/move_down" % item1_id)
     self.assertSuccess(response)
     category = ReportCard.find_by_id(self.card_id).categories()[0]
     items = category.items()
     self.assertEqual(2, len(items))
     self.assertEqual(item2_id, items[0].key().id())
     self.assertEqual(item1_id, items[1].key().id())
 def test_move_up(self):
     text_line1_id = TextLine.create('Move Up Test Name 1', self.card_id).id()
     text_line2_id = TextLine.create('Move Up Test Name 2', self.card_id).id()
     self.assertRaises(Exception, self.testapp.post, '/text_line/%d/move_up' % text_line1_id)
     response = self.testapp.post('/text_line/%d/move_up' % text_line2_id)
     self.assertSuccess(response)
     card = ReportCard.find_by_id(self.card_id)
     text_lines = card.text_lines()
     self.assertEqual(2, len(text_lines))
     self.assertEqual(text_line2_id, text_lines[0].key().id())
     self.assertEqual(text_line1_id, text_lines[1].key().id())
 def test_move_up(self):
     signature1_id = Signature.create('Move Up Test Name 1', self.card_id).id()
     signature2_id = Signature.create('Move Up Test Name 2', self.card_id).id()
     self.assertRaises(Exception, self.testapp.post, '/signature/%d/move_up' % signature1_id)
     response = self.testapp.post('/signature/%d/move_up' % signature2_id)
     self.assertSuccess(response)
     card = ReportCard.find_by_id(self.card_id)
     signatures = card.signatures()
     self.assertEqual(2, len(signatures))
     self.assertEqual(signature2_id, signatures[0].key().id())
     self.assertEqual(signature1_id, signatures[1].key().id())
 def list(self, card_id):
     # TODO: handle this some other way
     AppUser.record_access(users.get_current_user())
     current_user = AppUser.for_user(users.get_current_user())
     template = JinjaEnv.get().get_template('templates/eval/list.html')
     self.response.out.write(template.render({'card': ReportCard.find_by_id(int(card_id)), 'current_user': current_user}))
 def create(self, name, card_id):
     eval = Evaluation(parent=self.report_key())
     eval.name = name
     card = ReportCard.find_by_id(card_id)
     eval.card = card
     return eval.put()
 def test_delete(self):
     text_line_id = TextLine.create('Delete Test Name', self.card_id).id()
     response = self.testapp.post('/text_line/%d/delete' % text_line_id)
     self.assertSuccess(response)
     card = ReportCard.find_by_id(self.card_id)
     self.assertEqual(0, len(card.text_lines()))
 def setUp(self):
     super(SignatureHandlerTest, self).setUp()
     self.card_id = ReportCard.create(name='Signature Test Card').id()
 def test_delete(self):
     signature_id = Signature.create('Delete Test Name', self.card_id).id()
     response = self.testapp.post('/signature/%d/delete' % signature_id)
     self.assertSuccess(response)
     card = ReportCard.find_by_id(self.card_id)
     self.assertEqual(0, len(card.signatures()))
 def setUp(self):
     super(TextLineHandlerTest, self).setUp()
     self.card_id = ReportCard.create(name='Category Test Card').id()
 def test_add(self):
     response = self.testapp.get('/card/%d/signature/add' % self.card_id, {'name': 'Add Test Name'})
     self.assertSuccess(response)
     card = ReportCard.find_by_id(self.card_id)
     self.assertEqual(1, len(card.signatures()))
     self.assertEqual('Add Test Name', card.signatures()[0].name)
 def add_form(self, card_id):
     card = ReportCard.find_by_id(int(card_id))
     if card.is_authorized():
         template = JinjaEnv.get().get_template('templates/category/add_form.html')
         self.response.out.write(template.render({'card_id': card_id}))
 def add(self, card_id):
     card = ReportCard.find_by_id(int(card_id))
     if card.is_authorized():
         Evaluation.create(self.request.get('name'), int(card_id))
         return webapp2.redirect_to('eval-list', card_id=int(card_id))