Changeset 613 in main for branches


Ignore:
Timestamp:
01/10/12 08:37:02 (9 years ago)
Author:
agalech
Message:
 
Location:
branches/3D
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • branches/3D/docs/devel/index.rst

    r595 r613  
    2424    http-api 
    2525    modules 
     26    applications 
     27 
  • branches/3D/openPLM/document3D/aficher.py

    r602 r613  
    2222    my_shapes_arbre = my_step_importer.get_shapes_arbre() 
    2323    my_shapes_simples = my_step_importer.get_shapes_simples() 
    24     color_tool=my_step_importer.get_color_tool() 
    2524    init_time = time.time() 
    2625     
    27     ColorLabels = TDF_LabelSequence() 
    28     color_tool.GetColors(ColorLabels) 
    29     print 'Number of colors fuera sigue siendo=%i'%ColorLabels.Length() 
    30      
    31     for i in range(len(my_shapes_simples)): 
     26 
     27     
     28    for i, shape in enumerate(my_shapes_simples): 
    3229            new_stp_jss= stp_to_jss() 
    3330            new_stp_jss.stp = doc_file 
    34             new_stp_jss.save() 
    35             print "processing mesh " ,my_shapes_simples[i].nom ,   " " , i+1 , "/" ,len(my_shapes_simples) 
    36             my_mesh = mesh_shape(my_shapes_simples[i].shape,color_tool) 
     31            # new_stp_jss.save() 
     32            print "processing mesh " ,shape.nom ,   " " , i+1 , "/" ,len(my_shapes_simples) 
     33            my_mesh = mesh_shape(shape.shape) 
    3734  
    3835            name = new_stp_jss.js.storage.get_available_name(fileName+".js") 
     
    4037             
    4138            if(not mesh_to_3js(my_mesh,path.encode(),"_"+str(i))): 
    42                 new_stp_jss.delete() 
    43                 print "Error generating fichier .JS for shape : " ,my_shapes_simples[i].nom  
     39                #pour statistique 
     40                #triangles=my_mesh. 
     41                # new_stp_jss.delete() 
     42                print "Error generating fichier .JS for shape : " ,shape.nom  
    4443                return False     
    4544                #exception 
     
    5655 
    5756    root=[] 
    58     part_numeration=[] 
    59     part_numeration.append(0) 
    60     objects_numeration=[] 
    61     objects_numeration.append(0) 
    62     menu_generate_objects=[] 
    63     menu_generate_objects.append("var object3D = new THREE.Object3D();\n") 
     57    part_numeration=[0] 
     58    objects_numeration=[0] 
     59    menu_generate_objects=["var object3D = new THREE.Object3D();\n"] 
    6460    for i in range(len(my_shapes_arbre)): 
    6561        loc=[] 
     
    7268     
    7369 
    74     new_stp_to_jss_navigabilite= stp_to_jss_navigabilite() 
    75     new_stp_to_jss_navigabilite.stp = doc_file 
    76     name = new_stp_to_jss_navigabilite.js.storage.get_available_name(fileName+".js") 
    77     path = os.path.join(new_stp_to_jss_navigabilite.js.storage.location, name) 
    78     new_stp_to_jss_navigabilite.js = name 
    79     new_stp_to_jss_navigabilite.save() 
     70    new_stp_to_jss_arborescense= stp_to_jss_arborescense() 
     71    new_stp_to_jss_arborescense.stp = doc_file 
     72    name = new_stp_to_jss_arborescense.js.storage.get_available_name(fileName+".js") 
     73    path = os.path.join(new_stp_to_jss_arborescense.js.storage.location, name) 
     74    new_stp_to_jss_arborescense.js = name 
     75    new_stp_to_jss_arborescense.save() 
    8076     
    8177    if ok: 
     
    8985             
    9086             
    91             ######          Generate Menu javascript         
     87            ######          Generate Menu javascript and objects         
    9288            output.write("function menu() {\nelement = document.createElement(\"div\");\nelement.id=\"root\";\nelement.innerHTML =\"")         
    9389            generate_menu(graph,root,output)   
     
    9793             
    9894            #####           Generate objects javascript 
    99             ###generate_objects(graph,root,output) 
    10095            output.write(menu_generate_objects[0]) 
    10196            #####           End generate objects 
     
    118113     
    119114  
    120                     
    121  
    122              
     115function_change_part_head = """ 
     116function change_part%(part_id)s(atribute) { 
     117    if (atribute==\"click\"){ 
     118     
     119        part%(part_id)s.visible=!part%(part_id)s.visible; 
     120         
     121    } 
     122    else{ 
     123        part%(part_id)s.visible=atribute; 
     124    } 
     125         
     126"""  
     127function_change_part = """ 
     128    change_part%(part_id_2)s(part%(part_id)s.visible)        
     129""" 
     130function_change_object = """ 
     131    object%(object_id)s.visible=part%(part_id)s.visible;    
     132"""                                     
     133           
    123134def generate_functions(graph,root,output,nom=''): 
    124135 
     
    134145            part_name, part_id = os.path.splitext(root[i]) 
    135146            part_id=part_id.replace(".","") 
    136             output.write("function change_part%s(atribute) { \n"%part_id) 
    137             output.write("if (atribute==\"click\"){\n") 
    138             output.write("part%s.visible=!part%s.visible;\n"%(part_id,part_id)) 
    139             output.write("}\n") 
    140             output.write("else{\n") 
    141             output.write("part%s.visible=atribute;\n"%part_id) 
    142             output.write("}\n")   
     147            output.write(function_change_part_head % (locals()))  
     148 
    143149            for t in range(len(feuille)): 
    144150                feuille_2=graph.neighbors(feuille[t]) 
    145151                 
    146                 if not len(feuille_2)==0: 
     152                if feuille_2: 
    147153                    part_name, part_id_2 = os.path.splitext(feuille[t]) 
    148154                    part_id_2=part_id_2.replace(".","") 
    149                     output.write("change_part%s(part%s.visible);\n"%(part_id_2,part_id))     
     155                    output.write(function_change_part % (locals()))     
    150156                else: 
    151                     if str(feuille[t]).count(".") == 0:  # para evitar generar objetos de instances arbresnom que no tienen hijos se puede dar el caso de shape sin informacion que no van a generar hijos 
    152                         output.write("object%s.visible=part%s.visible;\n"%(feuille[t],part_id))  
     157                    if "." not in str(feuille[t]):  # para evitar generar objetos de instances arbresnom que no tienen hijos se puede dar el caso de shape sin informacion que no van a generar hijos 
     158                        object_id=feuille[t] 
     159                        output.write(function_change_object % (locals()))  
    153160       
    154161  
     
    159166 
    160167 
    161  
    162      
     168  
     169function_generate_menu= """ 
     170    
     171<li > <a href='#' onClick='change_part%(part_id)s(\\"click\\")'><b onClick='change_part%(part_id)s(\"click\")'></b>%(part_name)s </a>    
     172    
     173"""  
    163174def generate_menu(graph,root,output,nom=''): 
    164175 
     
    176187            part_name, part_extension = os.path.splitext(root[i]) 
    177188            part_id=part_extension.replace(".","") 
     189            output.write(function_generate_menu % (locals()))  
     190            """ 
    178191            functio_onclick="change_part"+part_id+"(\\\"click\\\")" 
    179             output.write("<li > <a href='#' onClick='%s'><b onClick='%s'></b>%s </a>"%(functio_onclick,functio_onclick,part_name))            
     192            output.write("<li > <a href='#' onClick='%s'><b onClick='%s'></b>%s </a>"%(functio_onclick,functio_onclick,part_name)) 
     193            """            
    180194            generate_menu(graph,'',output,root[i])        
    181195            output.write("</li>") 
     
    185199 
    186200  
    187    
     201function_generate_objects= """ 
     202 
     203var NewMaterial=new THREE.MeshBasicMaterial({opacity:0.2,shading:THREE.SmoothShading}); 
     204NewMaterial.color.setRGB(%(red)f,%(green)f,%(blue)f); 
     205var object%(numeration)s=new THREE.Mesh( new _%(reference)s(),NewMaterial ); 
     206object3D.add(object%(numeration)s);         
     207"""    
    188208#el grafo para las partes tiene el nombre .id correlativa, para las hojas es directamente un ID             
    189209def parcours_recursif(my_shapes_arbre,graph,part_numeration,menu_generate_objects,objects_numeration,loc,old_name,root=False): 
     
    211231    else: #is instance of feuille_nom_shapes 
    212232    #var mesh = new THREE.Mesh( geometry, new THREE.MeshBasicMaterial( { color: 0xffffff } )  ); 
    213         menu_generate_objects[0]+="var NewMaterial=new THREE.MeshBasicMaterial({opacity:1.0,shading:THREE.SmoothShading});\n" 
    214         menu_generate_objects[0]+="NewMaterial.color.setRGB(%f,%f,%f);\n"%(my_shapes_arbre.red,my_shapes_arbre.green,my_shapes_arbre.blue) 
    215         menu_generate_objects[0]+="var object%s=new THREE.Mesh( new _%s(),NewMaterial );\n"%(objects_numeration[0],my_shapes_arbre.reference) 
    216         #menu_generate_objects[0]+="var object%s=new THREE.Mesh( new _%s(), new THREE.MeshBasicMaterial( { color: 0xffffff , opacity:0.2,shading:THREE.SmoothShading} ) );\n"%(objects_numeration[0],my_shapes_arbre.reference) 
    217         #menu_generate_objects[0]+="object%s.materials.color.setRGB( 1 , 0, 0 );\n"%objects_numeration[0] 
    218         #menu_generate_objects[0]+="var object%s=new THREE.Mesh( new _%s(), new THREE.MeshBasicMaterial({opacity:0.5}) );\n"%(objects_numeration[0],my_shapes_arbre.reference) 
    219         menu_generate_objects[0]+="object3D.add(object%s);\n"%objects_numeration[0] 
     233        numeration=objects_numeration[0] 
     234        red=my_shapes_arbre.red 
     235        green=my_shapes_arbre.green 
     236        blue=my_shapes_arbre.blue 
     237        reference=my_shapes_arbre.reference 
     238        menu_generate_objects[0]+=str(function_generate_objects % (locals())) 
     239 
    220240            #hacer las translaciones 
    221241        if isinstance(my_shapes_arbre.loc,TopLoc_Location):      
     
    249269 
    250270     
    251 def mesh_shape(shape,color_tool): 
     271def mesh_shape(shape): 
    252272    """ Take a topods_shape instance, returns the tesselated object""" 
    253273    ''' Connect a ode.Trimesh to this body. The mesh is generated from the MSH subpackage. vertices lits 
     
    263283    a_mesh.set_shape(shape) 
    264284    a_mesh.set_precision(a_mesh.get_precision()/quality_factor) 
    265     a_mesh.compute(color_tool) 
     285    a_mesh.compute() 
    266286    return a_mesh        
    267287 
     
    325345        return False 
    326346         
    327          
    328  
    329      
    330  
    331      
    332  
    333      
    334      
    335      
    336      
     347 
     348 
     349     
     350 
     351     
     352 
     353     
     354 
     355     
     356     
     357     
     358     
  • branches/3D/openPLM/document3D/forms.py

    r597 r613  
    11from django import forms 
    22from openPLM.document3D.models import * 
     3from django.db.models import Q 
    34 
    45class Form3D(forms.ModelForm): 
     
    2122        super(Form3D, self).__init__(*args, **kwargs) 
    2223         
    23         queryset = document3D.files.filter(filename__endswith=".stp") 
    24  
     24        #queryset = document3D.files.filter(filename__endswith=".stp") 
     25        queryset = document3D.files.filter(Q(filename__endswith=".stp") | Q(filename__endswith=".step") | Q(filename__endswith=".STP") | Q(filename__endswith=".STEP")) 
    2526        #a= stp_to_jss.objects.filter(stp__in=queryset) 
    26         a =document3D.files.filter(filename__endswith=".stp") 
     27        #a =document3D.files.filter(filename__endswith=".stp") 
    2728 
    2829        #self.fields["Display"].queryset = a 
    29         self.fields["Display"].queryset= document3D.files.filter(filename__endswith=".stp") 
     30        self.fields["Display"].queryset= queryset 
    3031        #self.fields["Display"].label_from_instance = lambda obj: "%s " % (obj.stp.filename) 
    3132        self.fields["Display"].label_from_instance = lambda obj: "%s " % (obj.filename) 
    3233         
    33         if a.count()>0: 
    34             self.fields["Display"].initial = a[0] 
     34        if queryset.count()>0: 
     35            self.fields["Display"].initial = queryset[0] 
    3536         
    3637 
  • branches/3D/openPLM/document3D/models.py

    r602 r613  
    1212 
    1313class Document3D(Document): 
    14  
     14    u""" 
     15    This model of document allows to treat files STEP for his later visualization. It extends Document with the attribute/tab 3D 
     16    """ 
    1517    
    1618     
     
    2931 
    3032 
    31 #storage for fichiers .js that were representing the geometries of the file step 
     33#: storage location for files .js that were representing the geometries of the file step 
    3234media3Djs = DocumentStorage(location=settings.MEDIA_ROOT+"3D/") 
    33 #storage for fichier .js that were representing the arborescence of the file step     
    34 media3Djs_navigabilite = DocumentStorage(location=settings.MEDIA_ROOT+"3D/navigabilite") 
    35  
    36  
    37 #Link between file step and his navigabilitie   1 for 1 
    38 class stp_to_jss_navigabilite(models.Model): 
    39  
    40     js = models.FileField(upload_to='.',storage=media3Djs_navigabilite) 
     35 
     36 
     37#: storage location for files .js that were representing the arborescence of the file step     
     38media3Djs_arborescense = DocumentStorage(location=settings.MEDIA_ROOT+"3D/arborescence") 
     39 
     40 
     41class stp_to_jss_arborescense(models.Model): 
     42    u""" 
     43    Link between file STEP present in a Document3D and a file .js that represents his arborescense   1..1 
     44    """ 
     45    js = models.FileField(upload_to='.',storage=media3Djs_arborescense) 
    4146    stp = models.ForeignKey(DocumentFile)  
     47 
     48 
     49 
    4250     
    4351#Link between file step and his geometries   1 for *          
    4452class stp_to_jss(models.Model): 
    45  
     53    u""" 
     54    Link between file STEP present in a Document3D and  files .js that represents his geometries   1..* 
     55    """ 
    4656    js = models.FileField(upload_to='.',storage=media3Djs) 
    4757    stp = models.ForeignKey(DocumentFile)     
    4858 
     59 
    4960class simple_shape(): 
     61    u""" 
     62    It stores geometric information relating to a shape contained in a file step together with the name that characterizes the above mentioned shape 
     63 
     64    :key attributes: 
     65        .. attribute:: nom 
     66 
     67            Reference the nom of a STEP shape 
     68        .. attribute:: shape 
     69 
     70            Reference the geometry of a STEP shape 
     71 
     72    """ 
    5073    def __init__(self, nom,shape): 
    5174        self.nom = nom 
    5275        self.shape = shape 
    53 #Representation d un node dans l arborescence du fichier step 
     76#Representation d un node non feuille dans l arborescence du fichier step 
    5477#nom: nom du composant 
    5578#children: list d'enfants 
    5679#loc: garde la localisation du composan (si le composant n'est pas une reference a autre composant, la localisation va etre la matrix Identity) 
    5780class node_shape(): 
     81    u""" 
     82    Representation of a node (component) not leaf in the arborescense of the file STEP 
     83 
     84    :key attributes: 
     85        .. attribute:: nom 
     86 
     87            Reference the nom of a STEP component (A component can be composed of other components or of shapes) 
     88             
     89        .. attribute:: children=[] 
     90 
     91            Link to the children of the node (A children can be a component or a shape) 
     92             
     93        .. attribute:: loc 
     94 
     95            It stores the location relative of a component:Virement rotation and axis of rotation 
     96 
     97    """ 
    5898    nom='' 
    5999    children=[] 
     
    66106#nom: nom du composant 
    67107#loc: garde la localisation du composan (si le composant n est pas une reference a autre composant, la localisation va etre la matrix Identity) 
    68 #ref: pendent la generation de fichiers step nous allons remplir un vecteur de toutes differentes geometrie ,il indique l indice dans le vecteur qui correspond a la geometrie   
     108#ref: pendent la generation de fichiers step nous allons remplir un vecteur de toutes differentes geometrie simples (simple_shape) ,il indique l indice dans le vecteur qui correspond a la geometrie   
    69109class feuille_nom_shapes(): 
     110    u""" 
     111    Representation of a leaf (shape geometry) in the arborescense of the file STEP,this representation is not direct, stores a reference that allows to obtain the    geometry 
     112 
     113    :key attributes: 
     114        .. attribute:: nom 
     115 
     116            Reference the nom of a STEP geometry  
     117        .. attribute:: reference 
     118 
     119            During the treatment of files STEP we are going to generate a vector with all the different simple geometries, this reference is an entire number that indicates the index inside the vector where we will find the geometry (more ahead it will be necessarily to combine the locations to place the geometry in the space)     
     120         
     121        .. attribute:: loc 
     122 
     123            It stores the location relative of a component:Virement rotation and axis of rotation 
     124         
     125        .. attribute:: red 
     126 
     127            In case of shapes with color, it stores the component of red between 0 and 1 
     128         
     129        .. attribute:: green 
     130 
     131            In case of shapes with color, it stores the component of green between 0 and 1 
     132         
     133        .. attribute:: blue 
     134 
     135            In case of shapes with color, it stores the component of blue between 0 and 1 
     136 
     137    """ 
    70138    nom='' 
    71139    loc=TopLoc_Location() 
     
    82150            self.green=colour.Green() 
    83151            self.blue=colour.Blue() 
    84          
     152 
     153from celery.task import task 
     154@task 
     155def handle_step_file(doc_file_pk): 
     156    doc_file = DocumentFile.objects.get(pk=doc_file_pk) 
     157    from openPLM.document3D.aficher import convertir_STP_to_WebGL 
     158         
     159    fileName, fileExtension = os.path.splitext(doc_file.filename) 
     160    if fileExtension.upper() in ('.STP', '.STEP'):          
     161        eliminer_associes(doc_file) 
     162        ok=convertir_STP_to_WebGL(doc_file) 
     163         
     164        if not ok: 
     165            #effacer touts les fichiers generes 
     166            eliminer_associes(doc_file) 
     167            print "Error: It was not possible to generate a sight 3D of the file." 
     168            return False             
     169 
     170            return True             
    85171 
    86172class Document3DController(DocumentController): 
    87173 
    88174    def handle_added_file(self, doc_file): 
    89         from openPLM.document3D.aficher import convertir_STP_to_WebGL 
    90          
     175        handle_step_file.delay(doc_file.pk)         
     176             
     177    def delete_file(self, doc_file): 
     178     
    91179        fileName, fileExtension = os.path.splitext(doc_file.filename) 
    92         if fileExtension.upper()== '.STP' or fileExtension.upper()=='.STEP':  
    93             #delete old jss file (only neccesary in case of check-in -> handle) 
     180        if fileExtension.upper() in ('.STP', '.STEP'):  
    94181            eliminer_associes(doc_file) 
    95             ok=convertir_STP_to_WebGL(doc_file) 
    96              
    97             if not ok: 
    98                 #effacer touts les fichiers generes 
    99                 eliminer_associes(doc_file) 
    100                 print "Error: It was not possible to generate a sight 3D of the file." 
    101                 return False             
    102  
    103             return True 
    104              
    105     def delete_file(self, doc_file): 
    106  
    107          
    108         fileName, fileExtension = os.path.splitext(doc_file.filename) 
    109         if fileExtension.upper()== '.STP' or fileExtension.upper()=='.STEP': 
    110           
    111             eliminer_associes(doc_file) 
    112             super(Document3DController, self).delete_file(doc_file) 
    113      
    114         else: 
    115          
    116             super(Document3DController, self).delete_file(doc_file) 
    117  
    118  
    119 #elimine les fichiers .jss associes a un fichier step 
     182        super(Document3DController, self).delete_file(doc_file) 
     183 
     184 
     185 
     186 
     187#elimine les fichiers .jss associes a un fichier step  
     188 
    120189def eliminer_associes(doc_file): 
    121              
    122     multi_jss=stp_to_jss.objects.filter(stp=doc_file) 
    123     count=multi_jss.count() 
    124     for i in range(count): 
    125         if not multi_jss[count-i-1].js.name=="":   
    126             os.remove(settings.MEDIA_ROOT+"3D/"+multi_jss[count-i-1].js.name) 
    127         print "Deleting geometry .jss associes:" , (settings.MEDIA_ROOT+"3D/"+multi_jss[count-i-1].js.name) 
    128         multi_jss[count-i-1].delete() 
    129  
    130  
    131     multi_jss=stp_to_jss_navigabilite.objects.filter(stp=doc_file) 
    132     count=multi_jss.count() 
    133     for i in range(count): 
    134         if not multi_jss[count-i-1].js.name=="":   
    135             os.remove(settings.MEDIA_ROOT+"3D/navigabilite/"+multi_jss[count-i-1].js.name) 
    136         print "Deleting navigabilite .jss associe:" , (settings.MEDIA_ROOT+"3D/navigabilite/"+multi_jss[count-i-1].js.name) 
    137         multi_jss[count-i-1].delete() 
    138              
    139  
     190 
     191    query_jss=stp_to_jss.objects.filter(stp=doc_file) 
     192    files_js=query_jss.values_list("js", flat=True) 
     193    for name in files_js: 
     194        filename = settings.MEDIA_ROOT+"3D/"+ name 
     195        if os.path.exists(filename) and os.path.isfile(filename): 
     196            os.remove(filename) 
     197            print "Deleting geometry .jss associes:" , filename 
     198    query_jss.delete()     
     199 
     200    query_jss=stp_to_jss_arborescense.objects.filter(stp=doc_file) 
     201    navigabilite_js=query_jss.values_list("js", flat=True) 
     202    for name in navigabilite_js: 
     203        filename = settings.MEDIA_ROOT+"3D/arborescence/"+name 
     204        if os.path.exists(filename) and os.path.isfile(filename): 
     205            os.remove(filename) 
     206            print "Deleting arborescence .jss associe:" , filename 
     207    query_jss.delete() 
     208 
  • branches/3D/openPLM/document3D/templates/Display3D.htm

    r601 r613  
    225225                <script type="text/javascript" src="/media/3D/{{ item.js.name}}"></script> 
    226226                {% endfor %} 
    227                 <script type="text/javascript" src="/media/3D/navigabilite/{{menu_navigabilite}}"></script>  
     227                <script type="text/javascript" src="/media/3D/arborescence/{{menu_arborescense}}"></script>  
    228228 
    229229  
  • branches/3D/openPLM/document3D/views.py

    r601 r613  
    3838     
    3939    obj, ctx = get_generic_data(request, obj_type, obj_ref, obj_revi) 
    40  
    41      
     40    ctx['current_page'] = '3D' 
    4241     
    4342     
     
    5049            multi_image=stp_to_jss.objects.filter(stp=image) 
    5150            if multi_image.count()>0: 
    52                 menu_navigabilite=stp_to_jss_navigabilite.objects.filter(stp=image)[0].js.name 
     51                menu_arborescense=stp_to_jss_arborescense.objects.filter(stp=image)[0].js.name 
    5352            else:     
    54                 menu_navigabilite="" 
     53                menu_arborescense="" 
    5554 
    56             ctx.update({'current_page':'3D','select_stp_form': form, 'multi_image3D' : multi_image ,'menu_navigabilite' : menu_navigabilite, })     
     55            ctx.update({'select_stp_form': form, 'multi_image3D' : multi_image ,'menu_arborescense' : menu_arborescense, })     
    5756            return r2r('Display3D.htm', ctx, request) 
    5857         
     
    6564    if image is None: 
    6665        multi_image='' 
    67         menu_navigabilite='' 
     66        menu_arborescense='' 
    6867 
    6968    else: 
    7069 
    7170        multi_image=stp_to_jss.objects.filter(stp=image) 
    72         menu_navigabilite=stp_to_jss_navigabilite.objects.filter(stp=image)[0].js.name 
     71        menu_arborescense=stp_to_jss_arborescense.objects.filter(stp=image)[0].js.name 
    7372        #print "EL numero de ficheros es " ,multi_image.count() 
    7473 
    7574         
    76     ctx.update({'current_page':'3D','select_stp_form': form , 'multi_image3D' : multi_image , 'menu_navigabilite' : menu_navigabilite , }) 
     75    ctx.update({'select_stp_form': form , 'multi_image3D' : multi_image , 'menu_arborescense' : menu_arborescense , }) 
    7776  
    7877    return r2r('Display3D.htm', ctx, request) 
  • branches/3D/openPLM/etc/default/celeryd

    r416 r613  
    1010 
    1111# Extra arguments to celeryd 
    12 CELERYD_OPTS="-Q index,mails,celery --time-limit=300 --concurrency=8" 
     12CELERYD_OPTS="-Q index,mails,celery,step --time-limit=300 --concurrency=8" 
    1313 
    1414# Name of the celery config module. 
  • branches/3D/openPLM/runserver.sh

    r417 r613  
    11#! /usr/bin/env sh 
    2 ./manage.py celeryd -Q mails,index,celery -c 3 -l info & 
     2./manage.py celeryd -Q mails,index,celery,step -c 3 -l info & 
    33python -m smtpd -n -c DebuggingServer localhost:1025 & 
    44./manage.py runserver 
  • branches/3D/openPLM/settings.py.example

    r592 r613  
    112112    "openPLM.plmapp.mail.do_send_histories_mail" : {"queue" : "mails"}, 
    113113    "openPLM.plmapp.mail.do_send_mail" : {"queue" : "mails"}, 
     114    "openPLM.document3d.handle_step_file": {"queue": "step"}, 
    114115} 
    115116 
Note: See TracChangeset for help on using the changeset viewer.