Now using Django-reversion & requiring logins for all views
authorBrandon King <kingb@caltech.edu>
Tue, 28 Apr 2009 19:56:18 +0000 (19:56 +0000)
committerBrandon King <kingb@caltech.edu>
Tue, 28 Apr 2009 19:56:18 +0000 (19:56 +0000)
samplebc/samples/views.py
samplebc/urls.py
templates/app.html
templates/registration/login.html [new file with mode: 0644]
templates/registration/profile.html [new file with mode: 0644]
www/js/menu.js

index 161ca0dfb90eaa7e663644b0a5fa71bff972ec5b..c2cdbb574db4ea8474ffbc23ba68a7707fa54546 100644 (file)
@@ -4,6 +4,7 @@ from django.core.exceptions import ObjectDoesNotExist
 from django.template import Context, Template, RequestContext
 from django.template.loader import get_template
 from django.shortcuts import render_to_response
+from django.contrib.auth.decorators import login_required
 
 from django.utils.safestring import mark_safe
 
@@ -26,7 +27,7 @@ import StringIO
 # Util functions
 ################################################
 
-
+@login_required
 def print_zpl(zpl_text):
     """
     Sends zpl_text to printer
@@ -50,7 +51,7 @@ def __center_line(line, width):
 ################################################
 # Container
 ################################################
-
+@login_required
 def container_index(request):
     """
     Returns an index of available to containers
@@ -61,16 +62,17 @@ def container_index(request):
     t = get_template('container_index.html')
     
     return render_to_response('app.html', {
-        'app_name': "HTSW-SampleTracker",
-        'page_name': 'Container Index',
-        'bcmagic': BarcodeMagicForm(),
-        'select': 'container',
-        'body': t.render(c)
-    })
+                                'app_name': "HTSW-SampleTracker",
+                                'page_name': 'Container Index',
+                                'bcmagic': BarcodeMagicForm(),
+                                'select': 'container',
+                                'body': t.render(c)
+                            },
+                              context_instance=RequestContext(request))
     
 
 
-    
+@login_required
 def container_summary(request, container_id):
     """
     Returns details of a container
@@ -81,13 +83,14 @@ def container_summary(request, container_id):
     except ObjectDoesNotExist, e:
         msg = "Container (%s) does not exist." % (container_id)
         return render_to_response('app.html', {
-            'app_name': settings.HTSW_ST_APPNAME,
-            'page_name': 'Container Summary',
-            'media': '',
-            'bcmagic': BarcodeMagicForm(),
-            'select': 'container',
-            'body': msg
-        })
+                                    'app_name': settings.HTSW_ST_APPNAME,
+                                    'page_name': 'Container Summary',
+                                    'media': '',
+                                    'bcmagic': BarcodeMagicForm(),
+                                    'select': 'container',
+                                    'body': msg
+                                },
+                                  context_instance=RequestContext(request))
     
     # Retrieve samples from container
     sample_list = container.sample_set.all()
@@ -104,15 +107,16 @@ def container_summary(request, container_id):
     
     # Render container summary to app html
     return render_to_response('app.html', {
-        'app_name': settings.HTSW_ST_APPNAME,
-        'page_name': 'Container Summary',
-        'media': '',
-        'bcmagic': BarcodeMagicForm(),
-        'select': 'container',
-        'body': tc.render(cc)
-    })
-
-
+                                'app_name': settings.HTSW_ST_APPNAME,
+                                'page_name': 'Container Summary',
+                                'media': '',
+                                'bcmagic': BarcodeMagicForm(),
+                                'select': 'container',
+                                'body': tc.render(cc)
+                            },
+                              context_instance=RequestContext(request))
+
+@login_required
 def container_add(request):
     """
     Form for adding a container.
