← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~googol-hush/openlp/docs into lp:openlp

 

Andreas Preikschat has proposed merging lp:~googol-hush/openlp/docs into lp:openlp.

Requested reviews:
  OpenLP Core (openlp-core)

For more details, see:
https://code.launchpad.net/~googol-hush/openlp/docs/+merge/46628

Merged (not redundant) parts of documentation/SongFormat.txt into the songs/lib/db module and removed it. Added the media_files and media_files_songs tables (although the doc is not complete there).
-- 
https://code.launchpad.net/~googol-hush/openlp/docs/+merge/46628
Your team OpenLP Core is requested to review the proposed merge of lp:~googol-hush/openlp/docs into lp:openlp.
=== removed file 'documentation/SongFormat.txt'
--- documentation/SongFormat.txt	2010-09-14 18:18:47 +0000
+++ documentation/SongFormat.txt	1970-01-01 00:00:00 +0000
@@ -1,124 +0,0 @@
-openlp.org 2.x Song Database Structure
-========================================================================
-
-Introduction
-------------
-The song database in openlp.org 2.x is similar to the 1.x format. The
-biggest differences are the addition of extra tables, and the use of
-SQLite version 3.
-
-The song database contains the following tables:
-- authors
-- authors_songs
-- song_books
-- songs
-- songs_topics
-- topics
-
-
-"authors" Table
----------------
-This table holds the names of all the authors. It has the following
-columns:
-
-* id
-* first_name
-* last_name
-* display_name
-
-
-"authors_songs" Table
----------------------
-This is a bridging table between the "authors" and "songs" tables, which
-serves to create a many-to-many relationship between the two tables. It
-has the following columns:
-
-* author_id
-* song_id
-
-
-"song_books" Table
-------------------
-The "song_books" table holds a list of books that a congregation gets
-their songs from, or old hymnals now no longer used. This table has the
-following columns:
-
-* id
-* name
-* publisher
-
-
-"songs" Table
--------------
-This table contains the songs, and each song has a list of attributes.
-The "songs" table has the following columns:
-
-* id
-* song_book_id
-* title
-* lyrics
-* verse_order
-* copyright
-* comments
-* ccli_number
-* song_number
-* theme_name
-* search_title
-* search_lyrics
-
-
-"songs_topics" Table
---------------------
-This is a bridging table between the "songs" and "topics" tables, which
-serves to create a many-to-many relationship between the two tables. It
-has the following columns:
-
-* song_id
-* topic_id
-
-
-"topics" Table
---------------
-The topics table holds a selection of topics that songs can cover. This
-is useful when a worship leader wants to select songs with a certain
-theme. This table has the following columns:
-
-* id
-* name
-
-
-The lyrics definition (more or less similar to interformat to/from ChangingSong
-The tags <i></i><b></b><u></u> can also be used within the lyrics test.
-
-! Please note that this format has been checked at http://validator.w3.org/#validate_by_upload
-
-<lyrics lang="en_US">
-  <title>Amazing Grace</title>
-  <verse name="v1">
-    <theme>name of verse specific theme (optional)</theme>
-    <comment>any text (optional)</comment>
-    <part name="men">
-	Amazing grace, how ...
-    </part>
-    <part name="women">
-	A b c
-	D e f
-    </part>
-    ...
-  </verse>
-  <verse name="c">
-    <theme>name of verse specific theme (optional)</theme>
-    <comment>any text (optional)</comment>
-    ...
-  </verse>
-</lyrics>
-<lyrics lang="de_DE">
-  <title>Erstaunliche Anmut</title>
-  <verse name="v1">
-    Erstaunliche Anmut, wie
-    ...
-  </verse>
-  <verse name="c">
-    ...
-  </verse>
-</lyrics>

=== modified file 'openlp/plugins/songs/lib/db.py'
--- openlp/plugins/songs/lib/db.py	2011-01-17 00:52:00 +0000
+++ openlp/plugins/songs/lib/db.py	2011-01-18 16:47:10 +0000
@@ -39,6 +39,7 @@
     """
     pass
 
+
 class Book(BaseModel):
     """
     Book model
@@ -47,30 +48,115 @@
         return u'<Book id="%s" name="%s" publisher="%s" />' % (
             str(self.id), self.name, self.publisher)
 
+
 class MediaFile(BaseModel):
     """
     MediaFile model
     """
     pass
 
+
 class Song(BaseModel):
     """
     Song model
     """
     pass
 
+
 class Topic(BaseModel):
     """
     Topic model
     """
     pass
 
+
 def init_schema(url):
     """
-    Setup the songs database connection and initialise the database schema
+    Setup the songs database connection and initialise the database schema.
 
     ``url``
         The database to setup
+
+    The song database contains the following tables:
+        * authors
+        * authors_songs
+        * media_files
+        * media_files_songs
+        * song_books
+        * songs
+        * songs_topics
+        * topics
+
+        *authors* Table
+        ---------------
+        This table holds the names of all the authors. It has the following
+        columns:
+        * id
+        * first_name
+        * last_name
+        * display_name
+
+        *authors_songs* Table
+        ---------------------
+        This is a bridging table between the *authors* and *songs* tables, which
+        serves to create a many-to-many relationship between the two tables. It
+        has the following columns:
+        * author_id
+        * song_id
+
+        *media_files* Table
+        -------------------
+        * id
+        * file_name
+        * type
+
+        *media_files_songs* Table
+        -------------------------
+        * media_file_id
+        * song_id
+
+        *song_books* Table
+        ------------------
+        The *song_books* table holds a list of books that a congregation gets
+        their songs from, or old hymnals now no longer used. This table has the
+        following columns:
+        * id
+        * name
+        * publisher
+
+        *songs* Table
+        -------------
+        This table contains the songs, and each song has a list of attributes.
+        The *songs* table has the following columns:
+        * id
+        * song_book_id
+        * title
+        * alternate_title
+        * lyrics
+        * verse_order
+        * copyright
+        * comments
+        * ccli_number
+        * song_number
+        * theme_name
+        * search_title
+        * search_lyrics
+
+        *songs_topics* Table
+        --------------------
+        This is a bridging table between the *songs* and *topics* tables, which
+        serves to create a many-to-many relationship between the two tables. It
+        has the following columns:
+        * song_id
+        * topic_id
+
+        *topics* Table
+        --------------
+        The topics table holds a selection of topics that songs can cover. This
+        is useful when a worship leader wants to select songs with a certain
+        theme. This table has the following columns:
+        * id
+        * name
     """
     session, metadata = init_db(url)
 


References