wipo-gbd-transformation 1.1.49__py3-none-any.whl → 1.1.51__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of wipo-gbd-transformation might be problematic. Click here for more details.

Files changed (84) hide show
  1. gbdtransformation/brands/istm/filters.py +22 -14
  2. gbdtransformation/brands/sgtm/filters.py +1 -1
  3. gbdtransformation/brands/sgtm/template.trademark.yml +1 -1
  4. gbdtransformation/designs/__init__.py +2 -3
  5. gbdtransformation/designs/bnid/__init__.py +5 -0
  6. gbdtransformation/designs/bnid/filters.py +49 -0
  7. gbdtransformation/designs/bnid/schema +80 -0
  8. gbdtransformation/designs/bnid/template.yml +1 -0
  9. gbdtransformation/designs/bwid/__init__.py +6 -0
  10. gbdtransformation/designs/bwid/filters.py +52 -0
  11. gbdtransformation/designs/bwid/schema +101 -0
  12. gbdtransformation/designs/bwid/template.yml +1 -0
  13. gbdtransformation/designs/crid/__init__.py +5 -0
  14. gbdtransformation/designs/crid/filters.py +50 -0
  15. gbdtransformation/designs/crid/schema +94 -0
  16. gbdtransformation/designs/crid/template.yml +1 -0
  17. gbdtransformation/designs/cuid/__init__.py +5 -0
  18. gbdtransformation/designs/cuid/filters.py +47 -0
  19. gbdtransformation/designs/cuid/schema +98 -0
  20. gbdtransformation/designs/cuid/template.yml +1 -0
  21. gbdtransformation/designs/egid/__init__.py +5 -0
  22. gbdtransformation/designs/egid/filters.py +49 -0
  23. gbdtransformation/designs/egid/schema +82 -0
  24. gbdtransformation/designs/egid/template.yml +1 -0
  25. gbdtransformation/designs/filters.py +13 -1
  26. gbdtransformation/designs/idid/__init__.py +5 -0
  27. gbdtransformation/designs/idid/filters.py +54 -0
  28. gbdtransformation/designs/idid/schema +102 -0
  29. gbdtransformation/designs/idid/template.yml +1 -0
  30. gbdtransformation/designs/ipas/filters.py +1 -1
  31. gbdtransformation/designs/ipas/template.yml +85 -76
  32. gbdtransformation/designs/joid/__init__.py +6 -0
  33. gbdtransformation/designs/joid/filters.py +49 -0
  34. gbdtransformation/designs/joid/schema +97 -0
  35. gbdtransformation/designs/joid/template.yml +1 -0
  36. gbdtransformation/designs/keid/__init__.py +5 -0
  37. gbdtransformation/designs/keid/filters.py +49 -0
  38. gbdtransformation/designs/keid/schema +99 -0
  39. gbdtransformation/designs/keid/template.yml +1 -0
  40. gbdtransformation/designs/khid/__init__.py +5 -0
  41. gbdtransformation/designs/khid/filters.py +50 -0
  42. gbdtransformation/designs/khid/schema +100 -0
  43. gbdtransformation/designs/khid/template.yml +1 -0
  44. gbdtransformation/designs/laid/__init__.py +5 -0
  45. gbdtransformation/designs/laid/filters.py +49 -0
  46. gbdtransformation/designs/laid/schema +94 -0
  47. gbdtransformation/designs/laid/template.yml +1 -0
  48. gbdtransformation/designs/mnid/__init__.py +6 -0
  49. gbdtransformation/designs/mnid/filters.py +49 -0
  50. gbdtransformation/designs/mnid/schema +98 -0
  51. gbdtransformation/designs/mnid/template.yml +1 -0
  52. gbdtransformation/designs/myid/__init__.py +5 -0
  53. gbdtransformation/designs/myid/filters.py +48 -0
  54. gbdtransformation/designs/myid/schema +95 -0
  55. gbdtransformation/designs/myid/template.yml +1 -0
  56. gbdtransformation/designs/phid/__init__.py +5 -0
  57. gbdtransformation/designs/phid/filters.py +58 -0
  58. gbdtransformation/designs/phid/schema +95 -0
  59. gbdtransformation/designs/phid/template.yml +1 -0
  60. gbdtransformation/designs/sgid/__init__.py +6 -0
  61. gbdtransformation/designs/sgid/filters.py +53 -0
  62. gbdtransformation/designs/sgid/schema +115 -0
  63. gbdtransformation/designs/sgid/template.yml +1 -0
  64. gbdtransformation/designs/thid/__init__.py +4 -0
  65. gbdtransformation/designs/thid/filters.py +52 -0
  66. gbdtransformation/designs/thid/schema +98 -0
  67. gbdtransformation/designs/thid/template.yml +1 -0
  68. gbdtransformation/designs/tnid/__init__.py +5 -0
  69. gbdtransformation/designs/tnid/filters.py +54 -0
  70. gbdtransformation/designs/tnid/schema +96 -0
  71. gbdtransformation/designs/tnid/template.yml +1 -0
  72. gbdtransformation/designs/woid/__init__.py +2 -0
  73. gbdtransformation/designs/woid/filters.py +342 -0
  74. gbdtransformation/designs/woid/schema +592 -0
  75. gbdtransformation/designs/woid/template.yml +342 -0
  76. gbdtransformation/designs/xxid/template.yml +211 -123
  77. gbdtransformation/execs.py +9 -3
  78. {wipo_gbd_transformation-1.1.49.dist-info → wipo_gbd_transformation-1.1.51.dist-info}/METADATA +6 -2
  79. {wipo_gbd_transformation-1.1.49.dist-info → wipo_gbd_transformation-1.1.51.dist-info}/RECORD +83 -16
  80. {wipo_gbd_transformation-1.1.49.dist-info → wipo_gbd_transformation-1.1.51.dist-info}/WHEEL +1 -1
  81. {wipo_gbd_transformation-1.1.49.dist-info → wipo_gbd_transformation-1.1.51.dist-info}/entry_points.txt +1 -0
  82. gbdtransformation/.DS_Store +0 -0
  83. {wipo_gbd_transformation-1.1.49.dist-info → wipo_gbd_transformation-1.1.51.dist-info}/LICENSE.md +0 -0
  84. {wipo_gbd_transformation-1.1.49.dist-info → wipo_gbd_transformation-1.1.51.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,342 @@
1
+ {% from 'navigation.tmpl' import match %}
2
+
3
+ type: 'DESIGN'
4
+ subtype: {{ HagueExpressTransaction | detectSealedDepositIndicator }}
5
+ designGrouping: 'MULTIPLE'
6
+ designsCount: {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.DesignTotalQuantity }}
7
+ kind:
8
+ - 'Industrial Design'
9
+ registrationOfficeCode: 'WO'
10
+ designatedCountries:
11
+ {% call(designation) match('DesignatedCountry', HagueExpressTransaction.HagueCurrent.HagueRegistration.DesignatedCountryBag) %}
12
+ - {{ designation.DesignatedCountryCode }}
13
+ {% endcall %}
14
+
15
+ {% set ApplicationNumber = HagueExpressTransaction.HagueCurrent.HagueRegistration.ApplicationNumber.ApplicationNumberText %}
16
+
17
+ # in Hague records, there is no application date, sometimes an international filing date, otherwise just the internatioal registration date
18
+ {% set filingDate = HagueExpressTransaction.HagueCurrent.HagueRegistration.InternationalFilingDate %}
19
+ {% set registrationDate = HagueExpressTransaction.HagueCurrent.HagueRegistration.InternationalRegistrationDate %}
20
+ {% set appdate = filingDate if filingDate else registrationDate %}
21
+
22
+ # can be deduced from appnum given office cc and (optional) appdate
23
+ # note: we pass registration date when we don't have application or filing date, not rare with with Hague records
24
+ st13: {{ ApplicationNumber | st13('WO', 0, appdate=appdate) }}
25
+
26
+ applicationNumber: {{ ApplicationNumber }}
27
+
28
+ # assuming application date is the same as filing date (valid with Hague data)
29
+ applicationDate: {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.InternationalFilingDate }}
30
+
31
+ # some collections have registration number
32
+ # equals application number when registered
33
+ registrationNumber: {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.InternationalRegistrationNumber }}
34
+ # some collections we can guess registration date
35
+ # from event list
36
+ registrationDate: {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.InternationalRegistrationDate }}
37
+ publicationDate: {{ HagueExpressTransaction.HagueHistory[0].PublicationDate }}
38
+
39
+ # In Hague, default deferment period is 30 months after priority date or application date,
40
+ # but it can be lower for some Hague contracting parties, so deferment expiry date is a good
41
+ # way to give this information, rather than period
42
+ defermentExpiryDate: {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.DefermentExpiryDate }}
43
+
44
+ # a safety fix for expiry date not propagate to current
45
+ {% set hagueHistories = HagueExpressTransaction.HagueHistory %}
46
+
47
+ applicationLanguageCode: {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.FilingLanguageCode }}
48
+
49
+ # include fix of expiry date not updated in the current
50
+ # expiry dates should normally be at the level of design, not whole application, because
51
+ # renewals are applied to affected designs, but at current level it would mean the latest expiry date of
52
+ # at least one design of the application
53
+ expiryDate: {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.ExpiryDate | getExpiryDate(hagueHistories) }}
54
+
55
+ reference:
56
+ # officeReferenceIdentifier in Hague ST96 schema
57
+ office: {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.OfficeReferenceIdentifier }}
58
+
59
+ applicants:
60
+ {% call(holder) match('Holder', HagueExpressTransaction.HagueCurrent.HagueRegistration.HolderBag) %}
61
+ - identifier:
62
+
63
+ {% if holder.Contact.Name.PersonName %}
64
+ kind: 'person'
65
+ fullName:
66
+ - languageCode: {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.FilingLanguageCode }}
67
+ text: {{ holder.Contact.Name.PersonName.PersonStructuredName | build_person_name() }}
68
+ firstName:
69
+ - languageCode: {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.FilingLanguageCode | should_display_language(holder.Contact.Name.PersonName.PersonStructuredName.FirstName) }}
70
+ text: {{ holder.Contact.Name.PersonName.PersonStructuredName.FirstName }}
71
+ lastName:
72
+ - languageCode: {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.FilingLanguageCode | should_display_language(holder.Contact.Name.PersonName.PersonStructuredName.LastName) }}
73
+ text: {{ holder.Contact.Name.PersonName.PersonStructuredName.LastName }}
74
+ middleName:
75
+ - languageCode:
76
+ text:
77
+ {% endif %}
78
+
79
+ {% if holder.Contact.Name.OrganizationName %}
80
+ kind: 'organization'
81
+ fullName:
82
+ - languageCode: {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.FilingLanguageCode }}
83
+ text: {{ holder.Contact.Name.OrganizationName.OrganizationStandardName }}
84
+ {% endif %}
85
+ fullAddress:
86
+ {% call(postalAddress) match('PostalAddress', holder.Contact.PostalAddressBag) %}
87
+ - languageCode: {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.FilingLanguageCode }}
88
+ text: {{ postalAddress.PostalStructuredAddress | format_complete_address }}
89
+ addressLines: {{ postalAddress.PostalStructuredAddress.AddressLineText | format_address }}
90
+ cityName: {{ postalAddress.PostalStructuredAddress.CityName }}
91
+ geographicRegionName: {{ postalAddress.PostalStructuredAddress.GeographicRegionName }}
92
+ postalCode: {{ postalAddress.PostalStructuredAddress.PostalCode }}
93
+ countryCode: {{ postalAddress.PostalStructuredAddress.CountryCode }}
94
+ {% endcall %}
95
+ # new, addition
96
+ entitlement:
97
+ entitlementNationalityCode: {{ holder.Entitlement.EntitlementNationalityCode }}
98
+ entitlementEstablishment: {{ holder.Entitlement.EntitlementEstablishment.EntitlementEstablishmentCode }}
99
+ entitlementDomiciled: {{ holder.Entitlement.EntitlementDomiciled.EntitlementDomiciledCode }}
100
+ {% endcall %}
101
+
102
+ representatives:
103
+ {% call(representative) match('Representative', HagueExpressTransaction.HagueCurrent.HagueRegistration.RepresentativeBag) %}
104
+ - identifier:
105
+ {% if representative.Contact.Name.PersonName %}
106
+ kind: 'person'
107
+ fullName:
108
+ - languageCode: {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.FilingLanguageCode }}
109
+ text: {{ representative.Contact.Name.PersonName.PersonStructuredName | build_person_name() }}
110
+ firstName:
111
+ - languageCode: {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.FilingLanguageCode | should_display_language(representative.Contact.Name.PersonName.PersonStructuredName.FirstName) }}
112
+ text: {{ representative.Contact.Name.PersonName.PersonStructuredName.FirstName }}
113
+ lastName:
114
+ - languageCode: {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.FilingLanguageCode | should_display_language(representative.Contact.Name.PersonName.PersonStructuredName.LastName) }}
115
+ text: {{ representative.Contact.Name.PersonName.PersonStructuredName.LastName }}
116
+ middleName:
117
+ - languageCode:
118
+ text:
119
+ {% endif %}
120
+
121
+ {% if representative.Contact.Name.OrganizationName %}
122
+ kind: 'organization'
123
+ fullName:
124
+ - languageCode: {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.FilingLanguageCode }}
125
+ text: {{ representative.Contact.Name.OrganizationName.OrganizationStandardName }}
126
+ {% endif %}
127
+ fullAddress:
128
+ {% call(postalAddress) match('PostalAddress', representative.Contact.PostalAddressBag) %}
129
+ - languageCode: {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.FilingLanguageCode }}
130
+ text: {{ postalAddress.PostalStructuredAddress | format_complete_address }}
131
+ addressLines: {{ postalAddress.PostalStructuredAddress.AddressLineText | format_address }}
132
+ cityName: {{ postalAddress.PostalStructuredAddress.CityName }}
133
+ geographicRegionName: {{ postalAddress.PostalStructuredAddress.GeographicRegionName }}
134
+ countryCode: {{ postalAddress.PostalStructuredAddress.CountryCode }}
135
+ postalCode: {{ postalAddress.PostalStructuredAddress.PostalCode }}
136
+ {% endcall %}
137
+ {% endcall %}
138
+
139
+ designClaim:
140
+ # updated for supporting Hague data
141
+ {% if HagueExpressTransaction.HagueCurrent.HagueRegistration.DesignClaimBag.DesignClaim.DesignClaimTextBag %}
142
+ claims:
143
+ {% call(designClaimText) match('DesignClaimText', HagueExpressTransaction.HagueCurrent.HagueRegistration.DesignClaimBag.DesignClaim.DesignClaimTextBag) %}
144
+ - languageCode: {{ designClaimText._languageCode }}
145
+ claim: {{ designClaimText.__value }}
146
+ {% endcall %}
147
+ designatedCountries:
148
+ {% call(claimDesignation) match('DesignatedCountry', HagueExpressTransaction.HagueCurrent.HagueRegistration.DesignClaimBag.DesignClaim.DesignatedCountryBag) %}
149
+ - {{ claimDesignation.DesignatedCountryCode }}
150
+ {% endcall %}
151
+ - {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.DesignClaimBag.DesignClaim.DesignatedCountryCode }}
152
+ affectedDesigns:
153
+ allDesignsIndicator: {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.DesignClaimBag.DesignClaim.AffectedDesign.AllDesignsIndicator }}
154
+ {% else %}
155
+ claims:
156
+ {% call(designClaim) match('DesignClaim', HagueExpressTransaction.HagueCurrent.HagueRegistration.DesignClaimBag) %}
157
+ - languageCode: {{ designClaim._languageCode }}
158
+ claim: {{ designClaim.__value }}
159
+ {% endcall %}
160
+ designatedCountries:
161
+ {% call(claimDesignation) match('DesignatedCountry', HagueExpressTransaction.HagueCurrent.HagueRegistration.DesignClaimBag.DesignatedCountryBag) %}
162
+ - {{ claimDesignation.DesignatedCountryCode }}
163
+ {% endcall %}
164
+ - {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.DesignClaimBag.DesignatedCountryCode }}
165
+ # Although affectedDesigns is present under DesignClaim, it is always applied to all the designs in our data (always AllDesignsIndicator=True)
166
+ # so designClaim can stay at the level of the application, and not under design
167
+ affectedDesigns:
168
+ allDesignsIndicator: {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.DesignClaimBag.AffectedDesign.AllDesignsIndicator }}
169
+ {% endif %}
170
+
171
+ businessEntityStatusClaim:
172
+ {% if HagueExpressTransaction.HagueCurrent.HagueRegistration.BusinessEntityStatusCategory %}
173
+ - BusinessEntityStatusCategory: {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.BusinessEntityStatusCategory }}
174
+ {% endif %}
175
+ {% if HagueExpressTransaction.HagueHistory[0].HagueRegistration.BusinessEntityStatusClaimBag %}
176
+ {% call(businessEntity) match('BusinessEntityStatusClaim', HagueExpressTransaction.HagueHistory[0].HagueRegistration.BusinessEntityStatusClaimBag) %}
177
+ - BusinessEntityStatusCategory: {{ businessEntity.BusinessEntityStatusCategory }}
178
+ DesignatedCountryCode: {{ businessEntity.DesignatedCountryCode }}
179
+ {% endcall %}
180
+ {% endif %}
181
+
182
+ designs:
183
+ {% call(design) match('HagueDesign', HagueExpressTransaction.HagueCurrent.HagueRegistration.HagueDesignBag) %}
184
+
185
+ - designPos: {{ design.DesignIdentifier }}
186
+
187
+ # status as is in the document
188
+ officeStatus: # afaik Hague data do not provide an explicit status
189
+ # status as translated to gbdFormat
190
+ gbdStatus: {{ registrationDate | getGbdStatus(expiryDate, hagueHistories, design.DesignIdentifier) }}
191
+ #(Ended|Expired|Pending|Registered|Unknown)
192
+ # in the case of Hague, it would be the latest of registration date or renewal dates
193
+ statusDate: {{ registrationDate | getOfficeStatusDate(expiryDate, hagueHistories, design.DesignIdentifier) }}
194
+
195
+ productIndication:
196
+ {% call(productText) match('ProductDescriptionText', design.ProductDescriptionTextBag) %}
197
+ - languageCode: {{ productText._languageCode }}
198
+ text: {{ productText.__value }}
199
+ {% endcall %}
200
+
201
+ designDescription:
202
+ {% call(designText) match('DesignDescriptionText', design.DesignDescriptionTextBag) %}
203
+ - languageCode: {{ designText._languageCode }}
204
+ text: {{ designText.__value }}
205
+ {% endcall %}
206
+
207
+ designImageDetails:
208
+ # Hague image substructures are not sorted, ViewIdentifier must be used to get the image rank
209
+ {% call(view) match('View', design.ViewBag) %}
210
+ - name: {{ view.FileName }}
211
+ rank: {{ view.ViewIdentifier }}
212
+ # type is a useful information to normalise the kind of view corresponding to this picture
213
+ type: {{ view.ViewTypeCategory }}
214
+ # new, more than one legend per picture, in 3 different languages
215
+ legends:
216
+ {% call(viewTypeText) match('ViewTypeText', view.ViewTypeTextBag) %}
217
+ - languageCode: {{ viewTypeText._languageCode }}
218
+ legend: {{ viewTypeText.__value }}
219
+ {% endcall %}
220
+ {% endcall %}
221
+
222
+ designer:
223
+ {% call(designer) match('Designer', design.DesignerBag) %}
224
+ - identifier:
225
+ {% if designer.Contact.Name.PersonName %}
226
+ kind: 'person'
227
+ fullName:
228
+ - languageCode:
229
+ text: {{ designer.Contact.Name.PersonName.PersonStructuredName | build_person_name() }}
230
+ firstName:
231
+ - languageCode: {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.FilingLanguageCode | should_display_language(designer.Contact.Name.PersonName.PersonStructuredName.FirstName) }}
232
+ text: {{ designer.Contact.Name.PersonName.PersonStructuredName.FirstName }}
233
+ lastName:
234
+ - languageCode: {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.FilingLanguageCode | should_display_language(designer.Contact.Name.PersonName.PersonStructuredName.LastName) }}
235
+ text: {{ designer.Contact.Name.PersonName.PersonStructuredName.LastName }}
236
+ middleName:
237
+ - languageCode:
238
+ text:
239
+ {% endif %}
240
+ {% if designer.Contact.Name.OrganizationName %}
241
+ kind: 'organization'
242
+ fullName:
243
+ - languageCode:
244
+ text: {{ designer.Contact.Name.OrganizationName.OrganizationStandardName }}
245
+ {% endif %}
246
+ fullAddress:
247
+ {% call(postalAddress) match('PostalAddress', designer.Contact.PostalAddressBag) %}
248
+ - languageCode: {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.FilingLanguageCode }}
249
+ text: {{ postalAddress.PostalStructuredAddress | format_complete_address }}
250
+ addressLines: {{ postalAddress.PostalStructuredAddress.AddressLineText | format_address }}
251
+ cityName: {{ postalAddress.PostalStructuredAddress.CityName }}
252
+ geographicRegionName: {{ postalAddress.PostalStructuredAddress.GeographicRegionName }}
253
+ countryCode: {{ postalAddress.PostalStructuredAddress.CountryCode }}
254
+ postalCode: {{ postalAddress.PostalStructuredAddress.PostalCode }}
255
+ {% endcall %}
256
+ {% endcall %}
257
+
258
+ productIndicationClasses:
259
+ kind: "Locarno"
260
+ version: {{ design.LocarnoClassificationBag.LocarnoClassificationEdition }}
261
+ classes:
262
+ {% call(classification) match('LocarnoClassification', design.LocarnoClassificationBag) %}
263
+ {% call(subClassification) match('LocarnoSubclass', classification.LocarnoSubclassBag) %}
264
+ - code: {{ (classification.LocarnoClass ~ '-' ~ subClassification) | pad_locarno}}
265
+ {% endcall %}
266
+ {% endcall %}
267
+
268
+ # unfortunately, ExhibitionPriorityBag present in the registratioon history event is not propagated to the current,
269
+ # so we need a fix
270
+ {% call(design2) match('HagueDesign', HagueExpressTransaction.HagueHistory[0].HagueRegistration.HagueDesignBag) %}
271
+ {% if design.DesignIdentifier == design2.DesignIdentifier %}
272
+ exhibition:
273
+ {% call(exhibition) match('ExhibitionPriority', design2.ExhibitionPriorityBag) %}
274
+ - date: {{ exhibition.ExhibitionDate }}
275
+ name: {{ exhibition.ExhibitionName | replace_quotes() }}
276
+ location: {{ exhibition.ExhibitionCityName }}
277
+ {% endcall %}
278
+ {% endif%}
279
+ {% endcall %}
280
+
281
+ priorities:
282
+ {% call(priority) match('Priority', design.PriorityBag) %}
283
+ - countryCode: {{ priority.PriorityCountryCode }}
284
+ number: {{ priority.ApplicationNumber.ApplicationNumberText }}
285
+ date: {{ priority.PriorityApplicationFilingDate }}
286
+ # the following seems Hague specific
287
+ DASAccessCode: {{ priority.DASAccessCode }}
288
+ {% endcall %}
289
+
290
+ # only Hague, but attached to individual design
291
+ exceptionLackNoveltyDeclaration:
292
+ {% call(lackNoveltyDeclaration) match('ExceptionLackNoveltyDeclaration', design.ExceptionLackNoveltyDeclarationBag) %}
293
+ {% call(designation) match('DesignatedCountry', lackNoveltyDeclaration.DesignatedCountryBag) %}
294
+ - country: {{ designation.DesignatedCountryCode }}
295
+ legalBasis: {{ designation.HagueAgreementActCategory | cleanHagueAgreementActCategory() }}
296
+ {% endcall %}
297
+ {% endcall %}
298
+
299
+ # only Hague, but attached to individual design
300
+ principalDesignRelations:
301
+ {% call(principalDesignRelation) match('PrincipalDesignRelation', design.PrincipalDesignRelationBag) %}
302
+
303
+ - principalDesignCategory: {{ principalDesignRelation.PrincipalDesignCategory }}
304
+ documentIdentifier: {{ principalDesignRelation.DocumentIdentifier }}
305
+ principalDesignReference: {{ principalDesignRelation.PrincipalDesignReference }}
306
+ designatedCountries:
307
+ {% call(designation) match('DesignatedCountry', principalDesignRelation.DesignatedCountryBag) %}
308
+ - country: {{ designation.DesignatedCountryCode }}
309
+ legalBasis: {{ designation.HagueAgreementActCategory | cleanHagueAgreementActCategory() }}
310
+ {% endcall %}
311
+
312
+ {% endcall %}
313
+
314
+ {% endcall %}
315
+
316
+ # here goes extra information that is office specific and that is pertinent for us to retain.
317
+ extra:
318
+ feeCalculationDate: {{ HagueExpressTransaction.HagueCurrent.HagueRegistration.FeeCalculationDate }}
319
+
320
+ fullyDesignatedCountries:
321
+ {% call(designation) match('DesignatedCountry', HagueExpressTransaction.HagueCurrent.HagueRegistration.DesignatedCountryBag) %}
322
+ # new, replace simple country field
323
+ - country: {{ designation.DesignatedCountryCode }}
324
+ legalBasis: {{ designation.HagueAgreementActCategory | cleanHagueAgreementActCategory() }}
325
+ {% endcall %}
326
+
327
+ statusByCountry:
328
+ # list the status for designated country when known, for each design
329
+ designs:
330
+ {% call(design) match('HagueDesign', HagueExpressTransaction.HagueCurrent.HagueRegistration.HagueDesignBag) %}
331
+
332
+ - designPos: {{ design.DesignIdentifier }}
333
+ status:
334
+ {% call(designation) match('DesignatedCountry', HagueExpressTransaction.HagueCurrent.HagueRegistration.DesignatedCountryBag) %}
335
+ - country: {{ designation.DesignatedCountryCode }}
336
+ # status as translated to gbdFormat (Ended|Expired|Pending|Registered|Unknown)
337
+ gbdStatus: {{ registrationDate | getGbdStatus(expiryDate, hagueHistories, design.DesignIdentifier, designation.DesignatedCountryCode) }}
338
+ statusDate: {{ registrationDate | getOfficeStatusDate(expiryDate, hagueHistories, design.DesignIdentifier, designation.DesignatedCountryCode) }}
339
+ {% endcall %}
340
+
341
+ {% endcall %}
342
+
@@ -1,145 +1,233 @@
1
1
  {% from 'navigation.tmpl' import match %}
