Mercurial > p > roundup > code
annotate website/www/_templates/layout.html @ 6433:c1d3fbcdbfbd
issue2551142 - Import of retired node ... unique constraint failure.
Title: Import of retired node with username after active node fails
with unique constraint failure.
More fixes needed for mysql and postgresql.
mysql: add unique constraint for (keyvalue, __retired__) when
creating class in the database.
On schema change if class is changed, remove the unique
constraint too.
upgrade version of rdbms database from 5 to 6 to add constraint
to all version 5 databases that were created as version 5
and didn't get the unique constraint. Make no changes
on version 5 databases upgraded from version 4, the upgrade
process to 5 added the constraint. Make no changes
to other databases (sqlite, postgres) during upgrade from
version 5 to 6.
postgres: Handle the exception raised on unique constraint violation.
The exception invalidates the database connection so it
can't be used to recover from the exception.
Added two new database methods:
checkpoint_data - performs a db.commit under postgres
does nothing on other backends
restore_connection_on_error - does a db.rollback on
postgres, does nothing on other
backends
with the rollback() done on the connection I can use the
database connection to fixup the import that failed on the
unique constraint. This makes postgres slower but without the
commit after every imported object, the rollback will delete
all the entries done up to this point.
Trying to figure out how to make the caller do_import batch
and recover from this failure is beyond me.
Also dismissed having to process the export csv file before
importing. Pushing that onto a user just seems wrong. Also
since import/export isn't frequently done the lack of
surprise on having a failing import and reduced
load/frustration for the user seems worth it. Also the import
can be run in verbose mode where it prints out a row as it is
processed, so it may take a while, ut the user can get
feedback.
db_test-base.py: add test for upgrade from 5 to 6.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Thu, 10 Jun 2021 12:52:05 -0400 |
| parents | 7849d8c7d917 |
| children | 2aa045e06fff |
| rev | line source |
|---|---|
|
6253
7849d8c7d917
Improve accessibiity, SEO
John Rouillard <rouilj@ieee.org>
parents:
6169
diff
changeset
|
1 <!DOCTYPE html> |
|
7849d8c7d917
Improve accessibiity, SEO
John Rouillard <rouilj@ieee.org>
parents:
6169
diff
changeset
|
2 <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> |
|
4022
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
3 <head> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
|
6253
7849d8c7d917
Improve accessibiity, SEO
John Rouillard <rouilj@ieee.org>
parents:
6169
diff
changeset
|
5 <meta name="viewport" content="width=device-width, initial-scale=1"> |
|
7849d8c7d917
Improve accessibiity, SEO
John Rouillard <rouilj@ieee.org>
parents:
6169
diff
changeset
|
6 <meta name="Description" |
|
7849d8c7d917
Improve accessibiity, SEO
John Rouillard <rouilj@ieee.org>
parents:
6169
diff
changeset
|
7 content="Documentation on the Roundup issue tracker, version {{ release|e }}."> |
|
4022
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
8 {{ metatags }} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
9 {%- if builder != 'htmlhelp' %} |
|
4028
5058b51243c2
don't escape the mdash
Richard Jones <richard@users.sourceforge.net>
parents:
4022
diff
changeset
|
10 {%- set titlesuffix = docstitle|e %} |
|
4548
b19488f673ed
fix that damned mdash; thanks John Kristensen
Richard Jones <richard@users.sourceforge.net>
parents:
4404
diff
changeset
|
11 {%- set titlesuffix = " - " + titlesuffix %} |
|
4022
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
12 {%- endif %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
13 <title>{{ title|striptags }}{{ titlesuffix }}</title> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
14 {%- if builder == 'web' %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
15 <link rel="stylesheet" href="{{ pathto('index') }}?do=stylesheet{% |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
16 if in_admin_panel %}&admin=yes{% endif %}" type="text/css" /> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
17 {%- for link, type, title in page_links %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
18 <link rel="alternate" type="{{ type|e(true) }}" title="{{ title|e(true) }}" href="{{ link|e(true) }}" /> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
19 {%- endfor %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
20 {%- else %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
21 <link rel="stylesheet" href="{{ pathto('_static/style.css', 1) }}" type="text/css" /> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
22 <link rel="stylesheet" href="{{ pathto('_static/pygments.css', 1) }}" type="text/css" /> |
|
4397
86a864e36331
add json awesomeness
Richard Jones <richard@users.sourceforge.net>
parents:
4138
diff
changeset
|
23 |
|
4022
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
24 {%- endif %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
25 {%- if builder != 'htmlhelp' %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
26 <script type="text/javascript"> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
27 var DOCUMENTATION_OPTIONS = { |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
28 URL_ROOT: '{{ pathto("", 1) }}', |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
29 VERSION: '{{ release|e }}', |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
30 COLLAPSE_MODINDEX: false, |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
31 FILE_SUFFIX: '{{ file_suffix }}' |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
32 }; |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
33 </script> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
34 {%- for scriptfile in script_files %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
35 <script type="text/javascript" src="{{ pathto(scriptfile, 1) }}"></script> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
36 {%- endfor %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
37 {%- if use_opensearch %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
38 <link rel="search" type="application/opensearchdescription+xml" |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
39 title="{% trans docstitle=docstitle|e %}Search within {{ docstitle }}{% endtrans %}" |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
40 href="{{ pathto('_static/opensearch.xml', 1) }}"/> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
41 {%- endif %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
42 {%- if favicon %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
43 <link rel="shortcut icon" href="{{ pathto('_static/' + favicon, 1) }}"/> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
44 {%- endif %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
45 {%- endif %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
46 {%- block linktags %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
47 {%- if hasdoc('about') %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
48 <link rel="author" title="{{ _('About these documents') }}" href="{{ pathto('about') }}" /> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
49 {%- endif %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
50 <link rel="index" title="{{ _('Index') }}" href="{{ pathto('genindex') }}" /> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
51 <link rel="search" title="{{ _('Search') }}" href="{{ pathto('search') }}" /> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
52 {%- if hasdoc('copyright') %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
53 <link rel="copyright" title="{{ _('Copyright') }}" href="{{ pathto('copyright') }}" /> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
54 {%- endif %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
55 <link rel="top" title="{{ docstitle|e }}" href="{{ pathto('index') }}" /> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
56 {%- if parents %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
57 <link rel="up" title="{{ parents[-1].title|striptags }}" href="{{ parents[-1].link|e }}" /> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
58 {%- endif %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
59 {%- if next %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
60 <link rel="next" title="{{ next.title|striptags }}" href="{{ next.link|e }}" /> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
61 {%- endif %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
62 {%- if prev %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
63 <link rel="prev" title="{{ prev.title|striptags }}" href="{{ prev.link|e }}" /> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
64 {%- endif %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
65 {%- endblock %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
66 {%- block extrahead %} {% endblock %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
67 </head> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
68 <body> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
69 <div class="header"><h1>Roundup</h1> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
70 {%- if pagename != "search" %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
71 <div id="searchbox" style="display: none"> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
72 <form class="search" action="{{ pathto('search') }}" method="get"> |
|
6253
7849d8c7d917
Improve accessibiity, SEO
John Rouillard <rouilj@ieee.org>
parents:
6169
diff
changeset
|
73 <input type="text" aria-label="Enter search terms" |
|
7849d8c7d917
Improve accessibiity, SEO
John Rouillard <rouilj@ieee.org>
parents:
6169
diff
changeset
|
74 name="q" size="18" /> |
|
4022
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
75 <input type="submit" value="{{ _('Search') }}" /> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
76 <input type="hidden" name="check_keywords" value="yes" /> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
77 <input type="hidden" name="area" value="default" /> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
78 </form> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
79 </div> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
80 <script type="text/javascript">$('#searchbox').show(0);</script> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
81 {%- endif %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
82 </div> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
83 <div class="navigation"> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
84 <div class="menu"> |
|
4138
0bc287f7559e
Adjust to sphinx 0.6.2.
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
4028
diff
changeset
|
85 {{ toctree() }} |
|
4022
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
86 </div> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
87 </div> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
88 <div class="content"> |
| 6163 | 89 <div id="subnav"> |
| 90 {%- if prev %} | |
| 91 <a title="{{ prev.title|striptags }}" href="{{ prev.link|e }}"> | |
| 92 Prev</a> | |
| 93 {%- endif %} | |
| 94 {%- if next %} | |
| 95 <a title="{{ next.title|striptags }}" href="{{ next.link|e }}"> | |
| 96 Next</a> | |
| 97 {%- endif %} | |
| 98 <a title="{{ _('Index') }}" href="{{ pathto('genindex') }}"> | |
| 99 Index</a> | |
| 100 </div> | |
|
4022
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
101 {% block body %} {% endblock %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
102 </div> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
103 {%- block footer %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
104 <div class="footer"> |
|
4821
c84dbc205b57
website: Save some vertical space in footer
anatoly techtonik <techtonik@gmail.com>
parents:
4548
diff
changeset
|
105 <div> |
|
c84dbc205b57
website: Save some vertical space in footer
anatoly techtonik <techtonik@gmail.com>
parents:
4548
diff
changeset
|
106 {%- if show_source and has_source and sourcename %} |
|
c84dbc205b57
website: Save some vertical space in footer
anatoly techtonik <techtonik@gmail.com>
parents:
4548
diff
changeset
|
107 <span class="source">[<a href="{{ pathto('_sources/' + sourcename, true)|e }}" rel="nofollow">{{ _('page source') }}</a>]</span> |
|
c84dbc205b57
website: Save some vertical space in footer
anatoly techtonik <techtonik@gmail.com>
parents:
4548
diff
changeset
|
108 {%- endif %} |
|
4022
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
109 {%- if hasdoc('copyright') %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
110 {% trans path=pathto('copyright'), copyright=copyright|e %}© <a href="{{ path }}">Copyright</a> {{ copyright }}.{% endtrans %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
111 {%- else %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
112 {% trans copyright=copyright|e %}© Copyright {{ copyright }}.{% endtrans %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
113 {%- endif %} |
|
4821
c84dbc205b57
website: Save some vertical space in footer
anatoly techtonik <techtonik@gmail.com>
parents:
4548
diff
changeset
|
114 </div> |
|
c84dbc205b57
website: Save some vertical space in footer
anatoly techtonik <techtonik@gmail.com>
parents:
4548
diff
changeset
|
115 <div> |
|
4022
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
116 {%- if last_updated %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
117 {% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
118 {%- endif %} |
|
6164
a9fcb4b0bad9
Change image url for sourceforge to use https.
John Rouillard <rouilj@ieee.org>
parents:
6163
diff
changeset
|
119 <span>Hosted by <a href="https://sourceforge.net"><img src="https://sflogo.sourceforge.net/sflogo.php?group_id=31577&type=1" width="88" height="31" border="0" alt="SourceForge.net Logo" /></a></span> |
|
4821
c84dbc205b57
website: Save some vertical space in footer
anatoly techtonik <techtonik@gmail.com>
parents:
4548
diff
changeset
|
120 </div> |
|
4022
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
121 </div> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
122 {%- endblock %} |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
123 </body> |
|
d62831da3941
svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff
changeset
|
124 </html> |