@@ -143,14 +147,16 @@ def container_add(request):
     t = get_template('generic_form.html')
 
     return render_to_response('app.html', {
-        'app_name': settings.HTSW_ST_APPNAME,
-        'page_name': 'Container Add',
-        'media': form.media,
-        'bcmagic': BarcodeMagicForm(),
-        'select': 'container',
-        'body': t.render(c)
-    })
-    
+                                'app_name': settings.HTSW_ST_APPNAME,
+                                'page_name': 'Container Add',
+                                'media': form.media,
+                                'bcmagic': BarcodeMagicForm(),
+                                'select': 'container',
+                                'body': t.render(c)
+                            },
+                              context_instance=RequestContext(request))
+
+@login_required    
 def container_edit(request, container_id):
     """
     Allow editing of a container
@@ -160,13 +166,14 @@ def container_edit(request, container_id):
     except ObjectDoesNotExist, e:
         msg = "Container (%s) cannot be edited as it does not exist." % (container_id)
         return render_to_response('app.html', {
-            'app_name': settings.HTSW_ST_APPNAME,
-            'page_name': 'Container Edit',
-            'media': '',
-            'bcmagic': BarcodeMagicForm(),
-            'select': 'container',
-            'body': msg
-        })
+                                    'app_name': settings.HTSW_ST_APPNAME,
+                                    'page_name': 'Container Edit',
+                                    'media': '',
+                                    'bcmagic': BarcodeMagicForm(),
+                                    'select': 'container',
+                                    'body': msg
+                                },
+                                  context_instance=RequestContext(request))
     
     # If user submitted the container form.
     if request.method == 'POST':
@@ -191,15 +198,16 @@ def container_edit(request, container_id):
     t = get_template('generic_form.html')
 
     return render_to_response('app.html', {
-        'app_name': settings.HTSW_ST_APPNAME,
-        'page_name': 'Container Edit',
-        'media': form.media,
-        'bcmagic': BarcodeMagicForm(),
-        'select': 'container',
-        'body': t.render(c)
-    })
-
-
+                                'app_name': settings.HTSW_ST_APPNAME,
+                                'page_name': 'Container Edit',
+                                'media': form.media,
+                                'bcmagic': BarcodeMagicForm(),
+                                'select': 'container',
+                                'body': t.render(c)
+                            },
+                              context_instance=RequestContext(request))
+
+@login_required
 def container_print(request, container_id):
     """
     prints a container label
@@ -228,7 +236,7 @@ def container_print(request, container_id):
 ################################################
 # Freezer
 ################################################
-
+@login_required
 def freezer_index(request):
     """
     Returns an index of available freezers
@@ -238,15 +246,16 @@ def freezer_index(request):
     t = get_template('freezer_index.html')
     
     return render_to_response('app.html', {
-        'app_name': "HTSW-SampleTracker",
-        'page_name': 'Freezer Index',
-        'media': '',
-        'bcmagic': BarcodeMagicForm(),
-        'select': 'freezer',
-        'body': t.render(c)
-    })
-    
-    
+                                'app_name': "HTSW-SampleTracker",
+                                'page_name': 'Freezer Index',
+                                'media': '',
+                                'bcmagic': BarcodeMagicForm(),
+                                'select': 'freezer',
+                                'body': t.render(c)
+                            },
+                              context_instance=RequestContext(request))
+    
+@login_required    
 def freezer_summary(request, freezer_id):
     """
     Returns summary of freezer_id
@@ -257,13 +266,14 @@ def freezer_summary(request, freezer_id):
     except ObjectDoesNotExist, e:
         msg = "Freezer (%s) does not exist." % (freezer_id)
         return render_to_response('app.html', {
-                'app_name': settings.HTSW_ST_APPNAME,
-                'page_name': 'Freezer Summary',
-                'media': '',
-                'bcmagic': BarcodeMagicForm(),
-                'select': 'freezer',
-                'body': msg
-                })
+                                    'app_name': settings.HTSW_ST_APPNAME,
+                                    'page_name': 'Freezer Summary',
+                                    'media': '',
+                                    'bcmagic': BarcodeMagicForm(),
+                                    'select': 'freezer',
+                                    'body': msg
+                                    },
+                                  context_instance=RequestContext(request))
     
     # List of contained containers
     container_list = freezer.container_set.all()
