Skip to content

Commit

Permalink
Adds new fields to group for related group/relationship.
Browse files Browse the repository at this point in the history
Adds fields for showing the relationship between the current closed
group and another.

Fixes the autocomplete module to allow for specifying default value and
label (when using an autocomplete lookup with select2)
  • Loading branch information
rossjones committed Jan 27, 2015
1 parent eef5f58 commit 3c3d326
Show file tree
Hide file tree
Showing 32 changed files with 2,485 additions and 82 deletions.
4 changes: 2 additions & 2 deletions ckan/controllers/api.py
Expand Up @@ -208,7 +208,7 @@ def action(self, logic_function, ver=None):
return_dict['error'] = {'__type': 'Authorization Error',
'message': _('Access denied')}
return_dict['success'] = False

if unicode(e):
return_dict['error']['message'] += u': %s' % e

Expand Down Expand Up @@ -661,7 +661,7 @@ def group_autocomplete(self):
limit = 20
limit = min(50, limit)

query = model.Group.search_by_name_or_title(q, t)
query = model.Group.search_by_name_or_title(q, t, t=='organization')

def convert_to_dict(user):
out = {}
Expand Down
5 changes: 5 additions & 0 deletions ckan/logic/schema.py
Expand Up @@ -287,6 +287,9 @@ def default_group_schema():
'created': [ignore],
'is_organization': [ignore_missing],
'closed': [default(False), boolean_validator],
'closed_date': [ignore_missing],
'related_group_id': [ignore_missing, group_id_exists, unicode],
'related_group_relationship': [ignore_missing, unicode],
'approval_status': [ignore_missing, unicode],
'extras': default_extras_schema(),
'__extras': [ignore],
Expand Down Expand Up @@ -330,6 +333,8 @@ def group_form_schema():
def default_update_group_schema():
schema = default_group_schema()
schema["name"] = [ignore_missing, group_name_validator, unicode]

# 'related_group_id': [ignore_missing, group_id_exists, unicode],
return schema