2
2
 
3
- design:
4
- type: # DESIGN
5
- subtype: # (OPEN|SEALED) -INID 27 - SealedDepositIndicator
6
- designGrouping: # SINGLE|MULTIPLE
7
- kind:
8
- - # DESIGN|DESING PATENT(US)
9
- registrationOfficeCode:
10
- designatedCountries:
11
- - str (CountryCode)
12
- # rarely passed
13
- filingPlace:
14
-
15
- # some collections indicate that the application
16
- # originates from international filing and provide IR number
17
- applicationRefNumber:
18
- applicationRefOrigin:
19
-
20
- # can be deduced from appnum given office cc and (optional) appdate
21
- st13: # {{ Design.ApplicationNumber | st13('XX', appdate=... }}
22
-
23
- applicationNumber:
24
- # dates can be converted if not matching expected format
25
- applicationDate: # ex: {{ Design.ApplicationDate | convertdate('%Y%m%d') }}
26
-
27
- # some collections have registration number
28
- # equals application number when registered
29
- registrationNumber:
30
- # some collections we can guess registration date
31
- # from event list
32
- registrationDate:
33
- publicationDate:
34
- effectiveDate:
35
- defermentPeriod:
36
- expiryDate:
37
-
38
- applicationLanguageCode:
39
- # rarely passed
40
- secondLanguageCode:
41
-
42
- # status as is in the document
43
- officeStatus:
44
- # status as translated to gbdFormat
45
- gbdStatus: # (Ended|Expired|Pending|Registered|Unknown)
46
- # can also be the date of the last event in markevents if given
47
- statusDate:
48
-
49
- designDescription: #Init 57
50
- - languageCode:
51
- text:
3
+ type: # DESIGN
4
+ subtype: # (OPEN|SEALED) -INID 27 - SealedDepositIndicator
5
+ designGrouping: # SINGLE|MULTIPLE
6
+ designsCount:
7
+ kind:
8
+ - # INDUSTRIAL DESIGN|DESING PATENT(US)
9
+ registrationOfficeCode:
10
+ designatedCountries:
11
+ - str (CountryCode)
12
+
13
+ # some collections indicate that the application
14
+ # originates from international filing and provide IR number
15
+ referece:
16
+ application:
17
+ - number:
18
+ date:
19
+ office:
20
+ registration:
21
+ - number:
22
+ date:
23
+ office:
52
24
 