@@ -275,15 +285,16 @@ def freezer_summary(request, freezer_id):
     
     # Render Freezer summary to app html
     return render_to_response('app.html', {
-        'app_name': settings.HTSW_ST_APPNAME,
-        'page_name': 'Freezer Summary',
-        'media': '',
-        'bcmagic': BarcodeMagicForm(),
-        'select': 'freezer',
-        'body': tf.render(cf)
-    })
-
-
+                                'app_name': settings.HTSW_ST_APPNAME,
+                                'page_name': 'Freezer Summary',
+                                'media': '',
+                                'bcmagic': BarcodeMagicForm(),
+                                'select': 'freezer',
+                                'body': tf.render(cf)
+                            },
+                              context_instance=RequestContext(request))
+
+@login_required
 def freezer_add(request):
     """
     Allows you to add a new freezer.
@@ -312,15 +323,16 @@ def freezer_add(request):
     t = get_template('generic_form.html')
 
     return render_to_response('app.html', {
-        'app_name': settings.HTSW_ST_APPNAME,
-        'page_name': 'Freezer Add',
-        'media': form.media,
-        'bcmagic': BarcodeMagicForm(),
-        'select': 'freezer',
-        'body': t.render(c)
-    })
-
-
+                                'app_name': settings.HTSW_ST_APPNAME,
+                                'page_name': 'Freezer Add',
+                                'media': form.media,
+                                'bcmagic': BarcodeMagicForm(),
+                                'select': 'freezer',
+                                'body': t.render(c)
+                            },
+                              context_instance=RequestContext(request))
+
+@login_required
 def freezer_edit(request, freezer_id):
     """
     Allow editing of a freezer
@@ -330,13 +342,14 @@ def freezer_edit(request, freezer_id):
     except ObjectDoesNotExist, e:
         msg = "Freezer (%s) cannot be edited as it does not exist." % (freezer_id)
         return render_to_response('app.html', {
-                'app_name': settings.HTSW_ST_APPNAME,
-                'page_name': 'Freezer Summary',
-                'media': '',
-                'bcmagic': BarcodeMagicForm(),
-                'select': 'freezer',
-                'body': msg
-                })
+                                    'app_name': settings.HTSW_ST_APPNAME,
+                                    'page_name': 'Freezer Summary',
+                                    'media': '',
+                                    'bcmagic': BarcodeMagicForm(),
+                                    'select': 'freezer',
+                                    'body': msg
+                                    },
+                                  context_instance=RequestContext(request))
     
     # If user submitted the freezer form.
     if request.method == 'POST':
@@ -359,15 +372,16 @@ def freezer_edit(request, freezer_id):
     t = get_template('generic_form.html')
 
     return render_to_response('app.html', {
-        'app_name': settings.HTSW_ST_APPNAME,
-        'page_name': 'Freezer Edit',
-        'media': form.media,
-        'bcmagic': BarcodeMagicForm(),
-        'select': 'freezer',
-        'body': t.render(c)
-    })
-
-
+                                'app_name': settings.HTSW_ST_APPNAME,
+                                'page_name': 'Freezer Edit',
+                                'media': form.media,
+                                'bcmagic': BarcodeMagicForm(),
+                                'select': 'freezer',
+                                'body': t.render(c)
+                            },
+                              context_instance=RequestContext(request))
+
+@login_required
 def freezer_print(request, freezer_id):
     """
     prints a freezer label
@@ -392,10 +406,11 @@ def freezer_print(request, freezer_id):
     
     return HttpResponse('print command for freezer %s sent.' % (freezer.uuid))
 
+
 ################################################
 # Samples
 ################################################
-
+@login_required
 def sample_index(request):
     """
     return a list of samples and what we can do with them.
@@ -410,15 +425,16 @@ def sample_index(request):
     #            % (sample, sample.sampleid))
         
     return render_to_response('app.html', {
-        'app_name': settings.HTSW_ST_APPNAME,
-        'page_name': 'Samples Index',
-        'media': '',
-        'bcmagic': BarcodeMagicForm(),
-        'select': 'samples',
-        'body': t.render(c)
-    })
-
-
+                                'app_name': settings.HTSW_ST_APPNAME,
+                                'page_name': 'Samples Index',
+                                'media': '',
+                                'bcmagic': BarcodeMagicForm(),
+                                'select': 'samples',
+                                'body': t.render(c)
+                            },
+                              context_instance=RequestContext(request))
+
+@login_required
 def sample_homeless(request):
     """
     Returns an index of homeless samples
@@ -429,14 +445,15 @@ def sample_homeless(request):
     t = get_template('sample_homeless.html')
     
     return render_to_response('app.html', {
-        'app_name': "HTSW-SampleTracker",
-        'page_name': 'Homeless Samples',
-        'bcmagic': BarcodeMagicForm(),
-        'select': 'samples',
-        'body': t.render(c)
-    })
-    
-    
+                                'app_name': "HTSW-SampleTracker",
+                                'page_name': 'Homeless Samples',
+                                'bcmagic': BarcodeMagicForm(),
+                                'select': 'samples',
+                                'body': t.render(c)
+                            },
+                              context_instance=RequestContext(request))
+    
+@login_required    
 def sample_add(request):
     """
     Allow adding of a new sample
