Changeset 276 for trunk


Ignore:
Timestamp:
Jan 20, 2010, 8:12:16 AM (15 years ago)
Author:
gav
Message:

Change AssetSubItem to have many assets.

Location:
trunk/grails-app
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/AssetSubItemDetailedController.groovy

    r274 r276  
    6464            assetSubItemInstance.properties = params
    6565
    66             if(!assetSubItemInstance.asset && !assetSubItemInstance.parentItem) {
    67                 flash.message = "Either an asset or parentItem is required."
    68                 render(view:'edit',model:[assetSubItemInstance:assetSubItemInstance])
    69                 return
    70             }
    71 
    72             if(assetSubItemInstance.asset && assetSubItemInstance.parentItem) {
    73             flash.message = "Both an asset and parentItem may not be specified at the same time."
    74                 render(view:'edit',model:[parentItem:parentItem])
    75                 return
    76             }
     66//             if(!assetSubItemInstance.asset && !assetSubItemInstance.parentItem) {
     67//                 flash.message = "Either an asset or parentItem is required."
     68//                 render(view:'edit',model:[assetSubItemInstance:assetSubItemInstance])
     69//                 return
     70//             }
     71//
     72//             if(assetSubItemInstance.asset && assetSubItemInstance.parentItem) {
     73//             flash.message = "Both an asset and parentItem may not be specified at the same time."
     74//                 render(view:'edit',model:[parentItem:parentItem])
     75//                 return
     76//             }
    7777
    7878            if(!assetSubItemInstance.hasErrors() && assetSubItemInstance.save(flush: true)) {
    7979                flash.message = "AssetSubItem ${params.id} updated"
    8080
    81                 if(assetSubItemInstance.asset)
    82                     redirect(controller: "assetDetailed", action:"show", id: assetSubItemInstance.asset.id)
     81                if(assetSubItemInstance.assets)
     82                    redirect(controller: "assetDetailed", action:"show", id: assetSubItemInstance.assets.toArray()[0].id)
    8383                else {
    8484                    //Get the top parentItem.
     
    9393                    }
    9494
    95                     if(parentItem.asset)
    96                         redirect(controller: "assetDetailed", action:"show", id: parentItem.asset.id)
     95                    if(parentItem?.assets)
     96                        redirect(controller: "assetDetailed", action:"show", id: parentItem.assets.toArray()[0].id)
    9797                    else
    9898                        redirect(action:"show", id: assetSubItemInstance.id) // End stop if all else fails.
     
    118118        def assetSubItemInstance = new AssetSubItem(params)
    119119
    120         if(!assetSubItemInstance.asset && !assetSubItemInstance.parentItem) {
    121             flash.message = "Either an asset or parentItem is required."
    122             render(view:'create',model:[assetSubItemInstance:assetSubItemInstance])
    123             return
    124         }
    125 
    126         if(assetSubItemInstance.asset && assetSubItemInstance.parentItem) {
    127             flash.message = "Both an asset and parentItem may not be specified at the same time."
    128             render(view:'create',model:[assetSubItemInstance:assetSubItemInstance])
    129             return
    130         }
     120//         if(!assetSubItemInstance.asset && !assetSubItemInstance.parentItem) {
     121//             flash.message = "Either an asset or parentItem is required."
     122//             render(view:'create',model:[assetSubItemInstance:assetSubItemInstance])
     123//             return
     124//         }
     125//
     126//         if(assetSubItemInstance.asset && assetSubItemInstance.parentItem) {
     127//             flash.message = "Both an asset and parentItem may not be specified at the same time."
     128//             render(view:'create',model:[assetSubItemInstance:assetSubItemInstance])
     129//             return
     130//         }
    131131
    132132        if(!assetSubItemInstance.hasErrors() && assetSubItemInstance.save(flush: true)) {
    133133            flash.message = "AssetSubItem ${assetSubItemInstance.id} created"
    134134
    135             if(assetSubItemInstance.asset)
    136                 redirect(controller: "assetDetailed", action:"show", id: assetSubItemInstance.asset.id)
     135            if(assetSubItemInstance.assets)
     136                redirect(controller: "assetDetailed", action:"show", id: assetSubItemInstance.assets.toArray()[0].id)
    137137            else {
    138138                //Get the top parentItem.
     
    147147                }
    148148
    149                 if(parentItem.asset)
    150                     redirect(controller: "assetDetailed", action:"show", id: parentItem.asset.id)
     149                if(parentItem?.assets)
     150                    redirect(controller: "assetDetailed", action:"show", id: parentItem.assets.toArray()[0].id)
    151151                else
    152152                    redirect(action:"show", id: assetSubItemInstance.id) // End stop if all else fails.
  • trunk/grails-app/domain/AssetSubItem.groovy

    r268 r276  
    11class AssetSubItem {
    22
    3     Asset asset
    43    AssetSubItem parentItem
    54
     
    87    boolean isActive = true
    98
    10     static hasMany = [subItems: AssetSubItem,
     9    static hasMany = [assets: Asset,
     10                                subItems: AssetSubItem,
    1111                                maintenanceActions: MaintenanceAction,
    1212                                assetSubItemExtendedAttributes: AssetSubItemExtendedAttribute]
     
    1818        description(maxSize:100)
    1919        isActive()
    20         asset(nullable:true)
    2120        parentItem(nullable:true)
    2221    }
  • trunk/grails-app/services/CreateDataService.groovy

    r275 r276  
    129129        createDemoMaintenanceActions()
    130130        createDemoSections()
    131         createDemoAssets()
     131        createDemoAssetTree()
    132132        createDemoAssetExtenedAttributes()
    133         createDemoAssetSubItems()
    134133
    135134        // Record that data has been created.
     
    10471046        //Section #1
    10481047        sectionInstance = new Section(name: "Press Section",
     1048                                                                                    site: Site.get(3),
     1049                                                                                    department: Department.get(1))
     1050        saveAndTest(sectionInstance)
     1051
     1052        //Section #2
     1053        sectionInstance = new Section(name: "RO System",
     1054                                                                                    site: Site.get(1),
     1055                                                                                    department: Department.get(2))
     1056        saveAndTest(sectionInstance)
     1057
     1058        //Section #3
     1059        sectionInstance = new Section(name: "Auxiliary Section",
    10491060                                                                                    site: Site.get(1),
    10501061                                                                                    department: Department.get(1))
    10511062        saveAndTest(sectionInstance)
    1052 
    1053         //Section #2
    1054         sectionInstance = new Section(name: "RO System",
    1055                                                                                     site: Site.get(2),
    1056                                                                                     department: Department.get(2))
    1057         saveAndTest(sectionInstance)
    1058 
    1059         //Section #3
    1060         sectionInstance = new Section(name: "Auxilliray Section",
    1061                                                                                     site: Site.get(1),
    1062                                                                                     department: Department.get(1))
    1063         saveAndTest(sectionInstance)
    1064     }
    1065 
    1066     def createDemoAssets() {
     1063    }
     1064
     1065    def createDemoAssetTree() {
    10671066
    10681067        //Asset
     
    10701069
    10711070        //Asset #1
    1072         assetInstance = new Asset(name: "Print Tower 22",
    1073                                                         section: Section.get(1))
    1074         saveAndTest(assetInstance)
     1071        def assetInstance1 = new Asset(name: "Print Tower 22",
     1072                                                            section: Section.get(1))
     1073        saveAndTest(assetInstance1)
    10751074//        assetInstance.addToMaintenanceActions(MaintenanceAction.get(1))
    10761075
    10771076        //Asset #2
    1078         assetInstance = new Asset(name: "Print Tower 21",
    1079                                                         section: Section.get(1))
    1080         saveAndTest(assetInstance)
     1077        def assetInstance2 = new Asset(name: "Print Tower 21",
     1078                                                            section: Section.get(1))
     1079        saveAndTest(assetInstance2)
    10811080
    10821081        //Asset #3
    1083         assetInstance = new Asset(name: "Print Tower 23",
    1084                                                         section: Section.get(1))
    1085         saveAndTest(assetInstance)
     1082        def assetInstance3 = new Asset(name: "Print Tower 23",
     1083                                                            section: Section.get(1))
     1084        saveAndTest(assetInstance3)
    10861085
    10871086        //Asset #4
    1088         assetInstance = new Asset(name: "RO 1",
    1089                                                         section: Section.get(2))
    1090         saveAndTest(assetInstance)
    1091     }
    1092 
    1093     def createDemoAssetSubItems() {
     1087        def assetInstance4 = new Asset(name: "RO 1",
     1088                                                            section: Section.get(2))
     1089        saveAndTest(assetInstance4)
    10941090
    10951091        //AssetSubItem
    10961092        def assetSubItemInstance
    10971093
    1098         //AssetSubItem #1
    1099         assetSubItemInstance = new AssetSubItem(name: "Print Unit Lower",
    1100                                                                                 asset: Asset.get(2))
     1094        //AssetSubItem #1 Level1
     1095        def assetSubItemInstance1 = new AssetSubItem(name: "Print Tower")
     1096        saveAndTest(assetSubItemInstance1)
     1097
     1098        // Add assetSubItemInstance1 to some assets.
     1099        assetInstance1.addToAssetSubItems(assetSubItemInstance1)
     1100        assetInstance2.addToAssetSubItems(assetSubItemInstance1)
     1101        assetInstance3.addToAssetSubItems(assetSubItemInstance1)
     1102
     1103        //AssetSubItem #2 Level1
     1104        def assetSubItemInstance2 = new AssetSubItem(name: "Reactor Tower")
     1105        saveAndTest(assetSubItemInstance2)
     1106
     1107        // Add assetSubItemInstance2 to some assets.
     1108        assetInstance4.addToAssetSubItems(assetSubItemInstance2)
     1109
     1110        //AssetSubItem #3 Level1
     1111        def assetSubItemInstance3 = new AssetSubItem(name: "Blower Tower")
     1112        saveAndTest(assetSubItemInstance3)
     1113
     1114        // Add assetSubItemInstance3 to some assets.
     1115        assetInstance4.addToAssetSubItems(assetSubItemInstance3)
     1116
     1117        //AssetSubItem #4 Level2
     1118        assetSubItemInstance = new AssetSubItem(name: "Print Unit Upper",
     1119                                                                                parentItem: AssetSubItem.get(1))
    11011120        saveAndTest(assetSubItemInstance)
    11021121
    1103         //AssetSubItem #2
    1104         assetSubItemInstance = new AssetSubItem(name: "Print Unit Upper",
    1105                                                                                 asset: Asset.get(2))
     1122        //AssetSubItem #5 Level3
     1123        assetSubItemInstance = new AssetSubItem(name: "Agitator",
     1124                                                                                parentItem: AssetSubItem.get(2))
    11061125        saveAndTest(assetSubItemInstance)
    11071126
    1108         //AssetSubItem #3
    1109         assetSubItemInstance = new AssetSubItem(name: "Reactor Tower",
    1110                                                                                 asset: Asset.get(1))
     1127        //AssetSubItem #6 Level2
     1128        assetSubItemInstance = new AssetSubItem(name: "Scraper",
     1129                                                                                parentItem: AssetSubItem.get(3))
    11111130        saveAndTest(assetSubItemInstance)
    1112     }
     1131
     1132        //AssetSubItem #7 Level3
     1133        assetSubItemInstance = new AssetSubItem(name: "Motor",
     1134                                                                                parentItem: AssetSubItem.get(5))
     1135        saveAndTest(assetSubItemInstance)
     1136
     1137        //AssetSubItem #8 Level3
     1138        assetSubItemInstance = new AssetSubItem(name: "Gearbox",
     1139                                                                                parentItem: AssetSubItem.get(5))
     1140        saveAndTest(assetSubItemInstance)
     1141
     1142        //AssetSubItem #9 Level4
     1143        assetSubItemInstance = new AssetSubItem(name: "DS Bearing",
     1144                                                                                parentItem: AssetSubItem.get(7))
     1145        saveAndTest(assetSubItemInstance)
     1146
     1147        //AssetSubItem #10 Level4
     1148        assetSubItemInstance = new AssetSubItem(name: "NDS Bearing",
     1149                                                                                parentItem: AssetSubItem.get(7))
     1150        saveAndTest(assetSubItemInstance)
     1151    } // createDemoAssetTree()
    11131152
    11141153    def createDemoAssetExtenedAttributes() {
  • trunk/grails-app/views/assetDetailed/edit.gsp

    r271 r276  
    8686                                <td valign="top" class="value ${hasErrors(bean:assetInstance,field:'assetSubItems','errors')}">
    8787                                   
    88 <ul>
    89 <g:each var="a" in="${assetInstance?.assetSubItems?}">
    90     <li><g:link controller="assetSubItemDetailed" action="show" id="${a.id}">${a?.encodeAsHTML()}</g:link></li>
    91 </g:each>
    92 </ul>
    93 <g:link controller="assetSubItemDetailed" params="['asset.id':assetInstance?.id]" action="create">Add AssetSubItem</g:link>
     88                                    <g:select name="assetSubItems"
     89                                                    from="${AssetSubItem.list()}"
     90                                                    size="5" multiple="yes" optionKey="id"
     91                                                    value="${assetInstance?.assetSubItems}" />
    9492
    9593                                </td>
  • trunk/grails-app/views/assetSubItemDetailed/create.gsp

    r274 r276  
    2424                    <table>
    2525                        <tbody>
    26 
    27                             <g:if test="${assetSubItemInstance?.asset}" >
    28                                 <g:hiddenField name="asset.id" value="${assetSubItemInstance.asset.id}" />
    29                                 <tr class="prop">
    30                                     <td valign="top" class="name">
    31                                         <label for="asset">Asset:</label>
    32                                     </td>
    33                                     <td valign="top" class="value">
    34                                         ${assetSubItemInstance.asset.encodeAsHTML()}
    35                                     </td>
    36                                 </tr>
    37                             </g:if>
    3826
    3927                            <g:if test="${assetSubItemInstance?.parentItem}" >
  • trunk/grails-app/views/assetSubItemDetailed/edit.gsp

    r274 r276  
    5656                            <tr class="prop">
    5757                                <td valign="top" class="name">
    58                                     <label for="asset">Asset:</label>
    59                                 </td>
    60                                 <td valign="top" class="value ${hasErrors(bean:assetSubItemInstance,field:'asset','errors')}">
    61                                     <g:select optionKey="id" from="${Asset.list()}" name="asset.id" value="${assetSubItemInstance?.asset?.id}" noSelection="['null':'']"></g:select>
    62                                 </td>
    63                             </tr>
    64                        
    65                             <tr class="prop">
    66                                 <td valign="top" class="name">
    6758                                    <label for="parentItem">Parent Item:</label>
    6859                                </td>
     
    8677
    8778                                </td>
    88                             </tr>
     79                            </tr>
     80
     81                             <tr class="prop">
     82                                 <td valign="top" class="name">
     83                                    <label for="assets">Assets:</label>
     84                                </td>
     85                                <td valign="top" class="value ${hasErrors(bean:assetSubItemInstance,field:'assets','errors')}">
     86                                   
     87                                </td>
     88                            </tr>
     89                       
     90                            <tr class="prop">
    8991                       
    9092                            <tr class="prop">
  • trunk/grails-app/views/assetSubItemDetailed/show.gsp

    r274 r276  
    4949                   
    5050                        <tr class="prop">
    51                             <td valign="top" class="name">Asset:</td>
    52                            
    53                             <td valign="top" class="value"><g:link controller="assetDetailed" action="show" id="${assetSubItemInstance?.asset?.id}">${assetSubItemInstance?.asset?.encodeAsHTML()}</g:link></td>
    54                            
    55                         </tr>
    56                    
    57                         <tr class="prop">
    5851                            <td valign="top" class="name">Parent Item:</td>
    5952                           
     
    7366                            </td>
    7467                           
     68                        </tr>
     69
     70                        <tr class="prop">
     71                            <td valign="top" class="name">Assets:</td>
     72
     73                            <td  valign="top" style="text-align:left;" class="value">
     74                                <ul>
     75                                <g:each var="a" in="${assetSubItemInstance.assets}">
     76                                    <li><g:link controller="assetDetailed" action="show" id="${a.id}">${a?.encodeAsHTML()}</g:link></li>
     77                                </g:each>
     78                                </ul>
     79                            </td>
     80
    7581                        </tr>
    7682                   
Note: See TracChangeset for help on using the changeset viewer.