53
- productDisclaimer:
54
- - languageCode:
55
- text:
25
+ # rarely passed
26
+ filingPlace:
56
27
 
57
- designImageDetails:
58
- - name:
59
- legend:
60
- - string
61
-
62
- applicants:
63
- - identifier:
64
- kind:
65
- fullName:
66
- - languageCode:
67
- text:
68
- fullAddress:
69
- - languageCode:
70
- text:
71
- countryCode: # sometimes, country name is provided instead
72
-
73
- representatives:
74
- - identifier:
75
- kind:
76
- fullName:
77
- - languageCode:
78
- text:
79
- fullAddress:
80
- - languageCode:
81
- text:
82
- countryCode:
28
+ # can be deduced from appnum given office cc and (optional) appdate
29
+ st13: # {{ Design.ApplicationNumber | st13('XX', appdate=... }}
83
30
 
84
- designer:
85
- - identifier:
86
- kind:
87
- fullName:
88
- - languageCode:
89
- text:
90
- fullAddress:
91
- - languageCode:
92
- text:
93
- countryCode:
31
+ applicationNumber:
32
+ # dates can be converted if not matching expected format
33
+ applicationDate: # ex: {{ Design.ApplicationDate | convertdate('%Y%m%d') }}
34
+
35
+ # some collections have registration number
36
+ # equals application number when registered
37
+ registrationNumber:
38
+ # some collections we can guess registration date
39
+ # from event list
40
+ registrationDate:
41
+ publicationDate:
42
+ effectiveDate:
43
+ defermentExpiryDate:
44
+ expiryDate:
45
+
46
+ applicationLanguageCode:
47
+ # rarely passed
48
+ secondLanguageCode:
94
49
 