@@ -487,15 +504,16 @@ def sample_add(request):
     t = get_template('generic_form.html')
 
     return render_to_response('app.html', {
-        'app_name': settings.HTSW_ST_APPNAME,
-        'page_name': 'Sample Add',
-        'media': form.media,
-        'bcmagic': BarcodeMagicForm(),
-        'select': 'samples',
-        'body': t.render(c)
-    })
-    
-
+                                'app_name': settings.HTSW_ST_APPNAME,
+                                'page_name': 'Sample Add',
+                                'media': form.media,
+                                'bcmagic': BarcodeMagicForm(),
+                                'select': 'samples',
+                                'body': t.render(c)
+                            },
+                              context_instance=RequestContext(request))
+    
+@login_required
 def sample_edit(request, sampleid):
     """
     Allow editing of a sample
@@ -535,15 +553,16 @@ def sample_edit(request, sampleid):
     t = get_template('generic_form.html')
 
     return render_to_response('app.html', {
-        'app_name': settings.HTSW_ST_APPNAME,
-        'page_name': 'Sample Edit',
-        'media': form.media,
-        'bcmagic': BarcodeMagicForm(),
-        'select': 'samples',
-        'body': t.render(c)
-    })
-
-
+                                'app_name': settings.HTSW_ST_APPNAME,
+                                'page_name': 'Sample Edit',
+                                'media': form.media,
+                                'bcmagic': BarcodeMagicForm(),
+                                'select': 'samples',
+                                'body': t.render(c)
+                            },
+                              context_instance=RequestContext(request))
+
+@login_required
 def sample_assign_container(request, sampleid):
     """
     Assigns sample to container using the assign to container algorithm
@@ -555,14 +574,15 @@ def sample_assign_container(request, sampleid):
         assign_to_container(sample)
     except NoSpaceAvaliable, e:
         return render_to_response('app.html', {
-        'app_name': settings.HTSW_ST_APPNAME,
-        'page_name': 'Sample Assign',
-        'media': '',
-        'bcmagic': BarcodeMagicForm(),
-        'select': 'samples',
-        'body': mark_safe("<b>Error:</b> %s<br /><i>You will need to prepare a new container before continuing.</i>" \
-                            % (e))
-        })
+                                    'app_name': settings.HTSW_ST_APPNAME,
+                                    'page_name': 'Sample Assign',
+                                    'media': '',
+                                    'bcmagic': BarcodeMagicForm(),
+                                    'select': 'samples',
+                                    'body': mark_safe("<b>Error:</b> %s<br /><i>You will need to prepare a new container before continuing.</i>" \
+                                                        % (e))
+                                    },
+                                  context_instance=RequestContext(request))
         
     sample.save()
     
