Changeset 59 in main


Ignore:
Timestamp:
07/02/10 08:49:06 (11 years ago)
Author:
pcosquer
Message:

models : more doc

Location:
trunk/openPLM/plmapp
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/openPLM/plmapp/controllers.py

    r51 r59  
    720720        """ 
    721721        Links *part* (a :class:`~openPLM.plmapp.models.Part`) with 
    722         :attr:`object`. 
     722        :attr:`~PLMObjectController.object`. 
    723723        """ 
    724724 
     
    732732        """ 
    733733        Delete link between *part* (a :class:`~openPLM.plmapp.models.Part`) and 
    734         :attr:`object`. 
     734        :attr:`~PLMObjectController.object`. 
    735735        """ 
    736736 
     
    746746        """ 
    747747        Returns all :class:`~openPLM.plmapp.models.Part` attached to 
    748         :attr:`object`. 
     748        :attr:`~PLMObjectController.object`. 
    749749        """ 
    750750        return models.DocumentPartLink.objects.filter(document=self.object) 
  • trunk/openPLM/plmapp/models.py

    r58 r59  
    99This module contains openPLM's main models. 
    1010 
    11 There are 3 kinds of models: 
     11There are 4 kinds of models: 
    1212 
    1313    * Lifecycle related models : 
     
    1919            - :func:`get_default_state` 
    2020    * :class:`History` model 
    21     * PLMOBject models: 
     21    * PLMObject models: 
    2222        - :class:`PLMObject` is the base class 
    2323        - :class:`Part` 
    24         - :class:`Document` 
     24        - :class:`Document` and related classes: 
     25            - :class:`DocumentStorage` (see also :obj:`docfs`) 
     26            - :class:`DocumentFile` 
    2527        - functions: 
    2628            - :func:`get_all_plmobjects` 
     
    2830            - :func:`get_all_documents` 
    2931            - :func:`import_models` 
     32    * :class:`Link` models: 
     33        - :class:`RevisionLink` 
     34        - :class:`ParentChildLink` 
     35        - :class:`DocumentPartLink` 
    3036 
    3137 
     
    285291 
    286292class Part(PLMObject): 
     293    """ 
     294    Model for parts 
     295    """ 
    287296 
    288297    @property 
     
    327336# document stuff 
    328337class DocumentStorage(FileSystemStorage): 
    329  
     338    """ 
     339    File system storage which stores files with a specific name 
     340    """ 
    330341    def get_available_name(self, name): 
     342        """ 
     343        Returns a path for a file *name*, the path always refers to a file 
     344        which do not exist. 
     345         
     346        The path is computed as follow: 
     347            #. a root directory: :const:`settings.DOCUMENTS_DIR` 
     348            #. a directory which name is the last extension of *name*. 
     349               For example, it is :file:`gz` if *name* is :file:`a.tar.gz`. 
     350               If *name* does not have an extension, the directory is  
     351               :file:`no_ext/`. 
     352            #. a file name with 4 parts: 
     353                #. the md5 sum of *name* 
     354                #. a dash separator: ``-`` 
     355                #. a random part with 3 characters in ``[a-z0-9]`` 
     356                #. the extension, like :file:`.gz` 
     357             
     358            For example, if :const:`~settings.DOCUMENTS_DIR` is 
     359            :file:`/var/openPLM/docs/`, and *name* is :file:`my_file.tar.gz`, 
     360            a possible output is: 
     361 
     362                :file:`/var/openPLM/docs/gz/c7bfe8d00ea6e7138215ebfafff187af-jj6.gz` 
     363 
     364            If *name* is :file:`my_file`, a possible output is: 
     365 
     366                :file:`/var/openPLM/docs/no_ext/59c211e8fc0f14b21c78c87eafe1ab72-dhh` 
     367        """ 
    331368        
    332369        def rand(): 
     
    343380        path = os.path.join(settings.DOCUMENTS_DIR, ext2, md5_value % rand()) 
    344381        while os.path.exists(path): 
     382 
    345383            path = os.path.join(settings.DOCUMENTS_DIR, ext2, md5_value % rand()) 
    346384        return path 
    347385 
     386#: :class:`DocumentStorage` instance which stores files in :const:`settings.DOCUMENTS_DIR` 
    348387docfs = DocumentStorage(location=settings.DOCUMENTS_DIR) 
    349388 
    350389class DocumentFile(models.Model): 
    351      
     390    """ 
     391    Model which stores informations of a file link to a :class:`Document` 
     392     
     393    :model attributes: 
     394        .. attribute:: filename 
     395             
     396            original filename 
     397        .. attribute:: file 
     398             
     399            file stored in :obj:`docfs` 
     400        .. attribute:: size 
     401             
     402            size of the file in Byte 
     403        .. attribute:: locked 
     404 
     405            True if the file is locked 
     406        .. attribute:: locker 
     407             
     408            :class:`~django.contrib.auth.models.User` who locked the file, 
     409            None, if the file is not locked 
     410        .. attribute document 
     411 
     412            :class:`Document` linked to the file 
     413    """ 
    352414    filename = models.CharField(max_length=200) 
    353415    file = models.FileField(upload_to="docs", storage=docfs) 
    354416    size = models.PositiveIntegerField() 
    355     # locking stuff 
    356417    locked = models.BooleanField(default=lambda: False) 
    357     # null if unlocked 
    358418    locker = models.ForeignKey(User, null=True, blank=True, 
    359419                               related_name="%(class)s_locker", 
    360420                               default=lambda: None) 
    361  
    362421    document = models.ForeignKey('Document', related_name="%(class)s_doc") 
    363422 
    364423class Document(PLMObject): 
    365      
     424    """ 
     425    Model for documents 
     426    """ 
     427 
    366428    @property 
    367429    def files(self): 
     
    447509class Link(models.Model): 
    448510    u""" 
    449     Link base class. 
     511    Abstract link base class. 
    450512 
    451513    This class represents a link between two :class:`PLMObject` 
     514     
     515    :model attributes: 
     516        .. attribute:: ctime 
     517 
     518            date of creation of the link (automatically set) 
     519 
     520    :class attributes: 
     521        .. attribute:: ACTION_NAME 
     522 
     523            an identifier used to set :attr:`History.action` field 
    452524    """ 
    453525 
     
    459531 
    460532class RevisionLink(Link): 
     533    """ 
     534    Link between two revisions of a :class:`PLMObject` 
     535     
     536    :model attributes: 
     537        .. attribute:: old 
     538 
     539            old revision (a :class:`PLMObject`) 
     540        .. attribute:: new 
     541 
     542            new revision (a :class:`PLMObject`) 
     543    """ 
    461544     
    462545    ACTION_NAME = "Link : revision" 
     
    472555 
    473556class ParentChildLink(Link): 
     557    """ 
     558    Link between two :class:`Part`: a parent and a child 
     559     
     560    :model attributes: 
     561        .. attribute:: parent 
     562 
     563            a :class:`Part` 
     564        .. attribute:: child 
     565 
     566            a :class:`Part` 
     567        .. attribute:: quantity 
     568             
     569            amount of child (a positive float) 
     570        .. attribute:: order 
     571             
     572            positive integer 
     573        .. attribute:: end_time 
     574             
     575            date of end of the link, None if the link is still alive 
     576    """ 
    474577 
    475578    ACTION_NAME = "Link : parent-child" 
     
    489592 
    490593class DocumentPartLink(Link): 
     594    """ 
     595    Link between a :class:`Part` and a :class:`Document` 
     596     
     597    :model attributes: 
     598        .. attribute:: part 
     599 
     600            a :class:`Part` 
     601        .. attribute:: document 
     602 
     603            a :class:`Document` 
     604    """ 
    491605 
    492606    ACTION_NAME = "Link : document-part" 
Note: See TracChangeset for help on using the changeset viewer.