Ignore:
Timestamp:
01/18/12 11:59:51 (9 years ago)
Author:
pcosquer
Message:

3D branch: merge changes from trunk (rev [661])

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/3D/openPLM/plmapp/controllers/part.py

    r595 r662  
    3131 
    3232import openPLM.plmapp.models as models 
     33from openPLM.plmapp.units import DEFAULT_UNIT 
    3334from openPLM.plmapp.controllers.plmobject import PLMObjectController 
    3435from openPLM.plmapp.controllers.base import get_controller 
     
    5455         
    5556        :raises: :exc:`ValueError` if *child* is already a child or a parent. 
    56         :raises: :exc:`ValueError` if *quantity* or *order* are negative. 
    5757        :raises: :exc:`.PermissionError` if :attr:`_user` is not the owner of 
    5858            :attr:`object`.     
     
    8888        return can_add 
    8989 
    90     def add_child(self, child, quantity, order): 
     90    def add_child(self, child, quantity, order, unit=DEFAULT_UNIT): 
    9191        """ 
    9292        Adds *child* to *self*. 
     
    9898        :param order: order 
    9999        :type order: positive int 
     100        :param unit: a valid unit 
    100101         
    101102        :raises: :exc:`ValueError` if *child* is already a child or a parent. 
     
    120121        link.quantity = quantity 
    121122        link.order = order 
     123        link.unit = unit 
    122124        link.save() 
    123125        # records creation in history 
     
    147149        self._save_histo("Delete - %s" % link.ACTION_NAME, "child : %s" % child) 
    148150 
    149     def modify_child(self, child, new_quantity, new_order): 
     151    def modify_child(self, child, new_quantity, new_order, new_unit): 
    150152        """ 
    151153        Modifies information about *child*. 
     
    171173        link = models.ParentChildLink.objects.get(parent=self.object, 
    172174                                                  child=child, end_time=None) 
    173         if link.quantity == new_quantity and link.order == new_order: 
     175        if (link.quantity == new_quantity and link.order == new_order and 
     176            link.unit == new_unit): 
    174177            # do not make an update if it is useless 
    175178            return 
     
    178181        # make a new link 
    179182        link2 = models.ParentChildLink(parent=self.object, child=child, 
    180                                        quantity=new_quantity, order=new_order) 
     183                                       quantity=new_quantity, order=new_order, 
     184                                       unit=new_unit) 
    181185        details = "" 
    182186        if link.quantity != new_quantity: 
     
    184188        if link.order != new_order: 
    185189            details += "order changes from %d to %d" % (link.order, new_order) 
     190        if link.unit != new_unit: 
     191            details += "unit changes from %s to %s" % (link.unit, new_unit) 
    186192        self._save_histo("Modify - %s" % link.ACTION_NAME, details) 
    187193        link2.save(force_insert=True) 
     
    254260                    quantity = form.cleaned_data["quantity"] 
    255261                    order = form.cleaned_data["order"] 
    256                     self.modify_child(child, quantity, order) 
     262                    unit = form.cleaned_data["unit"] 
     263                    self.modify_child(child, quantity, order, unit) 
    257264 
    258265    def revise(self, new_revision): 
     
    260267        new_controller = super(PartController, self).revise(new_revision) 
    261268        for level, link in self.get_children(1): 
    262             new_controller.add_child(link.child, link.quantity, link.order) 
     269            new_controller.add_child(link.child, link.quantity, link.order, 
     270                    link.unit) 
    263271        return new_controller 
    264272 
     
    322330        else: 
    323331            get_controller(document.type)(document, self._user).check_readable() 
    324             type(self)(document, self._user).check_readable() 
    325332        if self.is_document_attached(document): 
    326333            raise ValueError("Document is already attached.") 
Note: See TracChangeset for help on using the changeset viewer.