OpacMarc según Django

Estas son unas notas iniciadas en marzo de 2008, cuando entré en contacto por primera vez con el framework Django. --- Fernando Gómez 2009/05/13 23:08

Ver también:

Reorganización de la estructura de directorios en Oparmarc, en base a symfony

Llamadas a opac.xis (desde links y formularios)

Las URLs pueden organizarse según:

Base consultada:

headings (name, subj)

title

biblio

class

Tipo de consulta:

browse (headings, title, biblio, class)

keyword match (heading, biblio, class)

heading match (biblio)

Tipo de resultado:

list of headings

list of bib records

single bib record

class table

¿El parámetro <db>, presente en todas las URLs, podría ser guardado como variable de la sesión? Tal vez podría estar implícito, mediante archivo de configuración, o como parte del dominio (e.g. bibima.opac.uns.edu.ar).

Si tuviéramos subcatálogos, el nombre del subcatálogo debería ser otro parámetro en la URL.

¿El contexto de un registro (la lista de registros a la que pertenece) se puede almacenar en la sesión?

Ver cómo Django maneja la paginación de listas.

Templates:

base

header

footer

home

Aux functions (based on existing *.pfts and *.xis):

bib_sort_key()

doc_type()

clean_heading()

compact_dates()

agrep()

find_suggestions()

