def _work_items_for_queue(self, queue_name): if queue_name not in queues: self.response.set_status(500) return work_items = WorkItems.all().filter("queue_name =", queue_name).get() if not work_items: work_items = WorkItems() work_items.queue_name = queue_name return work_items
def _work_items_for_queue(self, queue_name): if queue_name not in queues: self.response.out.write('"%s" is not in queues %s' % (queue_name, queues)) return None work_items = WorkItems.all().filter("queue_name =", queue_name).get() if not work_items: work_items = WorkItems() work_items.queue_name = queue_name return work_items
def _work_items_for_queue(self, queue_name): if queue_name not in queues: self.response.out.write("\"%s\" is not in queues %s" % (queue_name, queues)) return None work_items = WorkItems.all().filter("queue_name =", queue_name).get() if not work_items: work_items = WorkItems() work_items.queue_name = queue_name return work_items
def get(self, queue_name): work_items = WorkItems.all().filter("queue_name =", queue_name).get() statuses = queuestatus.QueueStatus.all().filter("queue_name =", queue_name).order("-date").fetch(15) status_groups_by_patch_id = {} status_groups = [] synthetic_patch_id_counter = 0 for status in statuses: if status.active_patch_id: patch_id = status.active_patch_id else: patch_id = 'synthetic-%d' % synthetic_patch_id_counter synthetic_patch_id_counter += 1 if patch_id not in status_groups_by_patch_id: new_status_group = [] status_groups_by_patch_id[patch_id] = new_status_group status_groups.append(new_status_group) status_groups_by_patch_id[patch_id].append(status) template_values = { "display_queue_name": display_name_for_queue(queue_name), "work_item_rows": self._rows_for_work_items(work_items), "status_groups": status_groups, } self.response.out.write(template.render("templates/queuestatus.html", template_values))
def get(self, queue_name): work_items = WorkItems.all().filter("queue_name =", queue_name).get() statuses = queuestatus.QueueStatus.all().filter( "queue_name =", queue_name).order("-date").fetch(15) status_groups_by_patch_id = {} status_groups = [] synthetic_patch_id_counter = 0 for status in statuses: if status.active_patch_id: patch_id = status.active_patch_id else: patch_id = 'synthetic-%d' % synthetic_patch_id_counter synthetic_patch_id_counter += 1 if patch_id not in status_groups_by_patch_id: new_status_group = [] status_groups_by_patch_id[patch_id] = new_status_group status_groups.append(new_status_group) status_groups_by_patch_id[patch_id].append(status) template_values = { "display_queue_name": display_name_for_queue(queue_name), "work_item_rows": self._rows_for_work_items(work_items), "status_groups": status_groups, } self.response.out.write( template.render("templates/queuestatus.html", template_values))
def get(self, queue_name): queued_items = WorkItems.all().filter("queue_name =", queue_name).get() active_items = ActiveWorkItems.all().filter("queue_name =", queue_name).get() statuses = queuestatus.QueueStatus.all().filter("queue_name =", queue_name).order("-date").fetch(15) status_groups = [] last_patch_id = None synthetic_patch_id_counter = 0 for status in statuses: patch_id = status.active_patch_id if not patch_id or last_patch_id != patch_id: status_group = [] status_groups.append(status_group) else: status_group = status_groups[-1] status_group.append(status) last_patch_id = patch_id template_values = { "display_queue_name": display_name_for_queue(queue_name), "work_item_rows": self._rows_for_work_items(queued_items, active_items), "status_groups": status_groups, } self.response.out.write(template.render("templates/queuestatus.html", template_values))
def _calculate_queue_positions(self): # We don't know how many rows there are in the table (as there can be stale rows # from queues that we no longer have), but it's certainly fewer that 1000. all_work_items = WorkItems.all().fetch(limit=1000) return dict([(items.queue.name(), items.display_position_for_attachment(self.id)) for items in all_work_items if items.queue])
def _calculate_queue_positions(self): queue_positions = {} for work_items in WorkItems.all().fetch(limit=len(queues)): queue_name = str(work_items.queue_name) try: position = work_items.item_ids.index(self.id) # Display 1-based indecies to the user. queue_positions[queue_name] = position + 1 except ValueError, e: queue_positions[queue_name] = None
def _calculate_queue_positions(self): # We don't know how many rows there are in the table (as there can be stale rows # from queues that we no longer have), but it's certainly fewer that 1000. all_work_items = WorkItems.all().fetch(limit=1000) return dict( [ (items.queue.name(), items.display_position_for_attachment(self.id)) for items in all_work_items if items.queue ] )
def test_remove_work_item(self): items = WorkItems() items.item_ids = [0, 1, 2] items.remove_work_item(0) self.assertEqual(items.item_ids, [1, 2]) items.remove_work_item(4) # Should not throw self.assertEqual(items.item_ids, [1, 2])
def _calculate_queue_positions(self): all_work_items = WorkItems.all().fetch(limit=len(Queue.all())) return dict([(items.queue.name(), items.display_position_for_attachment(self.id)) for items in all_work_items if items.queue])
def _get_patches_waiting(cls, queue_name): work_items = WorkItems.lookup_by_queue(queue_name) active_work_items = ActiveWorkItems.lookup_by_queue(queue_name) return len(set(work_items.item_ids) - set(active_work_items.item_ids))
def test_display_position_for_attachment(self): items = WorkItems() items.item_ids = [0, 1, 2] self.assertEquals(items.display_position_for_attachment(0), 1) self.assertEquals(items.display_position_for_attachment(1), 2) self.assertEquals(items.display_position_for_attachment(3), None)
def test_display_position_for_attachment(self): items = WorkItems() items.item_ids = [0, 1, 2] self.assertEqual(items.display_position_for_attachment(0), 1) self.assertEqual(items.display_position_for_attachment(1), 2) self.assertEqual(items.display_position_for_attachment(3), None)
def _get_next_patch_id(self, queue_name): work_items = WorkItems.all().filter("queue_name =", queue_name).get() if not work_items: return None active_work_items = ActiveWorkItems.get_or_insert(key_name=queue_name, queue_name=queue_name) return db.run_in_transaction(self._assign_patch, active_work_items.key(), work_items.item_ids)
def work_items(self): return WorkItems.lookup_by_queue(self._name)
def __init__(self, queue_name): self._queue_name = queue_name self._work_items = WorkItems.all().filter("queue_name =", queue_name).get() self._last_status = QueueStatus.all().filter("queue_name =", queue_name).order("-date").get()
def work_items(self): key_name = "work-items-%s" % (self._name) return WorkItems.get_or_insert(key_name=key_name, queue_name=self._name)