seitime-frappe/docs/old/doc.html
2011-06-29 14:41:49 +05:30

284 lines
No EOL
15 KiB
HTML

<!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>doc — Document (ORM) &mdash; Documentation</title>
<link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '',
VERSION: '',
COLLAPSE_MODINDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="top" title="Documentation" href="index.html" />
<link rel="up" title="3. Server Side API" href="server_side_api.html" />
<link rel="next" title="utils — Utilities Module" href="utils_server.html" />
<link rel="prev" title="Database API Functions" href="database_api.html" />
</head>
<body>
<div style="background-color: #FFF; text-align: left; padding: 8px 0px"><img src="_static/banner300910.gif"></div>
<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="modindex.html" title="Global Module Index"
accesskey="M">modules</a> |</li>
<li class="right" >
<a href="utils_server.html" title="utils — Utilities Module"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="database_api.html" title="Database API Functions"
accesskey="P">previous</a> |</li>
<li><a href="index.html">Documentation</a> &raquo;</li>
<li><a href="server_side_api.html" accesskey="U">3. Server Side API</a> &raquo;</li>
</ul>
</div>
<div class="sphinxsidebar">
<div class="sphinxsidebarwrapper">
<h3><a href="index.html">Table Of Contents</a></h3>
<ul>
<li><a class="reference external" href=""><tt class="docutils literal"><span class="pre">doc</span></tt> &#8212; Document (ORM)</a><ul>
<li><a class="reference external" href="#document-object">Document object</a></li>
<li><a class="reference external" href="#standard-methods-for-api">Standard methods for API</a></li>
<li><a class="reference external" href="#naming">Naming</a></li>
<li><a class="reference external" href="#inheritance">Inheritance</a></li>
<li><a class="reference external" href="#example">Example</a></li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="database_api.html"
title="previous chapter">Database API Functions</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="utils_server.html"
title="next chapter"><tt class="docutils literal"><span class="pre">utils</span></tt> &#8212; Utilities Module</a></p>
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="_sources/doc.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" size="18" />
<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="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body">
<div class="section" id="module-doc">
<h1><tt class="xref docutils literal"><span class="pre">doc</span></tt> &#8212; Document (ORM)<a class="headerlink" href="#module-doc" title="Permalink to this headline"></a></h1>
<dl class="function">
<dt>
<tt class="descname">get(dt, dn=''):</tt></dt>
<dd>Returns a doclist containing the main record and all child records</dd></dl>
<div class="section" id="document-object">
<h2>Document object<a class="headerlink" href="#document-object" title="Permalink to this headline"></a></h2>
<dl class="class">
<dt id="doc.Document">
<em class="property">class </em><tt class="descclassname">doc.</tt><tt class="descname">Document</tt><big>(</big><em>doctype = ''</em>, <em>name = ''</em>, <em>fielddata = {}</em><big>)</big><a class="headerlink" href="#doc.Document" title="Permalink to this definition"></a></dt>
<dd><p>The <cite>Document</cite> class represents the basic Object-Relational Mapper (ORM). The object type is defined by
<cite>DocType</cite> and the object ID is represented by <cite>name</cite>:</p>
<div class="highlight-python"><pre>Please note the anamoly in the Web Notes Framework that `ID` is always called as `name`</pre>
</div>
<p>If both <cite>doctype</cite> and <cite>name</cite> are specified in the constructor, then the object is loaded from the database.
If only <cite>doctype</cite> is given, then the object is not loaded
If <cite>fielddata</cite> is specfied, then the object is created from the given dictionary.</p>
<blockquote>
<p><strong>Note 1:</strong></p>
<blockquote>
<p>The getter and setter of the object are overloaded to map to the fields of the object that
are loaded when it is instantiated.</p>
<p>For example: doc.name will be the <cite>name</cite> field and doc.owner will be the <cite>owner</cite> field</p>
</blockquote>
<p><strong>Note 2 - Standard Fields:</strong></p>
<blockquote>
<ul class="simple">
<li><cite>name</cite>: ID / primary key</li>
<li><cite>owner</cite>: creator of the record</li>
<li><cite>creation</cite>: datetime of creation</li>
<li><cite>modified</cite>: datetime of last modification</li>
<li><cite>modified_by</cite> : last updating user</li>
<li><cite>docstatus</cite> : Status 0 - Saved, 1 - Submitted, 2- Cancelled</li>
<li><cite>parent</cite> : if child (table) record, this represents the parent record</li>
<li><cite>parenttype</cite> : type of parent record (if any)</li>
<li><cite>parentfield</cite> : table fieldname of parent record (if any)</li>
<li><cite>idx</cite> : Index (sequence) of the child record</li>
</ul>
</blockquote>
</blockquote>
<dl class="attribute">
<dt id="doc.Document.fields">
<tt class="descname">fields</tt><a class="headerlink" href="#doc.Document.fields" title="Permalink to this definition"></a></dt>
<dd>Dictionary containing the properties of the record. This dictionary is mapped to the getter and setter</dd></dl>
<dl class="method">
<dt id="doc.Document.save">
<tt class="descname">save</tt><big>(</big><em>new=0</em>, <em>check_links=1</em>, <em>ignore_fields=0</em><big>)</big><a class="headerlink" href="#doc.Document.save" title="Permalink to this definition"></a></dt>
<dd><p>Saves the current record in the database. If new = 1, creates a new instance of the record.
Also clears temperory fields starting with <cite>__</cite></p>
<ul class="simple">
<li>if check_links is set, it validates all <cite>Link</cite> fields</li>
<li>if ignore_fields is sets, it does not throw an exception for any field that does not exist in the
database table</li>
</ul>
</dd></dl>
<dl class="method">
<dt id="doc.Document.clear_table">
<tt class="descname">clear_table</tt><big>(</big><em>doclist</em>, <em>tablefield</em>, <em>save=0</em><big>)</big><a class="headerlink" href="#doc.Document.clear_table" title="Permalink to this definition"></a></dt>
<dd>Clears the child records from the given <cite>doclist</cite> for a particular <cite>tablefield</cite></dd></dl>
<dl class="method">
<dt id="doc.Document.addchild">
<tt class="descname">addchild</tt><big>(</big><em>self</em>, <em>fieldname</em>, <em>childtype = ''</em>, <em>local=0</em>, <em>doclist=None</em><big>)</big><a class="headerlink" href="#doc.Document.addchild" title="Permalink to this definition"></a></dt>
<dd><p>Returns a child record of the give <cite>childtype</cite>.</p>
<ul class="simple">
<li>if local is set, it does not save the record</li>
<li>if doclist is passed, it append the record to the doclist</li>
</ul>
</dd></dl>
</dd></dl>
</div>
<div class="section" id="standard-methods-for-api">
<h2>Standard methods for API<a class="headerlink" href="#standard-methods-for-api" title="Permalink to this headline"></a></h2>
<dl class="function">
<dt>
<tt class="descname">addchild(parent, fieldname, childtype = '', local=0, doclist=None):</tt></dt>
<dd><p>Create a child record to the parent doc.</p>
<p>Example:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">c</span> <span class="o">=</span> <span class="n">Document</span><span class="p">(</span><span class="s">&#39;Contact&#39;</span><span class="p">,</span><span class="s">&#39;ABC&#39;</span><span class="p">)</span>
<span class="n">d</span> <span class="o">=</span> <span class="n">addchild</span><span class="p">(</span><span class="n">c</span><span class="p">,</span> <span class="s">&#39;contact_updates&#39;</span><span class="p">,</span> <span class="s">&#39;Contact Update&#39;</span><span class="p">,</span> <span class="n">local</span> <span class="o">=</span> <span class="mi">1</span><span class="p">)</span>
<span class="n">d</span><span class="o">.</span><span class="n">last_updated</span> <span class="o">=</span> <span class="s">&#39;Phone call&#39;</span>
<span class="n">d</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
</pre></div>
</div>
</dd></dl>
<dl class="function">
<dt id="doc.removechild">
<tt class="descclassname">doc.</tt><tt class="descname">removechild</tt><big>(</big><em>d</em>, <em>is_local = 0</em><big>)</big><a class="headerlink" href="#doc.removechild" title="Permalink to this definition"></a></dt>
<dd>Sets the docstatus of the object d to 2 (deleted) and appends an &#8216;old_parent:&#8217; to the parent name</dd></dl>
</div>
<div class="section" id="naming">
<h2>Naming<a class="headerlink" href="#naming" title="Permalink to this headline"></a></h2>
<dl class="function">
<dt id="doc.make_autoname">
<tt class="descclassname">doc.</tt><tt class="descname">make_autoname</tt><big>(</big><em>key</em>, <em>doctype=''</em><big>)</big><a class="headerlink" href="#doc.make_autoname" title="Permalink to this definition"></a></dt>
<dd><p>Creates an autoname from the given key:</p>
<p><strong>Autoname rules:</strong></p>
<blockquote>
<ul>
<li><p class="first">The key is separated by &#8216;.&#8217;</p>
</li>
<li><dl class="first docutils">
<dt>&#8216;####&#8217; represents a series. The string before this part becomes the prefix:</dt>
<dd><p class="first last">Example: ABC.#### creates a series ABC0001, ABC0002 etc</p>
</dd>
</dl>
</li>
<li><p class="first">&#8216;MM&#8217; represents the current month</p>
</li>
<li><p class="first">&#8216;YY&#8217; and &#8216;YYYY&#8217; represent the current year</p>
</li>
</ul>
</blockquote>
<p><em>Example:</em></p>
<blockquote>
<ul class="simple">
<li>DE/./.YY./.MM./.##### will create a series like
DE/09/01/0001 where 09 is the year, 01 is the month and 0001 is the series</li>
</ul>
</blockquote>
</dd></dl>
</div>
<div class="section" id="inheritance">
<h2>Inheritance<a class="headerlink" href="#inheritance" title="Permalink to this headline"></a></h2>
<dl class="class">
<dt>
<tt class="descname">BaseDocType:</tt></dt>
<dd>The framework supports simple inheritance using the BaseDocType class.
It creates the base object and saves it in the property <cite>super</cite>. The getter then tries to retrive the
property from the <cite>super</cite> object if it exsits before retrieving it from the current record.</dd></dl>
</div>
<div class="section" id="example">
<h2>Example<a class="headerlink" href="#example" title="Permalink to this headline"></a></h2>
<p>Open an existing Contact:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">c</span> <span class="o">=</span> <span class="n">Document</span><span class="p">(</span><span class="s">&#39;Contact&#39;</span><span class="p">,</span> <span class="s">&#39;ABC&#39;</span><span class="p">)</span>
<span class="n">c</span><span class="o">.</span><span class="n">phone_number</span> <span class="o">=</span> <span class="s">&#39;233-3432&#39;</span>
<span class="n">c</span><span class="o">.</span><span class="n">save</span><span class="p">()</span>
</pre></div>
</div>
<p>Create a new Contact:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">c</span> <span class="o">=</span> <span class="n">Document</span><span class="p">(</span><span class="s">&#39;Contact&#39;</span><span class="p">)</span>
<span class="n">c</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="s">&#39;XYZ&#39;</span>
<span class="n">c</span><span class="o">.</span><span class="n">phone_number</span> <span class="o">=</span> <span class="s">&#39;342-3423&#39;</span>
<span class="n">c</span><span class="o">.</span><span class="n">email_id</span> <span class="o">=</span> <span class="s">&#39;xyz@foo.com&#39;</span>
<span class="n">c</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">new</span> <span class="o">=</span> <span class="mi">1</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</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="modindex.html" title="Global Module Index"
>modules</a> |</li>
<li class="right" >
<a href="utils_server.html" title="utils — Utilities Module"
>next</a> |</li>
<li class="right" >
<a href="database_api.html" title="Database API Functions"
>previous</a> |</li>
<li><a href="index.html">Documentation</a> &raquo;</li>
<li><a href="server_side_api.html" >3. Server Side API</a> &raquo;</li>
</ul>
</div>
<div class="footer">
&copy; Copyright 2010, Rushabh Mehta.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.3.
</div>
</body>
</html>