@@ -570,15 +590,16 @@ def sample_assign_container(request, sampleid):
            % (sample.get_absolute_url(), str(sample), sample.container.get_absolute_url(), str(sample.container))
     
     return render_to_response('app.html', {
-            'app_name': settings.HTSW_ST_APPNAME,
-            'page_name': 'Sample Assign',
-            'media': '',
-            'bcmagic': BarcodeMagicForm(),
-            'select': 'samples',
-            'body': mark_safe(body),
-            })
-
-
+                                'app_name': settings.HTSW_ST_APPNAME,
+                                'page_name': 'Sample Assign',
+                                'media': '',
+                                'bcmagic': BarcodeMagicForm(),
+                                'select': 'samples',
+                                'body': mark_safe(body),
+                            },
+                            context_instance=RequestContext(request))
+
+@login_required
 def sample_summary(request, sampleid, msg=None):
     """
     Display a summary of a given sample
@@ -588,28 +609,30 @@ def sample_summary(request, sampleid, msg=None):
     except ObjectDoesNotExist, e:
         msg = "Sample (%s) does not exist." % (sampleid)
         return render_to_response('app.html', {
-                    'app_name': settings.HTSW_ST_APPNAME,
-                    'page_name': 'Sample Summary',
-                    'media': '',
-                    'bcmagic': BarcodeMagicForm(),
-                    'select': 'samples',
-                    'body': msg
-                })
+                                    'app_name': settings.HTSW_ST_APPNAME,
+                                    'page_name': 'Sample Summary',
+                                    'media': '',
+                                    'bcmagic': BarcodeMagicForm(),
+                                    'select': 'samples',
+                                    'body': msg
+                                },
+                                  context_instance=RequestContext(request))
     
     c = Context({'sample': sample,
                  'msg': msg,})
     t = get_template('sample_summary.html')
     
     return render_to_response('app.html', {
-        'app_name': settings.HTSW_ST_APPNAME,
-        'page_name': 'Sample Summary',
-        'media': '',
-        'bcmagic': BarcodeMagicForm(),
-        'select': 'samples',
-        'body': t.render(c)
-    })
-
-    
+                                'app_name': settings.HTSW_ST_APPNAME,
+                                'page_name': 'Sample Summary',
+                                'media': '',
+                                'bcmagic': BarcodeMagicForm(),
+                                'select': 'samples',
+                                'body': t.render(c)
+                            },
+                              context_instance=RequestContext(request))
+
+@login_required    
 def sample_print(request, sampleid):
     """
     prints a sample!
@@ -634,20 +657,33 @@ def sample_print(request, sampleid):
     
     return HttpResponse('print command for sample %s sent.' % (sample.sampleid))
 
+def user_profile(request):
+    """
+    Information about the user
+    """
+    return render_to_response('registration/profile.html', {
+                                'app_name': settings.HTSW_ST_APPNAME,
+                                'page_name': 'User Profile',
+                                'media': '',
+                                'bcmagic': BarcodeMagicForm(),
+                                'select': 'settings',
+                            },
+                              context_instance=RequestContext(request))
 
 ################################################
 # Barcode Magic Commands
 ################################################