def default_show_group_schema():
Expand Down
21 changes: 21 additions & 0 deletions ckan/migration/versions/075_add_closed_to_group.py
Expand Up @@ -10,5 +10,26 @@ def upgrade(migrate_engine):
ALTER TABLE "group_revision"
ADD COLUMN "closed" BOOLEAN DEFAULT FALSE;
UPDATE "group_revision" set closed=false;
ALTER TABLE "group"
ADD COLUMN "closed_date" timestamp without time zone;
UPDATE "group" set closed_date=NULL;
ALTER TABLE "group_revision"
ADD COLUMN "closed_date" timestamp without time zone;
UPDATE "group_revision" set closed_date=NULL;
ALTER TABLE "group"
ADD COLUMN "related_group_id" TEXT;
UPDATE "group" set related_group_id=NULL;
ALTER TABLE "group_revision"
ADD COLUMN "related_group_id" TEXT;
UPDATE "group_revision" set related_group_id=NULL;
ALTER TABLE "group"
ADD COLUMN "related_group_relationship" TEXT;
UPDATE "group" set related_group_relationship=NULL;
ALTER TABLE "group_revision"
ADD COLUMN "related_group_relationship" TEXT;
UPDATE "group_revision" set related_group_relationship=NULL;
'''
)
21 changes: 13 additions & 8 deletions ckan/model/group.py
Expand Up @@ -44,11 +44,18 @@
Column('description', types.UnicodeText),
Column('image_url', types.UnicodeText),
Column('created', types.DateTime,
default=datetime.datetime.now),
default=datetime.datetime.now),
Column('is_organization', types.Boolean, default=False),
Column('approval_status', types.UnicodeText,
default=u"approved"),
Column('closed', types.Boolean, default=False))
Column('closed', types.Boolean, default=False),
Column('closed_date', types.DateTime, nullable=True,
default=None),
Column('related_group_id', types.UnicodeText,
nullable=True, default=None),
Column('related_group_relationship', types.UnicodeText,
nullable=True, default=None),
)

vdm.sqlalchemy.make_table_stateful(group_table)
group_revision_table = core.make_revisioned_table(group_table)
Expand Down Expand Up @@ -136,12 +143,10 @@ def __init__(self, name=u'', title=u'', description=u'', image_url=u'',

@property
def display_name(self):
if self.title:
if self.closed:
return "%s (%s)" % (self.title, _("Closed"),)
return self.title
else:
return self.name
name = self.title or self.name
if self.closed:
return "%s (%s)" % (name, _("Closed"),)
return name

@classmethod
def get(cls, reference):
Expand Down
36 changes: 34 additions & 2 deletions ckan/public/base/i18n/bg.js
Expand Up @@ -2,6 +2,38 @@
"": {
"domain": "ckan",
"lang": "bg",
"plural-forms": "nplurals=2; plural=(n != 1)"
}
"plural-forms": "nplurals=2; plural=(n != 1);"
},
"Cancel": [
null,
"Отказ"
],
"Edit": [
null,
"Редакция"
],
"Follow": [
null,
"Следвай"
],
"Image": [
null,
"Изображение"
],
"Loading...": [
null,
"Зареждане...."
],
"URL": [
null,
"URL"
],
"Upload": [
null,
"Качване"
],
"Upload a file": [
null,
"Качване на файл"
]
}
148 changes: 146 additions & 2 deletions ckan/public/base/i18n/ca.js
Expand Up @@ -2,6 +2,150 @@
"": {
"domain": "ckan",
"lang": "ca",
"plural-forms": "nplurals=2; plural=(n != 1)"
}
"plural-forms": "nplurals=2; plural=(n != 1);"
},
"An Error Occurred": [
null,
"Ha tingut lloc un error"
],
"Are you sure you want to perform this action?": [
null,
"Teniu tota la seguretat per a dur a terme aquesta acció?"
],
"Cancel": [
null,
"Cancel·lar"
],
"Confirm": [
null,
"Confirma"
],
"Edit": [
null,
"Editar"
],
"Failed to load data API information": [
null,
"Ha fallat la càrrega d'informació de l'API"
],
"Follow": [
null,
"Seguir"
],
"Hide": [
null,
"Oculta"
],
"Image": [
null,
"Imatge"
],
"Input is too short, must be at least one character": [
null,
"L'entrada de dades és massa curta, almenys ha de tenir un caràcter"
],
"Link": [
null,
"Enllaç"
],
"Link to a URL on the internet (you can also link to an API)": [
null,
"Enllaçar a una URL a l'Internet (també podeu enllaçar a una API)"
],
"Loading...": [
null,
"Carregant..."
],
"No matches found": [
null,
"No s'ha trobat coincidències"
],
"Please Confirm Action": [
null,
"Acció de confirmació"
],
"Remove": [
null,
"Esborra"
],
"Reorder resources": [
null,
"Reordenar recursos"
],
"Reset this": [
null,
"Reiniciar"
],
"Resource uploaded": [
null,
"El recurs s'ha carregat"
],
"Save order": [
null,
"Desar ordre"
],
"Saving...": [
null,
"Desant..."
],
"Show more": [
null,
"Mostra més"
],
"Start typing…": [
null,
"Comenceu a escriure..."
],
"There are unsaved modifications to this form": [
null,
"Aquest formulari conté modificacions no desades"
],
"There is no API data to load for this resource": [
null,
"No hi ha dades de l'API per a carregar-les en aquest recurs"
],
"URL": [
null,
"URL"
],
"Unable to authenticate upload": [
null,
"No es pot autenticar la càrrega"
],
"Unable to get data for uploaded file": [
null,
"No es pot obtenir les dades per a l'arxiu carregat"
],
"Unable to upload file": [
null,
"No es pot carregar l'arxiu"
],
"Unfollow": [
null,
"Deixar de seguir"
],
"Upload": [
null,
"Carregar"
],
"Upload a file": [
null,
"Carregar un arxiu"
],
"Upload a file on your computer": [
null,
"Pujar un arxiu des del vostre ordinador"
],
"You are uploading a file. Are you sure you want to navigate away and stop this upload?": [
null,
"Esteu pujant un arxiu. Esteu segurs que voleu marxar de la pàgina i aturar la pujada?"
],
"show less": [
null,
"mostra menys"
],
"show more": [
null,
"mostra més"
]
}

0 comments on commit 3c3d326

Please sign in to comment.