Пример #1
0
    def insert_passage(self, passage, index):
        """Inserts the given passage into the list of passages.
		
		index: The index to insert the passage before.
			If this is None, then the passage will be appended to the list.
		"""
        # XXX: This is needed to undo copy and paste.
        #assert (index is None or self._order_passages_by == "NATURAL_ORDER")
        if index is None:
            index = len(self._natural_order_passages)
        if self._natural_order_passages:
            if index < len(self._natural_order_passages):
                passage.order_number = self._natural_order_passages[
                    index].order_number
                for later_passage in self._natural_order_passages[index:]:
                    later_passage.order_number += 1
                sqlite.connection.execute(
                    "UPDATE passage SET order_number = order_number + 1 WHERE parent = ? AND order_number >= ?",
                    (self.id, passage.order_number))
            else:
                passage.order_number = self._natural_order_passages[
                    -1].order_number + 1
        self._natural_order_passages.insert(index, passage)
        if self._order_passages_by == "PASSAGE_ORDER":
            index = bisect.bisect(self._passage_order_passages, passage)
            self._passage_order_passages.insert(index, passage)
        passage.parent = self
        sqlite.save_or_update_item(passage)
        singleton_verse_to_passage_entry_map.add_passage_entry(passage)
        self.add_passage_observers(passage)
Пример #2
0
	def insert_passage(self, passage, index):
		"""Inserts the given passage into the list of passages.
		
		index: The index to insert the passage before.
			If this is None, then the passage will be appended to the list.
		"""
		# XXX: This is needed to undo copy and paste.
		#assert (index is None or self._order_passages_by == "NATURAL_ORDER")
		if index is None:
			index = len(self._natural_order_passages)
		if self._natural_order_passages:
			if index < len(self._natural_order_passages):
				passage.order_number = self._natural_order_passages[index].order_number
				for later_passage in self._natural_order_passages[index:]:
					later_passage.order_number += 1
				sqlite.connection.execute("UPDATE passage SET order_number = order_number + 1 WHERE parent = ? AND order_number >= ?", (self.id, passage.order_number))
			else:
				passage.order_number = self._natural_order_passages[-1].order_number + 1
		self._natural_order_passages.insert(index, passage)
		if self._order_passages_by == "PASSAGE_ORDER":
			index = bisect.bisect(self._passage_order_passages, passage)
			self._passage_order_passages.insert(index, passage)
		passage.parent = self
		sqlite.save_or_update_item(passage)
		singleton_verse_to_passage_entry_map.add_passage_entry(passage)
		self.add_passage_observers(passage)
Пример #3
0
    def clone(self):
        """Makes a clean copy of this passage list (including its passages
		and subtopics) and returns it.
		"""
        new_topic = PassageList(name=self.name, description=self.description)
        sqlite.save_or_update_item(new_topic)
        for topic in self.subtopics:
            new_topic.add_subtopic(topic.clone())
        for passage in self._natural_order_passages:
            new_topic.add_passage(passage.clone())
        new_topic.order_passages_by = self.order_passages_by
        return new_topic
Пример #4
0
	def clone(self):
		"""Makes a clean copy of this passage list (including its passages
		and subtopics) and returns it.
		"""
		new_topic = PassageList(name=self.name, description=self.description)
		sqlite.save_or_update_item(new_topic)
		for topic in self.subtopics:
			new_topic.add_subtopic(topic.clone())
		for passage in self._natural_order_passages:
			new_topic.add_passage(passage.clone())
		new_topic.order_passages_by = self.order_passages_by
		return new_topic
Пример #5
0
 def save_item(self, item):
     """Saves changes to the given item."""
     if isinstance(item, BasePassageList):
         sqlite.store_topic(item)
     else:
         sqlite.save_or_update_item(item)
Пример #6
0
	def save_item(self, item):
		"""Saves changes to the given item."""
		if isinstance(item, BasePassageList):
			sqlite.store_topic(item)
		else:
			sqlite.save_or_update_item(item)