Tabla

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
URL Response / Comments Views (functions) Templates
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Root:
/ No db specified, show menu of available dbs?
Search forms:
/<db>/search/<form_type>/ search_form() form-simple.html, form-advanced.html
/<db>/search/ Redirect to /<db>/search/simple/
/<db>/ Idem
Retrieve headings:
/<db>/browse-head/<index>/[<term>]/ Paginated list of headings. browse_headings() heading_list.html, heading.html
Default: term = start of index
/<db>/kw-in-head/<index>/<query>/ Paginated list of headings, or suggestions. match_kw_in_heading() heading_list.html, suggestions.html
Title browse ??
Retrieve lists of bib records:
/<db>/kw-in-bib/<type/field>/<query>/[sortBy]/ Paginated list of bib records, or suggestions. match_kw_in_bib() bib-record_list.html, bib-record-mini.html, suggestions.html
/<db>/head-in-bib/<index>/<heading>/[sortBy]/ Paginated list of bib records. match_heading_in_bib() bib-record_list.html, bib-record-mini.html
/<db>/class-in-bib/<class_code>/[sortBy]/ Paginated list of bib records. match_class_in_bib() bib-record_list.html
Browse catalog (shelves):
/<db>/browse-catalog/<browseMfn>/ Paginated list of bib records, sorted by call number browse_catalog() bib-record_list.html, bib-record-mini1.html
/<db>/browse-catalog/<browseTerm>/ Paginated list of bib records, sorted by call number browse_catalog() bib-record_list.html, bib-record-mini1.html
Classification browse/search:
/<db>/browse-class/[<tree_level>]/[<class_code>]/ List of class codes. Default: tree_level=1 browse_class() class_list.html, msc_home.html, msc.html
/<db>/kw-in-class/<query>/ List of matching class codes, or suggestions. match_kw_in_class() class_list.html, msc.html
Bib record details:
/<db>/bib-record/<curr>/<total>/<search-id>/[<style>]/ Detail view of bib record, with navigation links to bib_record_detail() bib-record_detail.html, bib-record-modular.html, bib-record-aacr.html, bib-record-etiquetado.html, bib-record-marc.html, ...
the context list of records and to its headings.
Problem: how to keep context with nice URLs
SEE BELOW: Amazon.com
/<db>/bib-record/<record-id>/<context?>/[<style>]/ This looks better.
Context may be: "search-id + index in list"
/<db>/bib-record/<recordID>/[<style>]/ Permalink
New material:
/<db>/new-material/ List of bib records. Pagination? new_material() bib-record-news.html, bib-record-mini2.html
By date?
Static pages:
/<db>/about/ May include dynamic info, e.g. number of records and about() about.html
last updated time
/<db>/feedback/ May include dynamic info, e.g. context for a bug report feedback() feedback.html (form + reply)
/<db>/help/ help() help.html
Other:
Admin: modify settings?
Test (boolean conditions, extract keys, etc)
Logs?
Subcatalogs?
Advanced search? (search only in bib records, with many params)
See other desired features mentioned in the wiki.
------------------------------------------------------------------------------------
Lists, details and context in Amazon.com
------------------------------------------------------------------------------------
Query: Books › "dawkins"
http://www.amazon.com/s/ref=nb_ss_gw/103-5784421-3350266
?url=search-alias%3Dstripbooks
&field-keywords=dawkins
Page #2
http://www.amazon.com/s/ref=sr_pg_2
?ie=UTF8
&rs=1000
&keywords=dawkins
&rh=n%3A1000%2Ck%3Adawkins
&page=2
Page #3
http://www.amazon.com/s/ref=sr_pg_3
?ie=UTF8
&rs=1000
&keywords=dawkins
&rh=n%3A1000%2Ck%3Adawkins
&page=3
Details of record #27 (3rd of page #3)
http://www.amazon.com/God-New-Atheism-Critical-Response/dp/066423304X/ref=sr_1_27
?ie=UTF8
&s=books
&qid=1205012241 <== search id
&sr=1-27
(page has no links to prev/next/list)
Details of record #29 (5th of page #3)
http://www.amazon.com/Dawkins-Delusion-McGrath/dp/0281059276/ref=sr_1_29
?ie=UTF8
&s=books
&qid=1205012241 <== search id
&sr=1-29
------------------------------------------------------------------------------------
Lists, details and context in Barnes and Noble
------------------------------------------------------------------------------------
Query: You Searched Books For: dawkins
http://search.barnesandnoble.com/booksearch/results.asp?WRD=dawkins
Page #3
http://search.barnesandnoble.com/booksearch/results.asp?SZE=10&WRD=dawkins&SAT=21
Details for item #22 (2nd in page #3)
http://search.barnesandnoble.com/River-out-of-Eden/Richard-Dawkins/e/9780465069903/?itm=22
Does not mention the search id
------------------------------------------------------------------------------------
Lists, details and context: question to django-users group
------------------------------------------------------------------------------------
http://groups.google.com/group/django-users/browse_thread/thread/9678230f84c50f03
Justin, thanks for your answer. Your arguments are very clear. So, this has practically nothing to do with Django or any other framework that I might choose, since it's more a basic web design question.
------------------------------------------------------------------------------------
[BROWSE CLASSIFICATION]
/bibima/CLASS-BROWSE/msclevel=1/searchType=SUBJ /
/bibima/CLASS-BROWSE/msclevel=3/searchType=SUBJ/query=00/
Patrón: /<db>/CLASS-BROWSE/<tree_level>/<class_code>/
[SEARCH CLASSIFICATION BY KEYWORDS]
/bibima/searchType=SUBJ/query=28A80/
/bibima/searchType=SUBJ/query=godel/
Patrón: /<db>/KW-IN-CLASS/<query>/
[SEARCH BIBS BY CLASS CODE]
/bibima/BIB-CLASS-SEARCH/index=SUBJ/query=00A73/
Patrón: /<db>/CLASS-IN-BIB/<class_code>/
[BROWSE INDEXES]
/bibima/H-BROWSE/index=NAME/browseTerm=g/
/bibima/H-BROWSE/index=TITLE/browseTerm=per/
/bibima/browseMfn=1549/index=NAME/ (pagination)
/bibima/browseMfn=4609/index=TITLE/ (pagination)
Patrón: /<db>/HEAD-BROWSE/<index>/<term>/
[BROWSE CATALOG]
/abr/BROWSE-CATALOG/browseMfn=1/
/abr/BROWSE-CATALOG/browseTerm=517/
[HEADING MATCH IN BIBS]
/bibima/BIB-H-SEARCH/index=NAME/query=^aPeral,+Ireneo./
Posibles valores para index: NAME, SUBJ, COL (=series)
Patrón: /<db>/HEAD-IN-BIB/<index>/<heading>/
[KW MATCH IN HEADINGS]
/bibima/searchType=NAME/query=monteiro/
/bibima/searchType=SUBJ/query=monteiro/from=21/
Patrón: /<db>/KW-IN-HEAD/<index>/<query>/
[KW MATCH IN BIBS]
/bibima/searchType=TITLE/query=robert/
/bibima/searchType=SN/query=123/
/bibima/searchType=ANY/query=123/
Patrón: /<db>/KW-IN-BIB/<type/field>/<query>/
[SORT BIB RECORDS]
/bibima/BIB-H-SEARCH/query=%5EaCuadernos+Teorema/index=COL/sortBy=title/
Patrón: append /<sortBy>/ to the current URL, or replace its value if present
[DISPLAY BIB RECORD]
/bibima/BIB-RECORD/curr=5/total=13/cid=/tmp/fileS3fuXx
Patrón: /<db>/BIB-RECORD/<curr>/<total>/<cid>/
Permalink: /bibima/BIB-RECORD/cn=002431/
Patrón: /<db>/BIB-RECORD/<recordID>/