16 – Check journals in publications

127

#set( $objectSpace = "Journals" )
#set( $objectClass = "Class" )
#set( $objectTemplate = "Template" )
#set( $journalMap = {} )
#set( $query = ",
 BaseObject as obj,
 StringProperty as prop0
where
 obj.name = doc.fullName and
 obj.className = '${objectSpace}.${objectClass}' and
 obj.name <> '${objectSpace}.${objectTemplate}' and
 prop0.id.id = obj.id and
 prop0.name = 'name' and
 prop0.value <> '' " )
#set( $journalList = $xwiki.searchDocuments($query) )
$journalList.size()
#foreach( $journal in $journalList )
  #set( $journalDoc = $xwiki.getDocument($journal) )
  #set( $journalObj = $journalDoc.getObject("${objectSpace}.${objectClass}") )
  #set( $journalMap[$journalObj.getValue("name")] = $journalObj.name )
#end
##$journalMap
#set( $objectSpace = "Publications" )
#set( $query = ",
 BaseObject as obj,
 LargeStringProperty as prop0,
 StringProperty as prop1,
 StringProperty as prop2,
 StringProperty as prop3,
 DBStringListProperty as prop4 join prop4.list list
where
 obj.name = doc.fullName and
 obj.className = '${objectSpace}.${objectClass}' and
 obj.name <> '${objectSpace}.${objectTemplate}' and
 prop0.id.id = obj.id and
 prop1.id.id = obj.id and
 prop2.id.id = obj.id and
 prop3.id.id = obj.id and
 prop4.id.id = obj.id and
 prop0.name = 'author' and
 prop0.value <> '' and
 prop1.name = 'status' and
 lower(prop1.value) = 'published' and
 prop2.name = 'sort' and
 prop2.value = 'article' and
 prop3.name = 'journal' and
 prop3.value <> '' and
 prop4.name = 'journal-venue' and
 list = '' " )
#set( $pubList = $xwiki.searchDocuments($query) )
#if( $pubList.size() > 0 )
  $pubList.size()
  #foreach( $pub in $pubList )
    #set( $pubDoc = $xwiki.getDocument($pub) )
    #set( $pubObj = $pubDoc.getObject("${objectSpace}.${objectClass}") )
    #if( $journalMap.keySet().contains($pubObj.getValue("journal")))
##[[$pubObj.title>>$pubDoc]] $pubObj.journal $journalMap[$pubObj.getValue("journal")]
      $pubObj.set("journal-venue","$journalMap[$pubObj.getValue('journal')]")
##      $pubObj.journal-venue
      $pubDoc.save()
    #end
  #end
#end
#set( $journal = "Communications of the ACM" )
#set( $query = ",
 BaseObject as obj,
 LargeStringProperty as prop0,
 StringProperty as prop1,
 StringProperty as prop2,
 StringProperty as prop3,
 DBStringListProperty as prop4 join prop4.list list
where
 obj.name = doc.fullName and
 obj.className = '${objectSpace}.${objectClass}' and
 obj.name <> '${objectSpace}.${objectTemplate}' and
 prop0.id.id = obj.id and
 prop1.id.id = obj.id and
 prop2.id.id = obj.id and
 prop3.id.id = obj.id and
 prop4.id.id = obj.id and
 prop0.name = 'author' and
 prop0.value <> '' and
 prop1.name = 'status' and
 lower(prop1.value) = 'published' and
 prop2.name = 'sort' and
 prop2.value = 'article' and
 prop3.name = 'journal' and
 prop3.value = '$journal' and
 prop4.name = 'journal-venue' and
 list = '' " )
#set( $pubList = $xwiki.searchDocuments($query) )
#if( $pubList.size() > 0 )
  $pubList.size()
  #foreach( $pub in $pubList )
    #set( $pubDoc = $xwiki.getDocument($pub) )
    #set( $pubObj = $pubDoc.getObject("${objectSpace}.${objectClass}") )
    $pubObj.set("journal-venue","Journals.Cacm")
* [[$pubObj.title>>$pubDoc]] $pubObj.journal-venue
    $pubDoc.save()
(%%)
  #end
#end