95
- correspondence:
50
+
51
+ applicants:
52
+ - identifier:
53
+ kind:
54
+ fullName:
55
+ - languageCode:
56
+ text:
57
+ firstName:
58
+ - languageCode:
59
+ text:
60
+ lastName:
61
+ - languageCode:
62
+ text:
63
+ middleName:
64
+ - languageCode:
65
+ text:
66
+ fullAddress:
67
+ - languageCode:
68
+ text:
69
+ cityName:
70
+ geographicRegionName:
71
+ countryCode:
72
+ postalCode:
73
+ countryCode: # sometimes, country name is provided instead
74
+
75
+ representatives:
76
+ - identifier:
77
+ kind:
96
78
  fullName:
97
79
  - languageCode:
98
80
  text:
81
+ firstName:
82
+ - languageCode:
83
+ text:
84
+ lastName:
85
+ - languageCode:
86
+ text:
87
+ middleName:
88
+ - languageCode:
89
+ text:
99
90
  fullAddress:
100
91
  - languageCode:
101
92
  text:
102
- countryCode:
93
+ cityName:
94
+ geographicRegionName:
95
+ countryCode:
96
+ postalCode:
97
+ countryCode: # sometimes, country name is provided instead
103
98
 
104
- productIndicationClasses:
105
- - kind: Locarno/US/CA/Etc
106
- version: #mostly
107
- code:
108
99
 