-
+@login_required
 def cmd_move_sample(request):
     """
     Moves a sample to a target container
     """
     return render_to_response('app.html', {
-        'app_name': settings.HTSW_ST_APPNAME,
-        'page_name': 'CMD: Move Sample',
-        'media': '',
-        'bcmagic': BarcodeMagicForm(),
-        'select': 'samples',
-        'body': ""
-    })
\ No newline at end of file
+                                'app_name': settings.HTSW_ST_APPNAME,
+                                'page_name': 'CMD: Move Sample',
+                                'media': '',
+                                'bcmagic': BarcodeMagicForm(),
+                                'select': 'samples',
+                                'body': ""
+                            },
+                              context_instance=RequestContext(request))
\ No newline at end of file
index 2d3ce279fbf267302e07d7935305eeae2dfad15a..27524e886a585e4c896a071d2c1110070c10f29c 100644 (file)
@@ -12,6 +12,16 @@ urlpatterns = patterns('',
     # Uncomment the admin/doc line below and add 'django.contrib.admindocs' 
     # to INSTALLED_APPS to enable admin documentation:
     # (r'^admin/doc/', include('django.contrib.admindocs.urls')),
+    
+    # Authentication stuff
+    ('^accounts/login/$', 'django.contrib.auth.views.login'),
+    ('^accounts/logout/$', 'django.contrib.auth.views.logout'),
+    ('^accounts/logout_then_login/$', 'django.contrib.auth.views.logout_then_login'),
+    ('^accounts/pwchange/$', 'django.contrib.auth.views.password_change'),
+    ('^accounts/pwchange_done/$', 'django.contrib.auth.views.password_change_done'),
+    # Note view is in samplebc.samples; something doesn't feel right about that, but
+    #   I am not sure where to put it at the moment. -BWK
+    ('^accounts/profile/$', 'samplebc.samples.views.user_profile'),
 
     # Uncomment the next line to enable the admin:
     (r'^admin/(.*)', admin.site.root),
index 711899c97caa6d81a37bd23f209ee8eb14ffc48d..0531fa15304ab706fd3d0fe4f1dfd6530f7d8413 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <html lang="en">
 <head>
-    <title>{{ app_name }} - {{ page_name }}</title>
+    <title>{% block title %}{{ app_name }} - {{ page_name }}{% endblock %}</title>
     <link type="text/css" rel="stylesheet" href="/static/theme/ui.all.css" />
     <link type="text/css" rel="stylesheet" href="/static/css/app.css" />
     <script type="text/javascript" src="/static/js/jquery-1.3.2.js"></script>
             <div>
                 <h3><a href="#">Freezers</a></h3>
                 <div>
-                    <a href="/samples/freezer/">Index</a><br />
-                    <a href="/samples/freezer/add/">Add</a><br />
+                    <a href="{% url samplebc.samples.views.freezer_index %}">Index</a><br />
+                    <a href="{% url samplebc.samples.views.freezer_add %}">Add</a><br />
                 </div>
             </div>
             <div>
                 <h3><a href="#">Containers</a></h3>
                 <div>
-                    <a href="/samples/container/">Index</a><br />
-                    <a href="/samples/container/add/">Add</a><br />
+                    <a href="{% url samplebc.samples.views.container_index %}">Index</a><br />
+                    <a href="{% url samplebc.samples.views.container_add %}">Add</a><br />
                 </div>
             </div>
             <div>
                 <h3><a href="#">Samples</a></h3>
                 <div>
-                    <a href="/samples/sample/">Index</a>
-                    <a href="/samples/sample/homeless/">Homeless</a>
-                    <a href="/samples/sample/add/">Add</a>
+                    <a href="{% url samplebc.samples.views.sample_index %}">Index</a>
+                    <a href="{% url samplebc.samples.views.sample_homeless %}">Homeless</a>
+                    <a href="{% url samplebc.samples.views.sample_add %}">Add</a>
+                </div>
+            </div>
+            <div>
+                <h3><a href="#">Settings</a></h3>
+                <div>
+                    <a href="{% url samplebc.samples.views.user_profile %}">Profile</a>
+                    <a href="{% url django.contrib.auth.views.password_change %}">Change_PW</a>
                 </div>
             </div>
         </div>
+        {% if user.is_authenticated %}
+        Logged in as <b>{{ user.username }}</b>.<br />
+        <a href="{% url django.contrib.auth.views.logout_then_login %}">Logout</a>
+        {% else %}
+        <center>Not logged in</center>
+        {% endif %}
+        <br />
         <br />
         {% include "magic.html" %}
     </div>
     <div id="main" class="main">
+    {% block content %}
         {{ body }}
+    {% endblock %}
     </div>
 </body>
 </html>
diff --git a/templates/registration/login.html b/templates/registration/login.html
new file mode 100644 (file)
index 0000000..cf5bcb2
--- /dev/null
@@ -0,0 +1,29 @@
+{% extends "app.html" %}
+
+{% block title %}
+Login
+{% endblock %}
+
+{% block content %}
+
+{% if form.errors %}
+<p>Your username and password didn't match. Please try again.</p>
+{% endif %}
+
+<form method="post" action="{% url django.contrib.auth.views.login %}">
+<table>
+<tr>
+    <td>{{ form.username.label_tag }}</td>
+    <td>{{ form.username }}</td>
+</tr>
+<tr>
+    <td>{{ form.password.label_tag }}</td>
+    <td>{{ form.password }}</td>
+</tr>
+</table>
+
+<input type="submit" value="login" />
+<input type="hidden" name="next" value="{{ next }}" />
+</form>
+
+{% endblock %}
diff --git a/templates/registration/profile.html b/templates/registration/profile.html
new file mode 100644 (file)
index 0000000..debe017
--- /dev/null
@@ -0,0 +1,9 @@
+{% extends "app.html" %}
+
+{% block content %}
+<table>
+    <tr><td>User Name:</td><td>{{ user.username }}</td></tr>
+    <tr><td>Full Name:</td><td>{{ user.get_full_name }}</td></tr>
+    <tr><td>E-mail:</td><td>{{ user.email }}</td></tr>
+</table>
+{% endblock %}
\ No newline at end of file
index a3a7d2ed12294730fe9c453d3952c7c9cbac20a0..acfc5fd1f2fee2ced4a78675ea9fb01fe5450499 100644 (file)
@@ -3,7 +3,8 @@
 var select_menu = function(item){
     var choices = {'freezer': 0,
         'container': 1,
-        'samples': 2};
+        'samples': 2,
+        'settings': 3};
     $('#accordion').accordion('activate', choices[item]);
 }