Commit 56ed40c0 authored by Rafael Ostertag's avatar Rafael Ostertag
Browse files

Merge remote-tracking branch 'origin/master' into raos_work

parents df62e701 c0a0ad30
/extension/Documentation/_make/build
/extension/Documentation/_make/_not_versioned
/qfq.ini
/doc/phpdoc
/.idea
......
......@@ -15,12 +15,13 @@ The QFQ extension is activated through tt-content records. One or more tt-conten
*forms*, *reports* (exports) or to perform *delete* and *save* commands submitted by a QFQ form.
Features not implemented now
Features not implemented yet
----------------------------
* Multi Forms
* File upload
* FormElement:
* type=action (especially not *addNupdate*)
* field dependencies (activating a parent element, activates child elements and vice versa)
* Checkbox: some combinations not tested.
......@@ -28,7 +29,7 @@ Features not implemented now
QFQ content element
-------------------
QFQ are used by configuring Typo3 content elements. Insert one or more QFQ content element on a Typo3 page.
QFQ is used by configuring Typo3 content elements. Insert one or more QFQ content elements on a Typo3 page.
Specify column and language per content record as wished.
The title of the QFQ content element will not be rendered. It's only visible in the backend for orientation.
......@@ -79,19 +80,19 @@ Debug
* config.ini: *SHOW_DEBUG_INFO = yes|no|auto*
* 'yes':
* 'yes':
* Show tooltips in forms filled with decoded SIP.
* Shows 'Edit form' button in every form.
* Show tooltips in forms filled with decoded SIP.
* Shows 'Edit form' button in every form.
* 'no': No debug info rendered in the output.
* 'no': No debug info rendered in the output.
* 'auto':
* 'auto':
* checks if there is a Typo3 BE Session.
* checks if there is a Typo3 BE Session.
* yes: *SHOW_DEBUG_INFO = 'yes'*
* no: *SHOW_DEBUG_INFO = 'no'*
* yes: *SHOW_DEBUG_INFO = 'yes'*
* no: *SHOW_DEBUG_INFO = 'no'*
Form
----
......@@ -101,24 +102,25 @@ Form
* A form is assigned to a *table*. Such a table is called the *primary table* for this form.
* There are three types of forms:
* *Simple* form: the form acts on one record, stored in one table.
* *Simple* form: the form acts on one record, stored in one table.
* The form will create necessary SQL commands for insert, update and delete automatically.
* The form will create necessary SQL commands for insert, update and delete automatically.
* *Advanced* form: the form acts on one record, stored in more than one table.
* *Advanced* form: the form acts on one record, stored in more than one table.
* Fields of the primary table acts like a *simple* form, all other fields have to be specified with *addNupdate* records.
* Fields of the primary table acts like a *simple* form, all other fields have to be specified with *addNupdate* records.
* *Multi* form: the form acts simultanously on more than one record. All records use the same *FormElements*.
* *Multi* form: the form acts simultanously on more than one record. All records use the same *FormElements*.
* The *FormElements* are defined as a regular *simple* / or *advanced* form, plus a SQL Query, which selects and
iterates over all records. Those records will be loaded at the same time.
* The *FormElements* are defined as a regular *simple* / or *advanced* form, plus a SQL Query, which selects and
iterates over all records. Those records will be loaded at the same time.
Variable (incl. mixed SQL Statement)
------------------------------------
Most fields of a form specification might contain:
* ''constants'' (=strings), this is the standard use case.
* ''variables'' retrieved from the stores (see below),
* ''SQL statements'' (limited set of),
......@@ -138,14 +140,14 @@ Most fields of a form specification might contain:
*{{SELECT name FROM person WHERE id={{key1:C:ALNUMX}} }}*
* Leading and tailing spaces inside curly braces are removed.
* Leading and trailing spaces inside curly braces are removed.
* *{{ SELECT "Hello World" }}* acts as *{{SELECT "Hello World"}}*
* *{{ varname }}* acts as *{{varname}}*
* There are several stores, from where to retrieve the value. If a value is not found in one store, take the next store,
until a value has been found.
* If there is an empty string found, this '''is''' a value: value found will stop further search.
* There are several stores, from where to retrieve the value. If a value is not found in one store, the next store is searched, and so on,
until a value is found.
* If anywhere along the line an empty string is found, this **is** a value: therefore, the search will stop.
* If no value is found, the value is an <empty string>.
URL Parameter
......@@ -171,34 +173,34 @@ Sanitize class
Store / prio
------------
Only variables, which are known in a specified store, can be substituted.
+-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------+
|Name |Description | Content |
+=====+========================================================================================+======================================================================+
| F | Form: data still not saved in database. | All native form elements. Recent values from the Browser. |
+-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------+
| S | SIP: Client parameter 's' will indicate the current SIP, which will be loaded from the | sip, r (record_id), form |
| | SESSION repo to the SIP-Store. | |
+-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------+
| R | Record - the one who will be edited. For new records: empty. | All columns of the current record from the current table |
+-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------+
| P | Parent record. E.g.: on multi forms the current record of the outer query | All columns of the MultiSQL Statement from the for the current row |
+-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------+
| D | The *table.column* specified *default value*. | |
+-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------+
| M | The *table.column* specified *type* | |
+-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------+
| C | Client: POST variable, if not found: GET variable | Parameter send from the Client (=Browser). |
+-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------+
| T | Typo3: a) Bodytext (ttcontent record), b) Typo3 internal varibles like fe_user_uid, ...| See Typo3 tt_content record configuration |
+-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------+
| 0 | Value: 0, might helpfull if variable is empty but used in an SQL statement, which | All possible keys |
| | might produce a SQL error otherwise if substituted with an empty string | |
+-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------+
| Y | System: a) Database credentials, b) helper vars for logging/debugging: | |
| | SYSTEM_SQL_RAW ... SYSTEM_FORM_ELEMENT_COLUMN | |
+-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------+
Only variables that are known in a specified store can be substituted.
+-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
|Name |Description | Content |
+=====+========================================================================================+============================================================================+
| F | Form: data not saved in database yet. | All native form elements. Recent values from the Browser. |
+-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
| S | SIP: Client parameter 's' will indicate the current SIP, which will be loaded from the | sip, r (record_id), form |
| | SESSION repo to the SIP-Store. | |
+-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
| R | Record - the record that is going to be edited. For new records: empty. | All columns of the current record from the current table |
+-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
| P | Parent record. E.g.: on multi forms the current record of the outer query | All columns of the MultiSQL Statement from the table for the current row |
+-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
| D | The *table.column* specified *default value*. | |
+-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
| M | The *table.column* specified *type* | |
+-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
| C | Client: POST variable, if not found: GET variable | Parameter sent from the Client (=Browser). |
+-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
| T | Typo3: a) Bodytext (ttcontent record), b) Typo3 internal varibles like fe_user_uid, ...| See Typo3 tt_content record configuration |
+-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
| 0 | Value: 0, might be helpful if variable is empty but used in an SQL statement, which | All possible keys |
| | might produce a SQL error otherwise if substituted with an empty string | |
+-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
| Y | System: a) Database credentials, b) helper vars for logging/debugging: | |
| | SYSTEM_SQL_RAW ... SYSTEM_FORM_ELEMENT_COLUMN | |
+-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+
* Default *<prio>*: *FSRD* - Form / SIP / Record / Table definition.
* Hint: Preferable, parameter should be submitted by SIP, not by Client (=URL).
......
# this is file .gitignore
# ignore everything in this directory
*
# but do not ignore this this file
!.gitignore
\ No newline at end of file
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:145: SEVERE: Title level inconsistent:
Store: `CLIENT` - C
^^^^^^^^^^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:180: SEVERE: Title level inconsistent:
Store: `TYPO3` (Bodytext) - T
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:187: WARNING: Inline interpreted text or phrase reference start-string without end-string.
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:203: SEVERE: Title level inconsistent:
Store: `FORM` - F
^^^^^^^^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:217: SEVERE: Title level inconsistent:
Store: `RECORD` - R
^^^^^^^^^^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:225: SEVERE: Title level inconsistent:
SQL detection
~~~~~~~~~~~~~
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:356: SEVERE: Title level inconsistent:
Type: fieldset
^^^^^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:363: SEVERE: Title level inconsistent:
Type: pill
^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:540: SEVERE: Title level inconsistent:
Class: native
^^^^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:545: SEVERE: Title level inconsistent:
Type: checkbox
^^^^^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:581: SEVERE: Title level inconsistent:
Type: date
^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:584: SEVERE: Title level inconsistent:
Type: datetime
^^^^^^^^^^^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:587: SEVERE: Title level inconsistent:
Type: hidden
^^^^^^^^^^^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:590: SEVERE: Title level inconsistent:
Type: input
^^^^^^^^^^^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:598: SEVERE: Title level inconsistent:
Type: note
^^^^^^^^^^^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:601: SEVERE: Title level inconsistent:
Type: radio
^^^^^^^^^^^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:624: SEVERE: Title level inconsistent:
Type: select
^^^^^^^^^^^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:653: SEVERE: Title level inconsistent:
Type: subrecord
^^^^^^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:683: SEVERE: Title level inconsistent:
Type: string
^^^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:686: SEVERE: Title level inconsistent:
Type: submit
^^^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:691: SEVERE: Title level inconsistent:
Type: time
^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:694: SEVERE: Title level inconsistent:
Type: upload
^^^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:703: SEVERE: Title level inconsistent:
Type: before load
^^^^^^^^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:710: SEVERE: Title level inconsistent:
Type: after load
^^^^^^^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:717: SEVERE: Title level inconsistent:
Type: before save
^^^^^^^^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:724: SEVERE: Title level inconsistent:
Type: after save
^^^^^^^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:731: SEVERE: Title level inconsistent:
Type: before /after insert
^^^^^^^^^^^^^^^^^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:737: SEVERE: Title level inconsistent:
Type: before /after update
^^^^^^^^^^^^^^^^^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:743: SEVERE: Title level inconsistent:
Type: before / after delete
^^^^^^^^^^^^^^^^^^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:749: SEVERE: Title level inconsistent:
Type: addnupdate
^^^^^^^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:754: SEVERE: Title level inconsistent:
Type: sendmail
^^^^^^^^^^^^^^
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:771: SEVERE: Title level inconsistent:
A simple example
````````````````
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:994: SEVERE: Title level inconsistent:
Overview of reserved column names
`````````````````````````````````
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:1036: SEVERE: Title level inconsistent:
Column: link
````````````
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:1129: SEVERE: Title level inconsistent:
Link Examples
'''''''''''''
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:1173: SEVERE: Title level inconsistent:
Columns: pageX or PageX
```````````````````````
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:1256: SEVERE: Title level inconsistent:
Column: vertical
````````````````
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:1311: SEVERE: Title level inconsistent:
Column: mailto
``````````````
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:1360: SEVERE: Title level inconsistent:
Column: sendmail
````````````````
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:1415: SEVERE: Title level inconsistent:
Column: advancedmail
````````````````````
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:1453: SEVERE: Title level inconsistent:
Column: img
```````````
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:1513: SEVERE: Title level inconsistent:
Column: exec
````````````
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:1548: SEVERE: Title level inconsistent:
Column: F
`````````
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:1551: SEVERE: Title level inconsistent:
Challenge 1
'''''''''''
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:1617: SEVERE: Title level inconsistent:
Challenge 2
'''''''''''
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:1635: SEVERE: Title level inconsistent:
Solution
''''''''
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:1720: SEVERE: Title level inconsistent:
Include a form directly
```````````````````````
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:1736: SEVERE: Title level inconsistent:
Include a form via link/url
```````````````````````````
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:1759: SEVERE: Title level inconsistent:
Basic Queries
`````````````
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:1831: SEVERE: Title level inconsistent:
Accessing the database
``````````````````````
/home/a/crose/PhpstormProjects/qfq/extension/Documentation/UsersManual/Index.rst:1880: SEVERE: Title level inconsistent:
Formating Examples
``````````````````
WARNING: html_static_path entry u'/home/a/crose/PhpstormProjects/qfq/extension/Documentation/_make/../_static' does not exist
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config:
tags:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Administrator Manual &mdash; QFQ Extension 0.1.0 documentation</title>
<link rel="stylesheet" href="../_static/default.css" type="text/css"/>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css"/>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.1.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<link rel="top" title="QFQ Extension 0.1.0 documentation" href="../index.html"/>
<link rel="next" title="Links" href="../Links.html"/>
<link rel="prev" title="Users manual" href="../UsersManual/Index.html"/>
</head>
<body>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right">
<a href="../Links.html" title="Links"
accesskey="N">next</a> |
</li>
<li class="right">
<a href="../UsersManual/Index.html" title="Users manual"
accesskey="P">previous</a> |
</li>
<li><a href="../Index.html">QFQ Extension 0.1.0 documentation</a> &raquo;</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body">
<div class="section" id="administrator-manual">
<span id="admin-manual"></span>
<h1>Administrator Manual<a class="headerlink" href="#administrator-manual"
title="Permalink to this headline"></a></h1>
<p>Describes how to manage the extension from an administrator’s point of
view. That relates to Page/User TSconfig, permissions, configuration
etc., which administrator level users have access to.</p>
<p>Language should be non/semi-technical, explaining, using small
examples.</p>
<p>Target group: <strong>Administrators</strong></p>
<div class="section" id="installation">
<h2>Installation<a class="headerlink" href="#installation"
title="Permalink to this headline"></a></h2>
<p>How should the extension be set up? E.g. is there a static template to include?</p>
<div class="figure">
<img alt="AdministratorManual/../Images/AdministratorManual/ExtensionManager.png:width:500px:alt:ExtensionManager"
src="AdministratorManual/../Images/AdministratorManual/ExtensionManager.png:width:500px:alt:ExtensionManager"/>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar">
<div class="sphinxsidebarwrapper">
<h3><a href="../Index.html">Table Of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">Administrator Manual</a>
<ul>
<li><a class="reference internal" href="#installation">Installation</a></li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="../UsersManual/Index.html"
title="previous chapter">Users manual</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="../Links.html"
title="next chapter">Links</a></p>
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/AdministratorManual/Index.txt"
rel="nofollow">Show Source</a></li>
</ul>
<div id="searchbox" style="display: none">
<h3>Quick search</h3>
<form class="search" action="../search.html" method="get">
<input type="text" name="q"/>
<input type="submit" value="Go"/>
<input type="hidden" name="check_keywords" value="yes"/>
<input type="hidden" name="area" value="default"/>
</form>
<p class="searchtip" style="font-size: 90%">
Enter search terms or a module, class or function name.
</p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right">
<a href="../Links.html" title="Links"
>next</a> |
</li>
<li class="right">
<a href="../UsersManual/Index.html" title="Users manual"
>previous</a> |
</li>
<li><a href="../Index.html">QFQ Extension 0.1.0 documentation</a> &raquo;</li>
</ul>
</div>
<div class="footer">
&copy; Copyright 2016, Carsten Rose.
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
</div>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>QFQ Extension &mdash; QFQ Extension 0.1.0 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css"/>
<link rel="stylesheet" href="_static/pygments.css" type="text/css"/>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '0.1.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="top" title="QFQ Extension 0.1.0 documentation" href="index.html"/>
<link rel="next" title="What does it do?" href="Introduction/Index.html"/>
</head>
<body>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right">
<a href="Introduction/Index.html" title="What does it do?"
accesskey="N">next</a> |
</li>
<li><a href="#">QFQ Extension 0.1.0 documentation</a> &raquo;</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body">