109
- productIndication:
100
+ correspondence:
101
+ fullName:
102
+ - languageCode:
103
+ text:
104
+ firstName:
105
+ - languageCode:
106
+ text:
107
+ lastName:
108
+ - languageCode:
109
+ text:
110
+ middleName:
111
+ - languageCode:
112
+ text:
113
+ fullAddress:
110
114
  - languageCode:
111
115
  text:
116
+ cityName:
117
+ geographicRegionName:
118
+ countryCode:
119
+ postalCode:
120
+ countryCode: # sometimes, country name is provided instead
112
121
 
113
- records:
114
- - identifier:
115
- officeKind:
116
- gbdKind:
117
- officeStatus:
118
- gbdStatus:
119
- statusDate:
120
-
121
- exhibition:
122
- - date:
123
- name:
124
- location:
125
-
126
- priorities:
127
- - countryCode:
128
- number:
129
- date:
130
- comment:
131
122
 
132
- publications:
133
- - identifier:
134
- date:
135
- section:
123
+ designClaim:
124
+ claims:
125
+ - languageCode:
126
+ claim:
127
+ designatedCountries:
128
+ - str
129
+ affectedDesigns:
130
+ allDesignsIndicator:
131
+
132
+ businessEntityStatusClaim:
133
+ - BusinessEntityStatusCategory:
134
+ DesignatedCountryCode:
135
+
136
+ designs:
137
+ - designPos:
138
+ # status as is in the document
139
+ officeStatus:
140
+ # status as translated to gbdFormat
141
+ gbdStatus: # (Ended|Expired|Pending|Registered|Unknown)
142
+ # can also be the date of the last event in markevents if given
143
+ statusDate:
144
+
145
+ productIndication:
146
+ - languageCode:
147
+ text:
136
148
 
