Copy all config default settings to Config; images should use relative path; behavior.addmedia-image-dir should be absolute

svn: r19872
This commit is contained in:
Doug Blank 2012-06-19 01:59:37 +00:00
parent 7b4271e6a3
commit 9404e6c1b4
5 changed files with 1285 additions and 1188 deletions

View File

@ -157,33 +157,36 @@ INSERT INTO "auth_permission" VALUES(147,'Can delete url',49,'delete_url');
INSERT INTO "auth_permission" VALUES(148,'Can add attribute',50,'add_attribute'); INSERT INTO "auth_permission" VALUES(148,'Can add attribute',50,'add_attribute');
INSERT INTO "auth_permission" VALUES(149,'Can change attribute',50,'change_attribute'); INSERT INTO "auth_permission" VALUES(149,'Can change attribute',50,'change_attribute');
INSERT INTO "auth_permission" VALUES(150,'Can delete attribute',50,'delete_attribute'); INSERT INTO "auth_permission" VALUES(150,'Can delete attribute',50,'delete_attribute');
INSERT INTO "auth_permission" VALUES(151,'Can add note ref',51,'add_noteref'); INSERT INTO "auth_permission" VALUES(151,'Can add log',51,'add_log');
INSERT INTO "auth_permission" VALUES(152,'Can change note ref',51,'change_noteref'); INSERT INTO "auth_permission" VALUES(152,'Can change log',51,'change_log');
INSERT INTO "auth_permission" VALUES(153,'Can delete note ref',51,'delete_noteref'); INSERT INTO "auth_permission" VALUES(153,'Can delete log',51,'delete_log');
INSERT INTO "auth_permission" VALUES(154,'Can add event ref',52,'add_eventref'); INSERT INTO "auth_permission" VALUES(154,'Can add note ref',52,'add_noteref');
INSERT INTO "auth_permission" VALUES(155,'Can change event ref',52,'change_eventref'); INSERT INTO "auth_permission" VALUES(155,'Can change note ref',52,'change_noteref');
INSERT INTO "auth_permission" VALUES(156,'Can delete event ref',52,'delete_eventref'); INSERT INTO "auth_permission" VALUES(156,'Can delete note ref',52,'delete_noteref');
INSERT INTO "auth_permission" VALUES(157,'Can add repository ref',53,'add_repositoryref'); INSERT INTO "auth_permission" VALUES(157,'Can add event ref',53,'add_eventref');
INSERT INTO "auth_permission" VALUES(158,'Can change repository ref',53,'change_repositoryref'); INSERT INTO "auth_permission" VALUES(158,'Can change event ref',53,'change_eventref');
INSERT INTO "auth_permission" VALUES(159,'Can delete repository ref',53,'delete_repositoryref'); INSERT INTO "auth_permission" VALUES(159,'Can delete event ref',53,'delete_eventref');
INSERT INTO "auth_permission" VALUES(160,'Can add person ref',54,'add_personref'); INSERT INTO "auth_permission" VALUES(160,'Can add repository ref',54,'add_repositoryref');
INSERT INTO "auth_permission" VALUES(161,'Can change person ref',54,'change_personref'); INSERT INTO "auth_permission" VALUES(161,'Can change repository ref',54,'change_repositoryref');
INSERT INTO "auth_permission" VALUES(162,'Can delete person ref',54,'delete_personref'); INSERT INTO "auth_permission" VALUES(162,'Can delete repository ref',54,'delete_repositoryref');
INSERT INTO "auth_permission" VALUES(163,'Can add citation ref',55,'add_citationref'); INSERT INTO "auth_permission" VALUES(163,'Can add person ref',55,'add_personref');
INSERT INTO "auth_permission" VALUES(164,'Can change citation ref',55,'change_citationref'); INSERT INTO "auth_permission" VALUES(164,'Can change person ref',55,'change_personref');
INSERT INTO "auth_permission" VALUES(165,'Can delete citation ref',55,'delete_citationref'); INSERT INTO "auth_permission" VALUES(165,'Can delete person ref',55,'delete_personref');
INSERT INTO "auth_permission" VALUES(166,'Can add child ref',56,'add_childref'); INSERT INTO "auth_permission" VALUES(166,'Can add citation ref',56,'add_citationref');
INSERT INTO "auth_permission" VALUES(167,'Can change child ref',56,'change_childref'); INSERT INTO "auth_permission" VALUES(167,'Can change citation ref',56,'change_citationref');
INSERT INTO "auth_permission" VALUES(168,'Can delete child ref',56,'delete_childref'); INSERT INTO "auth_permission" VALUES(168,'Can delete citation ref',56,'delete_citationref');
INSERT INTO "auth_permission" VALUES(169,'Can add media ref',57,'add_mediaref'); INSERT INTO "auth_permission" VALUES(169,'Can add child ref',57,'add_childref');
INSERT INTO "auth_permission" VALUES(170,'Can change media ref',57,'change_mediaref'); INSERT INTO "auth_permission" VALUES(170,'Can change child ref',57,'change_childref');
INSERT INTO "auth_permission" VALUES(171,'Can delete media ref',57,'delete_mediaref'); INSERT INTO "auth_permission" VALUES(171,'Can delete child ref',57,'delete_childref');
INSERT INTO "auth_permission" VALUES(172,'Can add report',58,'add_report'); INSERT INTO "auth_permission" VALUES(172,'Can add media ref',58,'add_mediaref');
INSERT INTO "auth_permission" VALUES(173,'Can change report',58,'change_report'); INSERT INTO "auth_permission" VALUES(173,'Can change media ref',58,'change_mediaref');
INSERT INTO "auth_permission" VALUES(174,'Can delete report',58,'delete_report'); INSERT INTO "auth_permission" VALUES(174,'Can delete media ref',58,'delete_mediaref');
INSERT INTO "auth_permission" VALUES(175,'Can add result',59,'add_result'); INSERT INTO "auth_permission" VALUES(175,'Can add report',59,'add_report');
INSERT INTO "auth_permission" VALUES(176,'Can change result',59,'change_result'); INSERT INTO "auth_permission" VALUES(176,'Can change report',59,'change_report');
INSERT INTO "auth_permission" VALUES(177,'Can delete result',59,'delete_result'); INSERT INTO "auth_permission" VALUES(177,'Can delete report',59,'delete_report');
INSERT INTO "auth_permission" VALUES(178,'Can add result',60,'add_result');
INSERT INTO "auth_permission" VALUES(179,'Can change result',60,'change_result');
INSERT INTO "auth_permission" VALUES(180,'Can delete result',60,'delete_result');
CREATE TABLE "auth_group_permissions" ( CREATE TABLE "auth_group_permissions" (
"id" integer NOT NULL PRIMARY KEY, "id" integer NOT NULL PRIMARY KEY,
"group_id" integer NOT NULL, "group_id" integer NOT NULL,
@ -219,8 +222,8 @@ CREATE TABLE "auth_user" (
"last_login" datetime NOT NULL, "last_login" datetime NOT NULL,
"date_joined" datetime NOT NULL "date_joined" datetime NOT NULL
); );
INSERT INTO "auth_user" VALUES(1,'admin','','','bugs@gramps-project.org','sha1$f79e3$2485263f7c464c61901f7efe56f9cfa3d02893fe',1,1,1,'2012-06-11 17:00:52.089846','2012-06-11 17:00:52.089846'); INSERT INTO "auth_user" VALUES(1,'admin','','','bugs@gramps-project.org','sha1$7f568$508734ae545aeeb0897ee9eb842353f473efd9af',1,1,1,'2012-06-18 21:25:23.952110','2012-06-18 21:25:23.952110');
INSERT INTO "auth_user" VALUES(2,'admin1','','','bugs@gramps-project.org','sha1$03b37$160aa6551fee676cd79c56eead3a3f5db2bef631',1,1,1,'2012-06-11 17:00:56.693844','2012-06-11 17:00:56.693844'); INSERT INTO "auth_user" VALUES(2,'admin1','','','bugs@gramps-project.org','sha1$d0f39$4a5d0323022eaf3cf511fd3ada65444328a37452',1,1,1,'2012-06-18 21:25:29.831944','2012-06-18 21:25:29.831944');
CREATE TABLE "auth_message" ( CREATE TABLE "auth_message" (
"id" integer NOT NULL PRIMARY KEY, "id" integer NOT NULL PRIMARY KEY,
"user_id" integer NOT NULL REFERENCES "auth_user" ("id"), "user_id" integer NOT NULL REFERENCES "auth_user" ("id"),
@ -283,15 +286,16 @@ INSERT INTO "django_content_type" VALUES(47,'address','grampsdb','address');
INSERT INTO "django_content_type" VALUES(48,'location','grampsdb','location'); INSERT INTO "django_content_type" VALUES(48,'location','grampsdb','location');
INSERT INTO "django_content_type" VALUES(49,'url','grampsdb','url'); INSERT INTO "django_content_type" VALUES(49,'url','grampsdb','url');
INSERT INTO "django_content_type" VALUES(50,'attribute','grampsdb','attribute'); INSERT INTO "django_content_type" VALUES(50,'attribute','grampsdb','attribute');
INSERT INTO "django_content_type" VALUES(51,'note ref','grampsdb','noteref'); INSERT INTO "django_content_type" VALUES(51,'log','grampsdb','log');
INSERT INTO "django_content_type" VALUES(52,'event ref','grampsdb','eventref'); INSERT INTO "django_content_type" VALUES(52,'note ref','grampsdb','noteref');
INSERT INTO "django_content_type" VALUES(53,'repository ref','grampsdb','repositoryref'); INSERT INTO "django_content_type" VALUES(53,'event ref','grampsdb','eventref');
INSERT INTO "django_content_type" VALUES(54,'person ref','grampsdb','personref'); INSERT INTO "django_content_type" VALUES(54,'repository ref','grampsdb','repositoryref');
INSERT INTO "django_content_type" VALUES(55,'citation ref','grampsdb','citationref'); INSERT INTO "django_content_type" VALUES(55,'person ref','grampsdb','personref');
INSERT INTO "django_content_type" VALUES(56,'child ref','grampsdb','childref'); INSERT INTO "django_content_type" VALUES(56,'citation ref','grampsdb','citationref');
INSERT INTO "django_content_type" VALUES(57,'media ref','grampsdb','mediaref'); INSERT INTO "django_content_type" VALUES(57,'child ref','grampsdb','childref');
INSERT INTO "django_content_type" VALUES(58,'report','grampsdb','report'); INSERT INTO "django_content_type" VALUES(58,'media ref','grampsdb','mediaref');
INSERT INTO "django_content_type" VALUES(59,'result','grampsdb','result'); INSERT INTO "django_content_type" VALUES(59,'report','grampsdb','report');
INSERT INTO "django_content_type" VALUES(60,'result','grampsdb','result');
CREATE TABLE "django_session" ( CREATE TABLE "django_session" (
"session_key" varchar(40) NOT NULL PRIMARY KEY, "session_key" varchar(40) NOT NULL PRIMARY KEY,
"session_data" text NOT NULL, "session_data" text NOT NULL,
@ -636,7 +640,8 @@ CREATE TABLE "grampsdb_config" (
); );
INSERT INTO "grampsdb_config" VALUES(1,'sitename','site name of family tree','str','Gramps-Connect'); INSERT INTO "grampsdb_config" VALUES(1,'sitename','site name of family tree','str','Gramps-Connect');
INSERT INTO "grampsdb_config" VALUES(2,'db_version','database scheme version','str','0.6.1'); INSERT INTO "grampsdb_config" VALUES(2,'db_version','database scheme version','str','0.6.1');
INSERT INTO "grampsdb_config" VALUES(3,'db_created','database creation date/time','str','2012-06-11 17:00'); INSERT INTO "grampsdb_config" VALUES(3,'db_created','database creation date/time','str','2012-06-18 21:24');
INSERT INTO "grampsdb_config" VALUES(4,'geography.center-lat','','<type ''float''>','40.3621673584');
CREATE TABLE "grampsdb_tag" ( CREATE TABLE "grampsdb_tag" (
"id" integer NOT NULL PRIMARY KEY, "id" integer NOT NULL PRIMARY KEY,
"handle" varchar(19) NOT NULL UNIQUE, "handle" varchar(19) NOT NULL UNIQUE,
@ -997,6 +1002,19 @@ CREATE TABLE "grampsdb_attribute" (
"object_type_id" integer NOT NULL REFERENCES "django_content_type" ("id"), "object_type_id" integer NOT NULL REFERENCES "django_content_type" ("id"),
"object_id" integer unsigned NOT NULL "object_id" integer unsigned NOT NULL
); );
CREATE TABLE "grampsdb_log" (
"id" integer NOT NULL PRIMARY KEY,
"object_type_id" integer NOT NULL REFERENCES "django_content_type" ("id"),
"object_id" integer unsigned NOT NULL,
"order" integer unsigned NOT NULL,
"last_saved" datetime NOT NULL,
"last_changed" datetime,
"last_changed_by" text,
"private" bool NOT NULL,
"log_type" varchar(10) NOT NULL,
"reason" text NOT NULL,
"cache" text
);
CREATE TABLE "grampsdb_noteref" ( CREATE TABLE "grampsdb_noteref" (
"id" integer NOT NULL PRIMARY KEY, "id" integer NOT NULL PRIMARY KEY,
"object_type_id" integer NOT NULL REFERENCES "django_content_type" ("id"), "object_type_id" integer NOT NULL REFERENCES "django_content_type" ("id"),
@ -1043,7 +1061,7 @@ CREATE TABLE "grampsdb_personref" (
"last_changed_by" text, "last_changed_by" text,
"private" bool NOT NULL, "private" bool NOT NULL,
"ref_object_id" integer NOT NULL REFERENCES "grampsdb_person" ("id"), "ref_object_id" integer NOT NULL REFERENCES "grampsdb_person" ("id"),
"description" varchar(50) NOT NULL "description" varchar(50)
); );
CREATE TABLE "grampsdb_citationref" ( CREATE TABLE "grampsdb_citationref" (
"id" integer NOT NULL PRIMARY KEY, "id" integer NOT NULL PRIMARY KEY,
@ -1133,6 +1151,7 @@ CREATE INDEX "auth_user_user_permissions_1e014c8f" ON "auth_user_user_permission
CREATE INDEX "auth_user_groups_403f60f" ON "auth_user_groups" ("user_id"); CREATE INDEX "auth_user_groups_403f60f" ON "auth_user_groups" ("user_id");
CREATE INDEX "auth_user_groups_425ae3c4" ON "auth_user_groups" ("group_id"); CREATE INDEX "auth_user_groups_425ae3c4" ON "auth_user_groups" ("group_id");
CREATE INDEX "auth_message_403f60f" ON "auth_message" ("user_id"); CREATE INDEX "auth_message_403f60f" ON "auth_message" ("user_id");
CREATE INDEX "django_session_3da3d3d8" ON "django_session" ("expire_date");
CREATE INDEX "django_admin_log_403f60f" ON "django_admin_log" ("user_id"); CREATE INDEX "django_admin_log_403f60f" ON "django_admin_log" ("user_id");
CREATE INDEX "django_admin_log_1bb8f392" ON "django_admin_log" ("content_type_id"); CREATE INDEX "django_admin_log_1bb8f392" ON "django_admin_log" ("content_type_id");
CREATE INDEX "grampsdb_profile_71d2bf68" ON "grampsdb_profile" ("theme_type_id"); CREATE INDEX "grampsdb_profile_71d2bf68" ON "grampsdb_profile" ("theme_type_id");
@ -1185,6 +1204,7 @@ CREATE INDEX "grampsdb_url_3bc6e294" ON "grampsdb_url" ("place_id");
CREATE INDEX "grampsdb_url_6a730446" ON "grampsdb_url" ("repository_id"); CREATE INDEX "grampsdb_url_6a730446" ON "grampsdb_url" ("repository_id");
CREATE INDEX "grampsdb_attribute_13db1433" ON "grampsdb_attribute" ("attribute_type_id"); CREATE INDEX "grampsdb_attribute_13db1433" ON "grampsdb_attribute" ("attribute_type_id");
CREATE INDEX "grampsdb_attribute_518e5aa5" ON "grampsdb_attribute" ("object_type_id"); CREATE INDEX "grampsdb_attribute_518e5aa5" ON "grampsdb_attribute" ("object_type_id");
CREATE INDEX "grampsdb_log_518e5aa5" ON "grampsdb_log" ("object_type_id");
CREATE INDEX "grampsdb_noteref_518e5aa5" ON "grampsdb_noteref" ("object_type_id"); CREATE INDEX "grampsdb_noteref_518e5aa5" ON "grampsdb_noteref" ("object_type_id");
CREATE INDEX "grampsdb_noteref_27acd269" ON "grampsdb_noteref" ("ref_object_id"); CREATE INDEX "grampsdb_noteref_27acd269" ON "grampsdb_noteref" ("ref_object_id");
CREATE INDEX "grampsdb_eventref_518e5aa5" ON "grampsdb_eventref" ("object_type_id"); CREATE INDEX "grampsdb_eventref_518e5aa5" ON "grampsdb_eventref" ("object_type_id");

File diff suppressed because it is too large Load Diff

View File

@ -396,9 +396,9 @@ class Config(models.Model):
""" """
All of the meta config items for the entire system. All of the meta config items for the entire system.
""" """
setting = models.CharField('config setting', max_length=25) setting = models.CharField('config setting', max_length=50)
description = models.TextField('description') description = models.TextField('description', null=True, blank=True)
value_type = models.CharField('type of value', max_length=25) value_type = models.CharField('type of value', max_length=80)
value = models.TextField('value') value = models.TextField('value')
def __unicode__(self): def __unicode__(self):

View File

@ -56,10 +56,11 @@ def process_media(request, context, handle, action, add_to=None): # view, edit,
# Handle: edit, view, add, create, save, delete # Handle: edit, view, add, create, save, delete
if action == "full": if action == "full":
# FIXME: path should come from config
media = Media.objects.get(handle=handle) media = Media.objects.get(handle=handle)
media_type, media_ext = media.mime.split("/", 1) media_type, media_ext = media.mime.split("/", 1)
folder = config.get('behavior.addmedia-image-dir') # FIXME: This should be absolute:
folder = Config.objects.get(setting="behavior.addmedia-image-dir").value
# FIXME: media.path should not have any .. for security
image = Image.open("%s/%s" % (folder, media.path)) image = Image.open("%s/%s" % (folder, media.path))
response = HttpResponse(mimetype=media.mime) response = HttpResponse(mimetype=media.mime)
image.save(response, media_ext.upper()) image.save(response, media_ext.upper())
@ -67,13 +68,18 @@ def process_media(request, context, handle, action, add_to=None): # view, edit,
elif action == "thumbnail": elif action == "thumbnail":
media = Media.objects.get(handle=handle) media = Media.objects.get(handle=handle)
media_type, media_ext = media.mime.split("/", 1) media_type, media_ext = media.mime.split("/", 1)
folder = config.get('behavior.addmedia-image-dir') # FIXME: This should be absolute:
folder = Config.objects.get(setting="behavior.addmedia-image-dir").value
# FIXME: media.path should not have any .. for security
if os.path.exists("%s/thumbnail/%s" % (folder, media.path)): if os.path.exists("%s/thumbnail/%s" % (folder, media.path)):
image = Image.open("%s/thumbnail/%s" % (folder, media.path)) image = Image.open("%s/thumbnail/%s" % (folder, media.path))
else: else:
image = Image.open("%s/%s" % (folder, media.path)) image = Image.open("%s/%s" % (folder, media.path))
image.thumbnail((300,300), Image.ANTIALIAS) image.thumbnail((300,300), Image.ANTIALIAS)
try:
os.makedirs("%s/thumbnail" % folder) os.makedirs("%s/thumbnail" % folder)
except:
pass
image.save("%s/thumbnail/%s" % (folder, media.path)) image.save("%s/thumbnail/%s" % (folder, media.path))
response = HttpResponse(mimetype=media.mime) response = HttpResponse(mimetype=media.mime)
image.save(response, media_ext.upper()) image.save(response, media_ext.upper())

View File

@ -31,6 +31,7 @@ import os
os.environ["DJANGO_SETTINGS_MODULE"] = "settings" os.environ["DJANGO_SETTINGS_MODULE"] = "settings"
import settings import settings
from gen.config import config
from gen.lib.nametype import NameType from gen.lib.nametype import NameType
from gen.lib.nameorigintype import NameOriginType from gen.lib.nameorigintype import NameOriginType
from gen.lib.attrtype import AttributeType from gen.lib.attrtype import AttributeType
@ -170,6 +171,23 @@ for table, entries in [("grampsdb.config",
print " }," print " },"
entry_count += 1 entry_count += 1
pk = 4
for section in config.get_sections():
for setting in config.get_section_settings(section):
key = "%s.%s" % (section, setting)
value = config.get_default(key)
print " {"
print " \"model\": \"grampsdb.config\","
print " \"pk\": %d," % pk
print " \"fields\":"
print " {"
print " \"setting\" : \"%s\"," % key
print " \"value_type\" : \"%s\"," % type(value).__name__
print " \"value\": \"%s\"" % value
print " }"
print " },",
pk += 1
## Add the data for the type models: ## Add the data for the type models:
type_models = [NameType, NameOriginType, AttributeType, UrlType, ChildRefType, type_models = [NameType, NameOriginType, AttributeType, UrlType, ChildRefType,