openlp-core team mailing list archive
-
openlp-core team
-
Mailing list archive
-
Message #05678
[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)