wipo-gbd-transformation 1.1.48__py3-none-any.whl → 1.1.50__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 (93) hide show
  1. gbdtransformation/brands/attm/template.yml +1 -2
  2. gbdtransformation/brands/bgtm/template.yml +1 -1
  3. gbdtransformation/brands/catm/template.yml +1 -1
  4. gbdtransformation/brands/eetm/template.yml +1 -1
  5. gbdtransformation/brands/emtm/template.yml +1 -1
  6. gbdtransformation/brands/estm/template.yml +1 -1
  7. gbdtransformation/brands/frtm/template.yml +1 -1
  8. gbdtransformation/brands/istm/template.yml +1 -1
  9. gbdtransformation/brands/krtm/template.yml +1 -1
  10. gbdtransformation/brands/nztm/template.yml +1 -1
  11. gbdtransformation/brands/sgtm/filters.py +1 -1
  12. gbdtransformation/brands/sgtm/template.trademark.yml +1 -1
  13. gbdtransformation/brands/ustm/template.yml +1 -1
  14. gbdtransformation/designs/__init__.py +2 -3
  15. gbdtransformation/designs/bnid/__init__.py +5 -0
  16. gbdtransformation/designs/bnid/filters.py +49 -0
  17. gbdtransformation/designs/bnid/schema +80 -0
  18. gbdtransformation/designs/bnid/template.yml +1 -0
  19. gbdtransformation/designs/bwid/__init__.py +6 -0
  20. gbdtransformation/designs/bwid/filters.py +52 -0
  21. gbdtransformation/designs/bwid/schema +101 -0
  22. gbdtransformation/designs/bwid/template.yml +1 -0
  23. gbdtransformation/designs/crid/__init__.py +5 -0
  24. gbdtransformation/designs/crid/filters.py +50 -0
  25. gbdtransformation/designs/crid/schema +94 -0
  26. gbdtransformation/designs/crid/template.yml +1 -0
  27. gbdtransformation/designs/cuid/__init__.py +5 -0
  28. gbdtransformation/designs/cuid/filters.py +47 -0
  29. gbdtransformation/designs/cuid/schema +98 -0
  30. gbdtransformation/designs/cuid/template.yml +1 -0
  31. gbdtransformation/designs/egid/__init__.py +5 -0
  32. gbdtransformation/designs/egid/filters.py +49 -0
  33. gbdtransformation/designs/egid/schema +82 -0
  34. gbdtransformation/designs/egid/template.yml +1 -0
  35. gbdtransformation/designs/filters.py +13 -1
  36. gbdtransformation/designs/idid/__init__.py +5 -0
  37. gbdtransformation/designs/idid/filters.py +54 -0
  38. gbdtransformation/designs/idid/schema +102 -0
  39. gbdtransformation/designs/idid/template.yml +1 -0
  40. gbdtransformation/designs/ipas/filters.py +1 -1
  41. gbdtransformation/designs/ipas/template.yml +87 -77
  42. gbdtransformation/designs/joid/__init__.py +6 -0
  43. gbdtransformation/designs/joid/filters.py +49 -0
  44. gbdtransformation/designs/joid/schema +97 -0
  45. gbdtransformation/designs/joid/template.yml +1 -0
  46. gbdtransformation/designs/keid/__init__.py +5 -0
  47. gbdtransformation/designs/keid/filters.py +49 -0
  48. gbdtransformation/designs/keid/schema +99 -0
  49. gbdtransformation/designs/keid/template.yml +1 -0
  50. gbdtransformation/designs/khid/__init__.py +5 -0
  51. gbdtransformation/designs/khid/filters.py +50 -0
  52. gbdtransformation/designs/khid/schema +100 -0
  53. gbdtransformation/designs/khid/template.yml +1 -0
  54. gbdtransformation/designs/laid/__init__.py +5 -0
  55. gbdtransformation/designs/laid/filters.py +49 -0
  56. gbdtransformation/designs/laid/schema +94 -0
  57. gbdtransformation/designs/laid/template.yml +1 -0
  58. gbdtransformation/designs/mnid/__init__.py +6 -0
  59. gbdtransformation/designs/mnid/filters.py +49 -0
  60. gbdtransformation/designs/mnid/schema +98 -0
  61. gbdtransformation/designs/mnid/template.yml +1 -0
  62. gbdtransformation/designs/myid/__init__.py +5 -0
  63. gbdtransformation/designs/myid/filters.py +48 -0
  64. gbdtransformation/designs/myid/schema +95 -0
  65. gbdtransformation/designs/myid/template.yml +1 -0
  66. gbdtransformation/designs/phid/__init__.py +5 -0
  67. gbdtransformation/designs/phid/filters.py +58 -0
  68. gbdtransformation/designs/phid/schema +95 -0
  69. gbdtransformation/designs/phid/template.yml +1 -0
  70. gbdtransformation/designs/sgid/__init__.py +6 -0
  71. gbdtransformation/designs/sgid/filters.py +53 -0
  72. gbdtransformation/designs/sgid/schema +115 -0
  73. gbdtransformation/designs/sgid/template.yml +1 -0
  74. gbdtransformation/designs/thid/__init__.py +4 -0
  75. gbdtransformation/designs/thid/filters.py +52 -0
  76. gbdtransformation/designs/thid/schema +98 -0
  77. gbdtransformation/designs/thid/template.yml +1 -0
  78. gbdtransformation/designs/tnid/__init__.py +5 -0
  79. gbdtransformation/designs/tnid/filters.py +54 -0
  80. gbdtransformation/designs/tnid/schema +96 -0
  81. gbdtransformation/designs/tnid/template.yml +1 -0
  82. gbdtransformation/designs/woid/__init__.py +2 -0
  83. gbdtransformation/designs/woid/filters.py +342 -0
  84. gbdtransformation/designs/woid/schema +592 -0
  85. gbdtransformation/designs/woid/template.yml +342 -0
  86. gbdtransformation/designs/xxid/template.yml +211 -122
  87. gbdtransformation/execs.py +8 -2
  88. {wipo_gbd_transformation-1.1.48.dist-info → wipo_gbd_transformation-1.1.50.dist-info}/METADATA +2 -1
  89. {wipo_gbd_transformation-1.1.48.dist-info → wipo_gbd_transformation-1.1.50.dist-info}/RECORD +93 -25
  90. {wipo_gbd_transformation-1.1.48.dist-info → wipo_gbd_transformation-1.1.50.dist-info}/LICENSE.md +0 -0
  91. {wipo_gbd_transformation-1.1.48.dist-info → wipo_gbd_transformation-1.1.50.dist-info}/WHEEL +0 -0
  92. {wipo_gbd_transformation-1.1.48.dist-info → wipo_gbd_transformation-1.1.50.dist-info}/entry_points.txt +0 -0
  93. {wipo_gbd_transformation-1.1.48.dist-info → wipo_gbd_transformation-1.1.50.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,144 +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: # DESIGN|DESING PATENT(US)
8
- registrationOfficeCode:
9
- designatedCountries:
10
- - str (CountryCode)
11
- # rarely passed
12
- filingPlace:
13
-
14
- # some collections indicate that the application
15
- # originates from international filing and provide IR number
16
- applicationRefNumber:
17
- applicationRefOrigin:
18
-
19
- # can be deduced from appnum given office cc and (optional) appdate
20
- st13: # {{ Design.ApplicationNumber | st13('XX', appdate=... }}
21
-
22
- applicationNumber:
23
- # dates can be converted if not matching expected format
24
- applicationDate: # ex: {{ Design.ApplicationDate | convertdate('%Y%m%d') }}
25
-
26
- # some collections have registration number
27
- # equals application number when registered
28
- registrationNumber:
29
- # some collections we can guess registration date
30
- # from event list
31
- registrationDate:
32
- publicationDate:
33
- effectiveDate:
34
- defermentPeriod:
35
- expiryDate:
36
-
37
- applicationLanguageCode:
38
- # rarely passed
39
- secondLanguageCode:
40
-
41
- # status as is in the document
42
- officeStatus:
43
- # status as translated to gbdFormat
44
- gbdStatus: # (Ended|Expired|Pending|Registered|Unknown)
45
- # can also be the date of the last event in markevents if given
46
- statusDate:
47
-
48
- designDescription: #Init 57
49
- - languageCode:
50
- 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:
51
24
 
52
- productDisclaimer:
53
- - languageCode:
54
- text:
25
+ # rarely passed
26
+ filingPlace:
55
27
 
56
- designImageDetails:
57
- - name:
58
- legend:
59
- - string
60
-
61
- applicants:
62
- - identifier:
63
- kind:
64
- fullName:
65
- - languageCode:
66
- text:
67
- fullAddress:
68
- - languageCode:
69
- text:
70
- countryCode: # sometimes, country name is provided instead
71
-
72
- representatives:
73
- - identifier:
74
- kind:
75
- fullName:
76
- - languageCode:
77
- text:
78
- fullAddress:
79
- - languageCode:
80
- text:
81
- countryCode:
28
+ # can be deduced from appnum given office cc and (optional) appdate
29
+ st13: # {{ Design.ApplicationNumber | st13('XX', appdate=... }}
82
30
 
83
- designer:
84
- - identifier:
85
- kind:
86
- fullName:
87
- - languageCode:
88
- text:
89
- fullAddress:
90
- - languageCode:
91
- text:
92
- 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:
93
49
 
94
- 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:
95
78
  fullName:
96
79
  - languageCode:
97
80
  text:
81
+ firstName:
82
+ - languageCode:
83
+ text:
84
+ lastName:
85
+ - languageCode:
86
+ text:
87
+ middleName:
88
+ - languageCode:
89
+ text:
98
90
  fullAddress:
99
91
  - languageCode:
100
92
  text:
101
- countryCode:
93
+ cityName:
94
+ geographicRegionName:
95
+ countryCode:
96
+ postalCode:
97
+ countryCode: # sometimes, country name is provided instead
102
98
 
103
- productIndicationClasses:
104
- - kind: Locarno/US/CA/Etc
105
- version: #mostly
106
- code:
107
99
 
108
- 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:
109
114
  - languageCode:
110
115
  text:
116
+ cityName:
117
+ geographicRegionName:
118
+ countryCode:
119
+ postalCode:
120
+ countryCode: # sometimes, country name is provided instead
111
121
 
112
- records:
113
- - identifier:
114
- officeKind:
115
- gbdKind:
116
- officeStatus:
117
- gbdStatus:
118
- statusDate:
119
-
120
- exhibition:
121
- - date:
122
- name:
123
- location:
124
-
125
- priorities:
126
- - countryCode:
127
- number:
128
- date:
129
- comment:
130
122
 
131
- publications:
132
- - identifier:
133
- date:
134
- 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:
135
148
 
136
- events:
137
- - officeKind:
138
- gbdKind: # Filed, Withdrawn, Rejected, Unknown
139
- date:
140
- # here goes extra information that is office specific and that is pertinent for us to retain.
141
- 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:
142
231
 
143
232
 
144
233