[ckan-dev] Issues with adding a custom input field

Adrià Mercader adria.mercader at okfn.org
Tue Jan 8 09:43:19 UTC 2013


Hi Fabian,

You use "release_data" on form_to_db_schema and "release_date" on
db_to_form_schema. Let's get this out of the way to make sure it's not
affecting things.

What ProgrammingError are you getting? Can you paste the full traceback?


Adrià

On 8 January 2013 08:07, Kirstein, Fabian
<fabian.kirstein at fokus.fraunhofer.de> wrote:
> Hi Adrià,
>
> thank you very much for having a look into my problem.
> The solution you proposed is the same I've tried, but it just leads me to an error message. I implemented just the basic idea and
> pushed it to GitHub: https://github.com/FabiApfelkern/ckanext-addfield
> If I want to view or edit a dataset I just get a " ProgrammingError".
>
> It would be absolutely great if you can have another look into it.
> Fabian
>
>
>
> -----Ursprüngliche Nachricht-----
> Von: ckan-dev-bounces at lists.okfn.org [mailto:ckan-dev-bounces at lists.okfn.org] Im Auftrag von Adrià Mercader
> Gesendet: Montag, 7. Januar 2013 17:17
> An: CKAN Development Discussions
> Betreff: Re: [ckan-dev] Issues with adding a custom input field
>
> Hi Fabian,
>
> When storing extra fields against the default CKAN schema, these get internally stored as extras, which can hold arbitrary key-value pairs.
> You need to add the following converters to your custom schema on your form_to_db_schema and db_to_form_schema methods:
>
>
> from ckan.logic.converters import convert_to_extras, convert_from_extras
>
> class YourPlugin(IDatasetForm):
>
> def form_to_db_schema(self):
>
>  // get the default package schema
>  //...
>
>    schema['release_date'] = [convert_to_extras] //You can add more validators if needed
>
>    return schema
>
> def db_to_form_schema(self):
>
>  // get the default package schema
>  //...
>    schema['release_date'] = [convert_from_extras]
>
>    return schema
>
> After doing this, on additional_info.html, pkg_dict should have your extra fields (pkg_dict.release_date).
>
> Here is a real example of a custom schema that stores new fields (look for those with convert_to_extras):
>
> https://github.com/okfn/ckanext-harvest/blob/2.0-dataset-sources/ckanext/harvest/logic/schema.py
>
>
> Hope this helps,
>
> Adrià
>
> On 7 January 2013 10:57, Kirstein, Fabian <fabian.kirstein at fokus.fraunhofer.de> wrote:
>> Hello,
>>
>>
>>
>> do you need any additional information to answer my question? I can’t
>> solve it by my own.
>>
>> I tried to save the inputted value with schema.update and
>> convert_to_extras methods, but I
>>
>> am not sure how to apply it.
>>
>>
>>
>> Thanks!
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> Von: ckan-dev-bounces at lists.okfn.org
>> [mailto:ckan-dev-bounces at lists.okfn.org] Im Auftrag von Kirstein,
>> Fabian
>> Gesendet: Donnerstag, 3. Januar 2013 12:25
>> An: ckan-dev at lists.okfn.org
>> Betreff: [ckan-dev] Issues with adding a custom input field
>>
>>
>>
>> Hello everyone,
>>
>>
>>
>> this thread follows my „Customizing Forms in 2.0a“  thread. I have
>> still issues adding some custom input fields, store the input and display it.
>>
>> I try to explain what to do. I’ve started to write my own custom
>> extension implementing IDatasetForm . I’ve overwritten the
>> package_metadata_fields.html and add
>>
>> an additional field, like this:
>>
>> {{ form.input('release_date', label=_('Release Date'),
>> id='field-release-date', placeholder=_('2011-06-13'),
>> value=data.release_date, error=errors.release_date,
>> classes=['control-medium']) }}
>>
>> In the form_to_db_schema() method, I would like to store the value of
>> the field as an extra field. I am not pretty sure how to access the
>> inputted value.
>>
>> Then I want to override additional_info.html to display the stored value.
>> But I’m not really sure how to pass data to such a snippet. The
>> c-object which
>>
>> I can manipulate setup_template_variables() is not available in the snippet.
>>
>>
>>
>> I would really appreciate any help. I can’t be so hard to add a single
>> input field, I guess I just have some misunderstandings.
>>
>> Thanks a lot.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> ckan-dev mailing list
>> ckan-dev at lists.okfn.org
>> http://lists.okfn.org/mailman/listinfo/ckan-dev
>> Unsubscribe: http://lists.okfn.org/mailman/options/ckan-dev
>>
>
> _______________________________________________
> ckan-dev mailing list
> ckan-dev at lists.okfn.org
> http://lists.okfn.org/mailman/listinfo/ckan-dev
> Unsubscribe: http://lists.okfn.org/mailman/options/ckan-dev
> _______________________________________________
> ckan-dev mailing list
> ckan-dev at lists.okfn.org
> http://lists.okfn.org/mailman/listinfo/ckan-dev
> Unsubscribe: http://lists.okfn.org/mailman/options/ckan-dev




More information about the ckan-dev mailing list