ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/ns_dev/Python/NinoCode/Active_prgs/MCP/Trunk/MCP_Case_Scan.py
Revision: 8
Committed: Sat May 5 04:21:19 2012 UTC (13 years, 10 months ago) by ninoborges
Content type: text/x-python
Original Path: Python/NinoCode/Active_prgs/MCP/MCP_Case_Scan.py
File size: 8793 byte(s)
Log Message:
Initial Import

File Contents

# User Rev Content
1 ninoborges 8 """
2    
3     MCP_Case_Scan.py
4    
5     Created by
6     Emanuel Borges
7     04.08.2009
8    
9     This program will run in batch mode and automatically add the SendToIpro menu item to any databases
10     that it finds, which do not have the menu item. This might be changed to add other things to the
11     menu too, in the future.
12    
13     NOTE: This needs to be changed so that it actually checks the line. There have been instances where
14     the line is there but it's not complete.
15    
16    
17     UPDATE: on 7-31-2010 changed name from Concordance_MenuItem_Adder.py to MCP_Case_Scan.py
18     to reflect the fact that it's now a part of th MCP and to add functions.
19     """
20    
21     import ConfigParser,os,ConcordanceHelperTools,MCP_Lib
22    
23    
24    
25     def ProcessCasesMain(caseToProcess = 'ALL'):
26     responsibleCases,casesDir = MCP_Lib.GetCaseList()
27     responsibleCasesMatrix = {}
28     if caseToProcess == 'ALL':
29     pass
30     else:
31     responsibleCases = [caseToProcess]
32     for i in responsibleCases:
33     caseName,clientMatterNumber = i.split("_(")
34     clientMatterNumber = clientMatterNumber[:-1]
35     responsibleCasesMatrix[clientMatterNumber] = caseName
36     responsibleCLMList = responsibleCasesMatrix.keys()
37    
38     for cliMatt in responsibleCLMList:
39     fullDatabaseList = []
40     print "-"*32
41     print
42     print "Now processing %s"% responsibleCasesMatrix[cliMatt]
43     #os.path.walk(ConcordanceHelperTools.ParseClientMatter(cliMatt), CheckForMenuItem, args)
44     for root, dirs, files in os.walk(ConcordanceHelperTools.ParseClientMatter(cliMatt)):
45     if os.path.split(root)[1] == "Match":
46     pass
47     else:
48     CheckForMenuItem(root, files)
49     databaseList = ConcordanceHelperTools.EnumerateConcordanceDatabases(root, files)
50     fullDatabaseList.extend(databaseList)
51     currentDatabaseList = []
52     databaseListFile = os.path.join(casesDir,responsibleCasesMatrix[cliMatt]+"_("+cliMatt+")","DatabaseList.txt")
53     print "Checking the database list file..."
54     if os.path.isfile(databaseListFile):
55     currentDatabaseList = open(databaseListFile).readlines()
56     missingFiles = False
57     for db in fullDatabaseList:
58     if db+"\n" in currentDatabaseList:
59     pass
60     else:
61     missingFiles = True
62     if missingFiles:
63     print "Incomplete database list file found. Updating..."
64     outputFile = open(databaseListFile,'w')
65     for i in fullDatabaseList:
66     outputFile.write(i+"\n")
67     outputFile.close()
68     print "Updating complete."
69     else:
70     print "All databases in list file accounted for."
71     else:
72     print "No database list file found, making a new one.."
73     outputFile = open(databaseListFile,'w')
74     for i in fullDatabaseList:
75     outputFile.write(i+"\n")
76     outputFile.close()
77     print "File created."
78    
79     def UpdateDatabaseList(dirName, filesInDir):
80     databaseList = ConcordanceHelperTools.EnumerateConcordanceDatabases(dirName, filesInDir)
81    
82     def CheckForMenuItem(dirName, filesInDir):
83     for file in filesInDir:
84     if os.path.isfile(os.path.join(dirName, file)):
85     if os.path.splitext(file)[1].upper() == '.DCB':
86     if os.path.splitext(file)[0][-6:].upper() == '-NOTES':
87     pass
88     elif os.path.splitext(file)[0][-9:].upper() == '-REDLINES':
89     pass
90     elif os.path.exists(os.path.join(dirName,os.path.splitext(file)[0] +'.ini')) == False:
91     print "There is no ini file for %s!!"%file
92     else:
93     iniFile = os.path.splitext(file)[0] +'.ini'
94     ## Check to see if it's already there
95     cp = ConfigParser.ConfigParser()
96     cp.read(os.path.join(dirName, iniFile))
97     ## I'm only checking for the entire section here, so this needs to
98     ## change, if you use it for more than this.
99     if cp.has_section('AddedMenuItems'):
100     if cp.get('AddedMenuItems','default') == "":
101     menuBool = True
102     else:
103     menuBool = False
104     if 'Find Attachments' in cp.get('AddedMenuItems','default'):
105     menuBool = False
106     else:
107     menuBool = True
108     else:
109     menuBool = True
110     if cp.has_section('Settings'):
111     settingsBool = False
112     else:
113     settingsBool = True
114     if menuBool or settingsBool:
115     print
116     print "Missing Menu item from %s. Adding..."%file
117     AddMenuItem(os.path.join(dirName, iniFile), menuBool, settingsBool)
118    
119     else:
120     print
121     print "Skipping %s"% file
122    
123    
124     def AddMenuItem(iniFile,menuBool, settingsBool):
125     #value = """default=Search(Send Query to IPRO,H:\cpl\DDEIQRY.CPL,-1)"""
126     cp = ConfigParser.ConfigParser()
127     cp.read(iniFile)
128     if menuBool:
129     if cp.has_section('AddedMenuItems'):
130     pass
131     else:
132     cp.add_section("AddedMenuItems")
133     cp.set('AddedMenuItems', "default", r"Search(Send Query to IPRO,H:\cpl\DDEIQRY.CPL,-1),Search(Find Attachments, H:\cpl\findattachments.cpl, -1)")
134     if settingsBool:
135     cp.add_section("Settings")
136     cp.set('Settings', "Viewer", r"L:\app\IPRO\i2kprem.exe")
137     cp.set('Settings', "ViewerCPL", r"H:\cpl\DDEIVIEW.CPL")
138     ## Back up the ini
139     try:
140     os.rename(iniFile,os.path.splitext(iniFile)[0] + "ini.BAK")
141     except:
142     os.remove(os.path.splitext(iniFile)[0] + "ini.BAK")
143     os.rename(iniFile,os.path.splitext(iniFile)[0] + "ini.BAK")
144    
145    
146     ## Add to the ini
147     outputFile = open(iniFile,'w')
148     cp.write(outputFile)
149     outputFile.close()
150     print
151     print "Added line to %s"% iniFile
152    
153     if __name__ == '__main__':
154     ProcessCasesMain('ALL')
155     #responsibleCases,casesDir = MCP_Lib.GetCaseList()
156     #responsibleCasesMatrix = {}
157     #for i in responsibleCases:
158     # caseName,clientMatterNumber = i.split("_(")
159     # clientMatterNumber = clientMatterNumber[:-1]
160     # responsibleCasesMatrix[clientMatterNumber] = caseName
161     #responsibleCLMList = responsibleCasesMatrix.keys()
162     #
163     #
164     #
165     #for cliMatt in responsibleCLMList:
166     # fullDatabaseList = []
167     # print "-"*32
168     # print
169     # print "Now processing %s"% responsibleCasesMatrix[cliMatt]
170     # #os.path.walk(ConcordanceHelperTools.ParseClientMatter(cliMatt), CheckForMenuItem, args)
171     # for root, dirs, files in os.walk(ConcordanceHelperTools.ParseClientMatter(cliMatt)):
172     # if os.path.split(root)[1] == "Match":
173     # pass
174     # else:
175     # CheckForMenuItem(root, files)
176     # databaseList = ConcordanceHelperTools.EnumerateConcordanceDatabases(root, files)
177     # fullDatabaseList.extend(databaseList)
178     # currentDatabaseList = []
179     # databaseListFile = os.path.join(casesDir,responsibleCasesMatrix[cliMatt]+"_("+cliMatt+")","DatabaseList.txt")
180     # print "Checking the database list file..."
181     # if os.path.isfile(databaseListFile):
182     # currentDatabaseList = open(databaseListFile).readlines()
183     # missingFiles = False
184     # for db in fullDatabaseList:
185     # if db+"\n" in currentDatabaseList:
186     # pass
187     # else:
188     # missingFiles = True
189     # if missingFiles:
190     # print "Incomplete database list file found. Updating..."
191     # outputFile = open(databaseListFile,'w')
192     # for i in fullDatabaseList:
193     # outputFile.write(i+"\n")
194     # outputFile.close()
195     # print "Updating complete."
196     # else:
197     # print "All databases in list file accounted for."
198     # else:
199     # print "No database list file found, making a new one.."
200     # outputFile = open(databaseListFile,'w')
201     # for i in fullDatabaseList:
202     # outputFile.write(i+"\n")
203     # outputFile.close()
204     # print "File created."
205     #