137
- events:
138
- - officeKind:
139
- gbdKind: # Filed, Withdrawn, Rejected, Unknown
140
- date:
141
- # here goes extra information that is office specific and that is pertinent for us to retain.
142
- extra:
149
+ designDescription: #Init 57
150
+ - languageCode:
151
+ text:
152
+
153
+ productDisclaimer:
154
+ - languageCode:
155
+ text:
156
+
157
+ designImageDetails:
158
+ - name:
159
+ rank:
160
+ type:
161
+ legends:
162
+ - languageCode:
163
+ legend:
164
+
165
+ designer:
166
+ - identifier:
167
+ kind:
168
+ fullName:
169
+ - languageCode:
170
+ text:
171
+ firstName:
172
+ - languageCode:
173
+ text:
174
+ lastName:
175
+ - languageCode:
176
+ text:
177
+ middleName:
178
+ - languageCode:
179
+ text:
180
+ fullAddress:
181
+ - languageCode:
182
+ text:
183
+ cityName:
184
+ geographicRegionName:
185
+ countryCode:
186
+ postalCode:
187
+ countryCode: # sometimes, country name is provided instead
188
+
189
+ productIndicationClasses:
190
+ - kind: Locarno/US/CA/Etc
191
+ version: #mostly
192
+ classes:
193
+ - code:
194
+ description:
195
+
196
+ exhibition:
197
+ - date:
198
+ name:
199
+ location:
200
+
201
+ priorities:
202
+ - countryCode:
203
+ number:
204
+ date:
205
+ comment:
206
+ DASAccessCode:
207
+
208
+ exceptionLackNoveltyDeclaration:
209
+ - country:
210
+ legalBasis:
211
+
212
+ principalDesignRelations:
213
+ - principalDesignCategory:
214
+ documentIdentifier:
215
+ principalDesignReference:
216
+ designatedCountries:
217
+ - country:
218
+ legalBasis:
219
+
220
+ noveltyStatement:
221
+ - languageCode:
222
+ text:
223
+
224
+ publications:
225
+ - identifier:
226
+ date:
227
+ section:
228
+
229
+ # here goes extra information that is office specific and that is pertinent for us to retain.
230
+ extra:
143
231
 
144
232
 
145
233