Initial commit
|
@ -0,0 +1,39 @@
|
|||
![Alt text](http://news.kalenislims.com/wp/wp-content/uploads/2017/10/isologo-transparent.png)
|
||||
|
||||
[Kalenis LIMS & ERP](http://kalenislims.com/) is an open source solution designed in an integral way with the aim of supporting all laboratory processes, prioritizing the integrity, traceability and accessibility of information.
|
||||
|
||||
## Getting Started
|
||||
|
||||
These instructions will get you a copy of the project up and running.
|
||||
|
||||
### Prerequisites
|
||||
|
||||
You need a working [Tryton](http://www.tryton.org/) system. Follow the [first steps](http://doc.tryton.org/4.4/trytond/doc/index.html#first-steps) in order to install Tryton.
|
||||
|
||||
|
||||
### Installing
|
||||
|
||||
Copy the lims* directories to the trytond/modules directory.
|
||||
|
||||
To install a module you can use this command:
|
||||
|
||||
```
|
||||
trytond-admin -c <config file> -d <database name> -u <module name>
|
||||
```
|
||||
|
||||
|
||||
## Built With
|
||||
|
||||
* [Tryton](http://www.tryton.org/)
|
||||
|
||||
## Versioning
|
||||
|
||||
We follow [Tryton](http://www.tryton.org/) for versioning.
|
||||
|
||||
## License
|
||||
|
||||
See LICENSE file in each module
|
||||
|
||||
## Copyright
|
||||
|
||||
See COPYRIGHT file in each module
|
|
@ -0,0 +1 @@
|
|||
Version 4.4.0 - 2017-10-08
|
|
@ -0,0 +1,16 @@
|
|||
Copyright (C) 2017 Ignacio Parszyk <iparszyk@kalenislims.com>
|
||||
Copyright (C) 2013-2017 Sebastián Marró <smarro@kalenislims.com>
|
||||
Copyright (C) 2013-2016 Luis Falcon <falcon@gnu.org>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
@ -0,0 +1,674 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<http://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
|
@ -0,0 +1,271 @@
|
|||
# This file is part of lims module for Tryton.
|
||||
# The COPYRIGHT file at the top level of this repository contains
|
||||
# the full copyright notices and license terms.
|
||||
|
||||
from trytond.pool import Pool
|
||||
from .formula_parser import *
|
||||
from .configuration import *
|
||||
from .lims import *
|
||||
from .stock import *
|
||||
from .product import *
|
||||
from .party import *
|
||||
from report import *
|
||||
from wizard import *
|
||||
|
||||
|
||||
def register():
|
||||
Pool.register(
|
||||
FormulaParser,
|
||||
LimsLaboratory2,
|
||||
LimsNotebookView,
|
||||
LimsNotebookViewColumn,
|
||||
LimsUserRole,
|
||||
LimsUserRoleGroup,
|
||||
LimsPrinter,
|
||||
User,
|
||||
LimsUserLaboratory,
|
||||
LimsConfiguration,
|
||||
LimsConfigurationLaboratory,
|
||||
LimsLabWorkYear,
|
||||
LimsLabWorkYearSequence,
|
||||
LimsLaboratoryProfessional,
|
||||
LimsLaboratory,
|
||||
LimsLabMethod,
|
||||
LimsLabDeviceType,
|
||||
LimsLabDevice,
|
||||
LimsLabDeviceLaboratory,
|
||||
LimsProductType,
|
||||
LimsMatrix,
|
||||
LimsFormula,
|
||||
LimsFractionType,
|
||||
LimsLaboratoryCVCorrection,
|
||||
LimsFormulaVariable,
|
||||
LimsAnalysis,
|
||||
LimsTypification,
|
||||
LimsTypificationAditional,
|
||||
LimsTypificationReadOnly,
|
||||
LimsCalculatedTypification,
|
||||
LimsCalculatedTypificationReadOnly,
|
||||
LimsPackagingType,
|
||||
LimsAnalysisIncluded,
|
||||
LimsAnalysisDevice,
|
||||
LimsCertificationType,
|
||||
LimsTechnicalScope,
|
||||
LimsTechnicalScopeVersion,
|
||||
LimsTechnicalScopeVersionLine,
|
||||
LimsPackagingIntegrity,
|
||||
LimsEntrySuspensionReason,
|
||||
LimsEntry,
|
||||
LimsZone,
|
||||
LimsVariety,
|
||||
LimsSampleProducer,
|
||||
LimsSample,
|
||||
LimsFraction,
|
||||
LimsService,
|
||||
LimsConcentrationLevel,
|
||||
LimsEntryDetailAnalysis,
|
||||
LimsNotebook,
|
||||
LimsResultsReport,
|
||||
LimsPlanification,
|
||||
LimsNotebookLine,
|
||||
LimsNotebookLineAllFields,
|
||||
LimsNotebookLineProfessional,
|
||||
LimsRangeType,
|
||||
LimsResultsReportVersion,
|
||||
LimsResultsReportVersionDetail,
|
||||
LimsResultsReportVersionDetailLine,
|
||||
LimsAnalysisFamily,
|
||||
LimsAnalysisFamilyCertificant,
|
||||
LimsMatrixVariety,
|
||||
LimsLabDeviceTypeLabMethod,
|
||||
LimsAnalysisLaboratory,
|
||||
LimsAnalysisLabMethod,
|
||||
LimsNotebookLineLaboratoryProfessional,
|
||||
LimsEntryInvoiceContact,
|
||||
LimsEntryReportContact,
|
||||
LimsEntryAcknowledgmentContact,
|
||||
LimsVolumeConversion,
|
||||
LimsUomConversion,
|
||||
LimsRange,
|
||||
LimsControlTendency,
|
||||
LimsControlTendencyDetail,
|
||||
LimsControlTendencyDetailRule,
|
||||
LimsDuplicateSampleStart,
|
||||
LimsDuplicateSampleFromEntryStart,
|
||||
LimsCopyTypificationStart,
|
||||
LimsCopyCalculatedTypificationStart,
|
||||
LimsRelateAnalysisStart,
|
||||
LimsNotebookInitialConcentrationCalcStart,
|
||||
LimsNotebookResultsConversionStart,
|
||||
LimsNotebookLimitsValidationStart,
|
||||
LimsNotebookInternalRelationsCalc1Start,
|
||||
LimsNotebookInternalRelationsCalc1Relation,
|
||||
LimsNotebookInternalRelationsCalc1Variable,
|
||||
LimsNotebookInternalRelationsCalc2Start,
|
||||
LimsNotebookInternalRelationsCalc2Result,
|
||||
LimsNotebookInternalRelationsCalc2Relation,
|
||||
LimsNotebookInternalRelationsCalc2Variable,
|
||||
LimsNotebookInternalRelationsCalc2Process,
|
||||
LimsNotebookLoadResultsFormulaStart,
|
||||
LimsNotebookLoadResultsFormulaEmpty,
|
||||
LimsNotebookLoadResultsFormulaResult,
|
||||
LimsNotebookLoadResultsFormulaLine,
|
||||
LimsNotebookLoadResultsFormulaAction,
|
||||
LimsNotebookLoadResultsFormulaProcess,
|
||||
LimsNotebookLoadResultsFormulaVariable,
|
||||
LimsNotebookLoadResultsFormulaBeginning,
|
||||
LimsNotebookLoadResultsFormulaConfirm,
|
||||
LimsNotebookLoadResultsFormulaSit1,
|
||||
LimsNotebookLoadResultsFormulaSit2,
|
||||
LimsNotebookLoadResultsFormulaSit2Detail,
|
||||
LimsNotebookLoadResultsFormulaSit2DetailLine,
|
||||
LimsNotebookLoadResultsManualStart,
|
||||
LimsNotebookLoadResultsManualEmpty,
|
||||
LimsNotebookLoadResultsManualResult,
|
||||
LimsNotebookLoadResultsManualLine,
|
||||
LimsNotebookLoadResultsManualSit1,
|
||||
LimsNotebookLoadResultsManualSit2,
|
||||
LimsNotebookAddInternalRelationsStart,
|
||||
LimsNotebookAcceptLinesStart,
|
||||
LimsNotebookLineRepeatAnalysisStart,
|
||||
FractionsByLocationsStart,
|
||||
LimsNotebookResultsVerificationStart,
|
||||
LimsUncertaintyCalcStart,
|
||||
LimsNotebookPrecisionControlStart,
|
||||
LimsMeansDeviationsCalcStart,
|
||||
LimsMeansDeviationsCalcEmpty,
|
||||
LimsMeansDeviationsCalcResult,
|
||||
LimsControlResultLine,
|
||||
LimsControlResultLineDetail,
|
||||
LimsMeansDeviationsCalcResult2,
|
||||
LimsTendenciesAnalysisStart,
|
||||
LimsTendenciesAnalysisResult,
|
||||
LimsDivideReportsResult,
|
||||
LimsDivideReportsDetail,
|
||||
LimsDivideReportsProcess,
|
||||
LimsGenerateResultsReportStart,
|
||||
LimsGenerateResultsReportEmpty,
|
||||
LimsGenerateResultsReportResultAut,
|
||||
LimsGenerateResultsReportResultAutNotebook,
|
||||
LimsGenerateResultsReportResultAutNotebookLine,
|
||||
LimsGenerateResultsReportResultAutExcludedNotebook,
|
||||
LimsGenerateResultsReportResultAutExcludedNotebookLine,
|
||||
LimsGenerateResultsReportResultMan,
|
||||
LimsDuplicateAnalysisFamilyStart,
|
||||
LimsResultsReportAnnulationStart,
|
||||
LimsCountersampleStorageStart,
|
||||
LimsCountersampleStorageEmpty,
|
||||
LimsCountersampleStorageResult,
|
||||
LimsCountersampleStorageRevertStart,
|
||||
LimsCountersampleStorageRevertEmpty,
|
||||
LimsCountersampleStorageRevertResult,
|
||||
LimsCountersampleDischargeStart,
|
||||
LimsCountersampleDischargeEmpty,
|
||||
LimsCountersampleDischargeResult,
|
||||
LimsFractionDischargeStart,
|
||||
LimsFractionDischargeEmpty,
|
||||
LimsFractionDischargeResult,
|
||||
LimsFractionDischargeRevertStart,
|
||||
LimsFractionDischargeRevertEmpty,
|
||||
LimsFractionDischargeRevertResult,
|
||||
LimsCreateSampleStart,
|
||||
LimsCreateSampleService,
|
||||
LimsChangeInvoicePartyStart,
|
||||
LimsChangeInvoicePartyError,
|
||||
AddTypificationsStart,
|
||||
RemoveTypificationsStart,
|
||||
ChangeEstimatedDaysForResultsStart,
|
||||
LimsCountersampleStoragePrintStart,
|
||||
LimsCountersampleDischargePrintStart,
|
||||
PrintAnalysisPendingInformStart,
|
||||
Location,
|
||||
Move,
|
||||
ShipmentInternal,
|
||||
InventoryLine,
|
||||
Uom,
|
||||
UomCategory,
|
||||
Template,
|
||||
Party,
|
||||
Address,
|
||||
Company,
|
||||
PrintAnalysisCheckedPendingInformStart,
|
||||
module='lims', type_='model')
|
||||
Pool.register(
|
||||
LimsPrintAcknowledgmentOfReceipt,
|
||||
LimsEntryLabelsPrinter,
|
||||
LimsSampleLabelsPrinter,
|
||||
LimsPrintControlChart,
|
||||
LimsCountersampleStoragePrint,
|
||||
LimsCountersampleDischargePrint,
|
||||
PrintAnalysisPendingInform,
|
||||
LimsDuplicateSample,
|
||||
LimsDuplicateSampleFromEntry,
|
||||
LimsForwardAcknowledgmentOfReceipt,
|
||||
LimsCopyTypification,
|
||||
LimsCopyCalculatedTypification,
|
||||
LimsRelateAnalysis,
|
||||
LimsManageServices,
|
||||
LimsCompleteServices,
|
||||
LimsNotebookInitialConcentrationCalc,
|
||||
LimsNotebookLineInitialConcentrationCalc,
|
||||
LimsNotebookResultsConversion,
|
||||
LimsNotebookLineResultsConversion,
|
||||
LimsNotebookLimitsValidation,
|
||||
LimsNotebookLineLimitsValidation,
|
||||
LimsNotebookInternalRelationsCalc1,
|
||||
LimsNotebookLineInternalRelationsCalc1,
|
||||
LimsNotebookInternalRelationsCalc2,
|
||||
LimsNotebookLineInternalRelationsCalc2,
|
||||
LimsNotebookLoadResultsFormula,
|
||||
LimsNotebookLoadResultsManual,
|
||||
LimsNotebookAddInternalRelations,
|
||||
LimsNotebookAcceptLines,
|
||||
LimsNotebookLineAcceptLines,
|
||||
LimsNotebookLineUnacceptLines,
|
||||
LimsNotebookLineRepeatAnalysis,
|
||||
FractionsByLocations,
|
||||
LimsNotebookResultsVerification,
|
||||
LimsNotebookLineResultsVerification,
|
||||
LimsUncertaintyCalc,
|
||||
LimsNotebookLineUncertaintyCalc,
|
||||
LimsNotebookPrecisionControl,
|
||||
LimsNotebookLinePrecisionControl,
|
||||
LimsMeansDeviationsCalc,
|
||||
LimsTendenciesAnalysis,
|
||||
LimsDivideReports,
|
||||
LimsGenerateResultsReport,
|
||||
LimsPrintResultsReport,
|
||||
LimsDuplicateAnalysisFamily,
|
||||
LimsServiceResultsReport,
|
||||
LimsFractionResultsReport,
|
||||
LimsSampleResultsReport,
|
||||
LimsResultsReportSample,
|
||||
LimsResultsReportAnnulation,
|
||||
LimsCountersampleStorage,
|
||||
LimsCountersampleStorageRevert,
|
||||
LimsCountersampleDischarge,
|
||||
LimsFractionDischarge,
|
||||
LimsFractionDischargeRevert,
|
||||
LimsCreateSample,
|
||||
OpenNotebookLines,
|
||||
LimsCreateAnalysisProduct,
|
||||
LimsChangeInvoiceParty,
|
||||
OpenTypifications,
|
||||
AddTypifications,
|
||||
RemoveTypifications,
|
||||
ChangeEstimatedDaysForResults,
|
||||
PrintAnalysisCheckedPendingInform,
|
||||
module='lims', type_='wizard')
|
||||
Pool.register(
|
||||
LimsAcknowledgmentOfReceipt,
|
||||
LimsEntryDetail,
|
||||
LimsEntryLabels,
|
||||
LimsControlChartReport,
|
||||
LimsResultReport,
|
||||
LimsResultReportTranscription,
|
||||
LimsGlobalResultReport,
|
||||
LimsCountersampleStorageReport,
|
||||
LimsCountersampleDischargeReport,
|
||||
AnalysisPendingInform,
|
||||
AnalysisCheckedPendingInform,
|
||||
module='lims', type_='report')
|
|
@ -0,0 +1,487 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# This file is part of lims module for Tryton.
|
||||
# The COPYRIGHT file at the top level of this repository contains
|
||||
# the full copyright notices and license terms.
|
||||
|
||||
from trytond import backend
|
||||
from trytond.model import ModelSingleton, ModelView, ModelSQL, fields
|
||||
from trytond.pyson import Eval
|
||||
from trytond.transaction import Transaction
|
||||
from trytond.pool import Pool, PoolMeta
|
||||
from trytond.tools.multivalue import migrate_property
|
||||
from trytond.modules.company.model import (
|
||||
CompanyMultiValueMixin, CompanyValueMixin)
|
||||
|
||||
__all__ = ['LimsLaboratory2', 'LimsNotebookView', 'LimsNotebookViewColumn',
|
||||
'LimsUserRole', 'LimsUserRoleGroup', 'LimsPrinter', 'User',
|
||||
'LimsUserLaboratory', 'LimsConfiguration', 'LimsConfigurationLaboratory',
|
||||
'LimsLabWorkYear', 'LimsLabWorkYearSequence']
|
||||
sequence_names = [
|
||||
'entry_sequence', 'sample_sequence', 'service_sequence',
|
||||
'results_report_sequence']
|
||||
|
||||
|
||||
class LimsLaboratory2(ModelSQL):
|
||||
'Laboratory'
|
||||
__name__ = 'lims.laboratory'
|
||||
|
||||
|
||||
class LimsNotebookView(ModelSQL, ModelView):
|
||||
'Laboratory Notebook View'
|
||||
__name__ = 'lims.notebook.view'
|
||||
|
||||
name = fields.Char('Name', required=True)
|
||||
columns = fields.One2Many('lims.notebook.view.column', 'view', 'Columns',
|
||||
required=True)
|
||||
|
||||
|
||||
class LimsNotebookViewColumn(ModelSQL, ModelView):
|
||||
'Laboratory Notebook View Column'
|
||||
__name__ = 'lims.notebook.view.column'
|
||||
|
||||
view = fields.Many2One('lims.notebook.view', 'View', required=True,
|
||||
ondelete='CASCADE', select=True)
|
||||
field = fields.Many2One('ir.model.field', 'Field', required=True,
|
||||
domain=[('model.model', '=', 'lims.notebook.line')])
|
||||
sequence = fields.Integer('Sequence', required=True, select=True)
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super(LimsNotebookViewColumn, cls).__setup__()
|
||||
cls._order.insert(0, ('sequence', 'ASC'))
|
||||
|
||||
|
||||
class LimsUserRole(ModelSQL, ModelView):
|
||||
'User Role'
|
||||
__name__ = 'lims.user.role'
|
||||
|
||||
name = fields.Char('Name', required=True)
|
||||
groups = fields.Many2Many('lims.user.role-res.group',
|
||||
'role', 'group', 'Groups')
|
||||
|
||||
|
||||
class LimsUserRoleGroup(ModelSQL):
|
||||
'User Role - Group'
|
||||
__name__ = 'lims.user.role-res.group'
|
||||
|
||||
role = fields.Many2One('lims.user.role', 'Role',
|
||||
ondelete='CASCADE', select=True, required=True)
|
||||
group = fields.Many2One('res.group', 'Group',
|
||||
ondelete='CASCADE', select=True, required=True)
|
||||
|
||||
@classmethod
|
||||
def create(cls, vlist):
|
||||
role_groups = super(LimsUserRoleGroup, cls).create(vlist)
|
||||
cls._create_user_groups(role_groups)
|
||||
return role_groups
|
||||
|
||||
@classmethod
|
||||
def _create_user_groups(cls, role_groups):
|
||||
pool = Pool()
|
||||
User = pool.get('res.user')
|
||||
UserGroup = pool.get('res.user-res.group')
|
||||
|
||||
for role_group in role_groups:
|
||||
users = User.search([
|
||||
('role', '=', role_group.role),
|
||||
])
|
||||
for user in users:
|
||||
if not UserGroup.search([
|
||||
('user', '=', user),
|
||||
('group', '=', role_group.group),
|
||||
]):
|
||||
UserGroup.create([{
|
||||
'user': user,
|
||||
'group': role_group.group,
|
||||
}])
|
||||
|
||||
@classmethod
|
||||
def delete(cls, role_groups):
|
||||
cls._delete_user_groups(role_groups)
|
||||
super(LimsUserRoleGroup, cls).delete(role_groups)
|
||||
|
||||
@classmethod
|
||||
def _delete_user_groups(cls, role_groups):
|
||||
pool = Pool()
|
||||
User = pool.get('res.user')
|
||||
UserGroup = pool.get('res.user-res.group')
|
||||
|
||||
for role_group in role_groups:
|
||||
users = User.search([
|
||||
('role', '=', role_group.role),
|
||||
])
|
||||
if users:
|
||||
user_groups = UserGroup.search([
|
||||
('user', 'in', users),
|
||||
('group', '=', role_group.group),
|
||||
])
|
||||
if user_groups:
|
||||
UserGroup.delete(user_groups)
|
||||
|
||||
|
||||
class LimsPrinter(ModelSQL, ModelView):
|
||||
'Printer'
|
||||
__name__ = 'lims.printer'
|
||||
|
||||
name = fields.Char('Name', required=True)
|
||||
|
||||
|
||||
class User:
|
||||
__name__ = 'res.user'
|
||||
__metaclass__ = PoolMeta
|
||||
|
||||
notebook_view = fields.Many2One('lims.notebook.view', 'Notebook view')
|
||||
role = fields.Many2One('lims.user.role', 'Role')
|
||||
laboratories = fields.Many2Many('lims.user-laboratory',
|
||||
'user', 'laboratory', 'Laboratories')
|
||||
laboratory = fields.Many2One('lims.laboratory', 'Main Laboratory',
|
||||
domain=[('id', 'in', Eval('laboratories'))], depends=['laboratories'])
|
||||
printer = fields.Many2One('lims.printer', 'Printer')
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super(User, cls).__setup__()
|
||||
cls._context_fields.insert(0, 'laboratory')
|
||||
cls._context_fields.insert(0, 'laboratories')
|
||||
|
||||
@classmethod
|
||||
def create(cls, vlist):
|
||||
users = super(User, cls).create(vlist)
|
||||
cls._create_user_groups(users)
|
||||
return users
|
||||
|
||||
@classmethod
|
||||
def _create_user_groups(cls, users):
|
||||
pool = Pool()
|
||||
RoleGroup = pool.get('lims.user.role-res.group')
|
||||
UserGroup = pool.get('res.user-res.group')
|
||||
|
||||
for user in users:
|
||||
if user.role:
|
||||
role_groups = RoleGroup.search([
|
||||
('role', '=', user.role),
|
||||
])
|
||||
for role_group in role_groups:
|
||||
if not UserGroup.search([
|
||||
('user', '=', user),
|
||||
('group', '=', role_group.group),
|
||||
]):
|
||||
UserGroup.create([{
|
||||
'user': user,
|
||||
'group': role_group.group,
|
||||
}])
|
||||
|
||||
@classmethod
|
||||
def write(cls, *args):
|
||||
actions = iter(args)
|
||||
for users, vals in zip(actions, actions):
|
||||
if 'role' in vals:
|
||||
cls._update_user_groups(users, vals['role'])
|
||||
super(User, cls).write(*args)
|
||||
|
||||
@classmethod
|
||||
def _update_user_groups(cls, users, new_role=None):
|
||||
pool = Pool()
|
||||
RoleGroup = pool.get('lims.user.role-res.group')
|
||||
UserGroup = pool.get('res.user-res.group')
|
||||
|
||||
for user in users:
|
||||
# delete old groups
|
||||
if user.role:
|
||||
role_groups = RoleGroup.search([
|
||||
('role', '=', user.role),
|
||||
])
|
||||
for role_group in role_groups:
|
||||
user_groups = UserGroup.search([
|
||||
('user', '=', user),
|
||||
('group', '=', role_group.group),
|
||||
])
|
||||
if user_groups:
|
||||
UserGroup.delete(user_groups)
|
||||
# create new groups
|
||||
if new_role:
|
||||
role_groups = RoleGroup.search([
|
||||
('role', '=', new_role),
|
||||
])
|
||||
for role_group in role_groups:
|
||||
if not UserGroup.search([
|
||||
('user', '=', user),
|
||||
('group', '=', role_group.group),
|
||||
]):
|
||||
UserGroup.create([{
|
||||
'user': user,
|
||||
'group': role_group.group,
|
||||
}])
|
||||
|
||||
def get_status_bar(self, name):
|
||||
status = self.name
|
||||
if self.company:
|
||||
status = '%s - %s' % (self.company.rec_name, status)
|
||||
if self.laboratory:
|
||||
status += ' [%s]' % self.laboratory.rec_name
|
||||
return status
|
||||
|
||||
|
||||
class LimsUserLaboratory(ModelSQL):
|
||||
'User - Laboratory'
|
||||
__name__ = 'lims.user-laboratory'
|
||||
|
||||
user = fields.Many2One('res.user', 'User',
|
||||
ondelete='CASCADE', select=True, required=True)
|
||||
laboratory = fields.Many2One('lims.laboratory', 'Laboratory',
|
||||
ondelete='CASCADE', select=True, required=True)
|
||||
|
||||
|
||||
class LimsConfiguration(ModelSingleton, ModelSQL, ModelView):
|
||||
'Configuration'
|
||||
__name__ = 'lims.configuration'
|
||||
|
||||
fraction_product = fields.Many2One('product.product', 'Fraction product',
|
||||
states={'required': True})
|
||||
mail_ack_subject = fields.Char('Email subject of Acknowledgment of Samples'
|
||||
' Receipt',
|
||||
help="In the text will be added suffix with the entry report number")
|
||||
mail_ack_body = fields.Text('Email body of Acknowledgment of Samples'
|
||||
' Receipt')
|
||||
microbiology_laboratories = fields.Many2Many(
|
||||
'lims.configuration-laboratory', 'configuration',
|
||||
'laboratory', 'Microbiology Laboratories')
|
||||
default_notebook_view = fields.Many2One('lims.notebook.view',
|
||||
'Default Notebook view', required=True)
|
||||
brix_digits = fields.Integer('Brix digits')
|
||||
density_digits = fields.Integer('Density digits')
|
||||
soluble_solids_digits = fields.Integer('Soluble solids digits')
|
||||
rm_start_uom = fields.Many2One('product.uom', 'RM Start UoM',
|
||||
domain=[('category.lims_only_available', '=', True)])
|
||||
invoice_party_relation_type = fields.Many2One('party.relation.type',
|
||||
'Invoice Party Relation Type')
|
||||
email_qa = fields.Char('QA Email')
|
||||
analysis_product_category = fields.Many2One('product.category',
|
||||
'Analysis Product Category', states={'required': True})
|
||||
entry_confirm_background = fields.Boolean(
|
||||
'Confirm Entries in Background')
|
||||
|
||||
@staticmethod
|
||||
def default_brix_digits():
|
||||
return 2
|
||||
|
||||
@staticmethod
|
||||
def default_density_digits():
|
||||
return 2
|
||||
|
||||
@staticmethod
|
||||
def default_soluble_solids_digits():
|
||||
return 2
|
||||
|
||||
@staticmethod
|
||||
def default_entry_confirm_background():
|
||||
return False
|
||||
|
||||
|
||||
class LimsConfigurationLaboratory(ModelSQL):
|
||||
'Configuration - Laboratory'
|
||||
__name__ = 'lims.configuration-laboratory'
|
||||
|
||||
configuration = fields.Many2One('lims.configuration', 'Configuration',
|
||||
ondelete='CASCADE', select=True, required=True)
|
||||
laboratory = fields.Many2One('lims.laboratory', 'Laboratory',
|
||||
ondelete='CASCADE', select=True, required=True)
|
||||
|
||||
|
||||
class LimsLabWorkYear(ModelSQL, ModelView, CompanyMultiValueMixin):
|
||||
'Work Year'
|
||||
__name__ = 'lims.lab.workyear'
|
||||
_rec_name = 'code'
|
||||
|
||||
code = fields.Char('Code', required=True)
|
||||
start_date = fields.Date('Start date', required=True)
|
||||
end_date = fields.Date('End date', required=True)
|
||||
entry_sequence = fields.MultiValue(fields.Many2One(
|
||||
'ir.sequence.strict', 'Entry Sequence', required=True,
|
||||
domain=[
|
||||
('company', 'in',
|
||||
[Eval('context', {}).get('company', -1), None]),
|
||||
('code', '=', 'lims.entry'),
|
||||
]))
|
||||
sample_sequence = fields.MultiValue(fields.Many2One(
|
||||
'ir.sequence', 'Sample Sequence', required=True,
|
||||
domain=[
|
||||
('company', 'in',
|
||||
[Eval('context', {}).get('company', -1), None]),
|
||||
('code', '=', 'lims.sample'),
|
||||
]))
|
||||
service_sequence = fields.MultiValue(fields.Many2One(
|
||||
'ir.sequence', 'Service Sequence', required=True,
|
||||
domain=[
|
||||
('company', 'in',
|
||||
[Eval('context', {}).get('company', -1), None]),
|
||||
('code', '=', 'lims.service'),
|
||||
]))
|
||||
results_report_sequence = fields.MultiValue(fields.Many2One(
|
||||
'ir.sequence.strict', 'Results Report Sequence', required=True,
|
||||
domain=[
|
||||
('company', 'in',
|
||||
[Eval('context', {}).get('company', -1), None]),
|
||||
('code', '=', 'lims.results_report'),
|
||||
]))
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super(LimsLabWorkYear, cls).__setup__()
|
||||
cls._order.insert(0, ('start_date', 'ASC'))
|
||||
cls._error_messages.update({
|
||||
'workyear_overlaps': ('Work year "%(first)s" and '
|
||||
'"%(second)s" overlap.'),
|
||||
'no_workyear_date': 'No work year defined for "%s".',
|
||||
})
|
||||
|
||||
@classmethod
|
||||
def multivalue_model(cls, field):
|
||||
pool = Pool()
|
||||
if field in sequence_names:
|
||||
return pool.get('lims.lab.workyear.sequence')
|
||||
return super(LimsLabWorkYear, cls).multivalue_model(field)
|
||||
|
||||
@classmethod
|
||||
def default_entry_sequence(cls, **pattern):
|
||||
return cls.multivalue_model(
|
||||
'entry_sequence').default_entry_sequence()
|
||||
|
||||
@classmethod
|
||||
def default_sample_sequence(cls, **pattern):
|
||||
return cls.multivalue_model(
|
||||
'sample_sequence').default_sample_sequence()
|
||||
|
||||
@classmethod
|
||||
def default_service_sequence(cls, **pattern):
|
||||
return cls.multivalue_model(
|
||||
'service_sequence').default_service_sequence()
|
||||
|
||||
@classmethod
|
||||
def validate(cls, years):
|
||||
super(LimsLabWorkYear, cls).validate(years)
|
||||
for year in years:
|
||||
year.check_dates()
|
||||
|
||||
def check_dates(self):
|
||||
cursor = Transaction().connection.cursor()
|
||||
table = self.__table__()
|
||||
cursor.execute(*table.select(table.id,
|
||||
where=(((table.start_date <= self.start_date)
|
||||
& (table.end_date >= self.start_date))
|
||||
| ((table.start_date <= self.end_date)
|
||||
& (table.end_date >= self.end_date))
|
||||
| ((table.start_date >= self.start_date)
|
||||
& (table.end_date <= self.end_date)))
|
||||
& (table.id != self.id)))
|
||||
second_id = cursor.fetchone()
|
||||
if second_id:
|
||||
second = self.__class__(second_id[0])
|
||||
self.raise_user_error('workyear_overlaps', {
|
||||
'first': self.rec_name,
|
||||
'second': second.rec_name,
|
||||
})
|
||||
|
||||
@classmethod
|
||||
def find(cls, date=None, exception=True):
|
||||
pool = Pool()
|
||||
Lang = pool.get('ir.lang')
|
||||
Date = pool.get('ir.date')
|
||||
|
||||
if not date:
|
||||
date = Date.today()
|
||||
workyears = cls.search([
|
||||
('start_date', '<=', date),
|
||||
('end_date', '>=', date),
|
||||
], order=[('start_date', 'DESC')], limit=1)
|
||||
if not workyears:
|
||||
if exception:
|
||||
language = Transaction().language
|
||||
languages = Lang.search([('code', '=', language)])
|
||||
if not languages:
|
||||
languages = Lang.search([('code', '=', 'en')])
|
||||
language, = languages
|
||||
formatted = Lang.strftime(date, language.code, language.date)
|
||||
cls.raise_user_error('no_workyear_date', (formatted,))
|
||||
else:
|
||||
return None
|
||||
return workyears[0].id
|
||||
|
||||
def get_sequence(self, type):
|
||||
sequence = getattr(self, type + '_sequence')
|
||||
if sequence:
|
||||
return sequence
|
||||
|
||||
|
||||
class LimsLabWorkYearSequence(ModelSQL, CompanyValueMixin):
|
||||
'Work Year Sequence'
|
||||
__name__ = 'lims.lab.workyear.sequence'
|
||||
|
||||
workyear = fields.Many2One('lims.lab.workyear', 'Work Year',
|
||||
ondelete='CASCADE', select=True)
|
||||
entry_sequence = fields.Many2One('ir.sequence.strict',
|
||||
'Entry Sequence', depends=['company'], domain=[
|
||||
('company', 'in', [Eval('company', -1), None]),
|
||||
('code', '=', 'lims.entry'),
|
||||
])
|
||||
sample_sequence = fields.Many2One('ir.sequence',
|
||||
'Sample Sequence', depends=['company'], domain=[
|
||||
('company', 'in', [Eval('company', -1), None]),
|
||||
('code', '=', 'lims.sample'),
|
||||
])
|
||||
service_sequence = fields.Many2One('ir.sequence',
|
||||
'Service Sequence', depends=['company'], domain=[
|
||||
('company', 'in', [Eval('company', -1), None]),
|
||||
('code', '=', 'lims.service'),
|
||||
])
|
||||
results_report_sequence = fields.Many2One('ir.sequence.strict',
|
||||
'Results Report Sequence', depends=['company'], domain=[
|
||||
('company', 'in', [Eval('company', -1), None]),
|
||||
('code', '=', 'lims.results_report'),
|
||||
])
|
||||
|
||||
@classmethod
|
||||
def __register__(cls, module_name):
|
||||
TableHandler = backend.get('TableHandler')
|
||||
exist = TableHandler.table_exist(cls._table)
|
||||
|
||||
super(LimsLabWorkYearSequence, cls).__register__(module_name)
|
||||
|
||||
if not exist:
|
||||
cls._migrate_property([], [], [])
|
||||
|
||||
@classmethod
|
||||
def _migrate_property(cls, field_names, value_names, fields):
|
||||
field_names.extend(sequence_names)
|
||||
value_names.extend(sequence_names)
|
||||
fields.append('company')
|
||||
migrate_property(
|
||||
'lims.lab.workyear', field_names, cls, value_names,
|
||||
parent='workyear', fields=fields)
|
||||
|
||||
@classmethod
|
||||
def default_entry_sequence(cls):
|
||||
pool = Pool()
|
||||
ModelData = pool.get('ir.model.data')
|
||||
try:
|
||||
return ModelData.get_id('lims.entry', 'seq_entry')
|
||||
except KeyError:
|
||||
return None
|
||||
|
||||
@classmethod
|
||||
def default_sample_sequence(cls):
|
||||
pool = Pool()
|
||||
ModelData = pool.get('ir.model.data')
|
||||
try:
|
||||
return ModelData.get_id('lims.sample', 'seq_sample')
|
||||
except KeyError:
|
||||
return None
|
||||
|
||||
@classmethod
|
||||
def default_service_sequence(cls):
|
||||
pool = Pool()
|
||||
ModelData = pool.get('ir.model.data')
|
||||
try:
|
||||
return ModelData.get_id('lims.service', 'seq_service')
|
||||
except KeyError:
|
||||
return None
|
|
@ -0,0 +1,169 @@
|
|||
<?xml version="1.0"?>
|
||||
<tryton>
|
||||
<data>
|
||||
|
||||
<!-- Menu items in lims_menu.xml -->
|
||||
|
||||
<!-- Configuration -->
|
||||
|
||||
<record model="ir.ui.view" id="lims_configuration_view">
|
||||
<field name="model">lims.configuration</field>
|
||||
<field name="type">form</field>
|
||||
<field name="name">configuration_form</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.action.act_window" id="act_lims_configuration">
|
||||
<field name="name">Configuration</field>
|
||||
<field name="res_model">lims.configuration</field>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view" id="act_lims_configuration_view">
|
||||
<field name="sequence" eval="10"/>
|
||||
<field name="view" ref="lims_configuration_view"/>
|
||||
<field name="act_window" ref="act_lims_configuration"/>
|
||||
</record>
|
||||
|
||||
<!-- Work Year -->
|
||||
|
||||
<record model="ir.ui.view" id="lims_workyear_view_form">
|
||||
<field name="model">lims.lab.workyear</field>
|
||||
<field name="type">form</field>
|
||||
<field name="name">workyear_form</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="lims_workyear_view_list">
|
||||
<field name="model">lims.lab.workyear</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="name">workyear_list</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.action.act_window" id="act_lims_workyear_list">
|
||||
<field name="name">Work Years</field>
|
||||
<field name="res_model">lims.lab.workyear</field>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view" id="act_lims_workyear_view_list">
|
||||
<field name="sequence" eval="10"/>
|
||||
<field name="view" ref="lims_workyear_view_list"/>
|
||||
<field name="act_window" ref="act_lims_workyear_list"/>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view" id="act_lims_workyear_view_form">
|
||||
<field name="sequence" eval="20"/>
|
||||
<field name="view" ref="lims_workyear_view_form"/>
|
||||
<field name="act_window" ref="act_lims_workyear_list"/>
|
||||
</record>
|
||||
|
||||
<!-- Laboratory Notebook View -->
|
||||
|
||||
<record model="ir.ui.view" id="lims_notebook_views_view_form">
|
||||
<field name="model">lims.notebook.view</field>
|
||||
<field name="type">form</field>
|
||||
<field name="name">notebook_view_form</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="lims_notebook_views_view_list">
|
||||
<field name="model">lims.notebook.view</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="name">notebook_view_list</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.action.act_window" id="act_lims_notebook_views_list">
|
||||
<field name="name">Laboratory Notebook Views</field>
|
||||
<field name="res_model">lims.notebook.view</field>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view" id="act_lims_notebook_views_view_list">
|
||||
<field name="sequence" eval="10"/>
|
||||
<field name="view" ref="lims_notebook_views_view_list"/>
|
||||
<field name="act_window" ref="act_lims_notebook_views_list"/>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view" id="act_lims_notebook_views_view_form">
|
||||
<field name="sequence" eval="20"/>
|
||||
<field name="view" ref="lims_notebook_views_view_form"/>
|
||||
<field name="act_window" ref="act_lims_notebook_views_list"/>
|
||||
</record>
|
||||
|
||||
<!-- Laboratory Notebook View Column -->
|
||||
|
||||
<record model="ir.ui.view" id="lims_notebook_view_column_view_form">
|
||||
<field name="model">lims.notebook.view.column</field>
|
||||
<field name="type">form</field>
|
||||
<field name="name">notebook_view_column_form</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="lims_notebook_view_column_view_list">
|
||||
<field name="model">lims.notebook.view.column</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="name">notebook_view_column_list</field>
|
||||
</record>
|
||||
|
||||
<!-- User Role -->
|
||||
|
||||
<record model="ir.ui.view" id="lims_user_role_view_form">
|
||||
<field name="model">lims.user.role</field>
|
||||
<field name="type">form</field>
|
||||
<field name="name">user_role_form</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="lims_user_role_view_list">
|
||||
<field name="model">lims.user.role</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="name">user_role_list</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.action.act_window" id="act_lims_user_role_list">
|
||||
<field name="name">User Roles</field>
|
||||
<field name="res_model">lims.user.role</field>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view" id="act_lims_user_role_view_list">
|
||||
<field name="sequence" eval="10"/>
|
||||
<field name="view" ref="lims_user_role_view_list"/>
|
||||
<field name="act_window" ref="act_lims_user_role_list"/>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view" id="act_lims_user_role_view_form">
|
||||
<field name="sequence" eval="20"/>
|
||||
<field name="view" ref="lims_user_role_view_form"/>
|
||||
<field name="act_window" ref="act_lims_user_role_list"/>
|
||||
</record>
|
||||
|
||||
<!-- User -->
|
||||
|
||||
<record model="ir.ui.view" id="lims_user_view_form_preferences">
|
||||
<field name="model">res.user</field>
|
||||
<field name="inherit" ref="res.user_view_form_preferences"/>
|
||||
<field name="name">user_form_preferences</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="lims_user_view_form">
|
||||
<field name="model">res.user</field>
|
||||
<field name="inherit" ref="res.user_view_form"/>
|
||||
<field name="name">user_form</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="lims_user_view_list">
|
||||
<field name="model">res.user</field>
|
||||
<field name="inherit" ref="res.user_view_tree"/>
|
||||
<field name="name">user_list</field>
|
||||
</record>
|
||||
|
||||
<!-- Printer -->
|
||||
|
||||
<record model="ir.ui.view" id="lims_printer_view_form">
|
||||
<field name="model">lims.printer</field>
|
||||
<field name="type">form</field>
|
||||
<field name="name">printer_form</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="lims_printer_view_list">
|
||||
<field name="model">lims.printer</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="name">printer_list</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.action.act_window" id="act_printer_list">
|
||||
<field name="name">Printers</field>
|
||||
<field name="res_model">lims.printer</field>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view" id="act_printer_view_list">
|
||||
<field name="sequence" eval="10"/>
|
||||
<field name="view" ref="lims_printer_view_list"/>
|
||||
<field name="act_window" ref="act_printer_list"/>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view" id="act_printer_view_form">
|
||||
<field name="sequence" eval="20"/>
|
||||
<field name="view" ref="lims_printer_view_form"/>
|
||||
<field name="act_window" ref="act_printer_list"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</tryton>
|
|
@ -0,0 +1,69 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<tryton>
|
||||
<data noupdate="1">
|
||||
|
||||
<!-- Sequences for Entry -->
|
||||
|
||||
<record model="ir.sequence.type" id="seq_type_entry">
|
||||
<field name="name">Entry</field>
|
||||
<field name="code">lims.entry</field>
|
||||
</record>
|
||||
<record model="ir.sequence.type-res.group"
|
||||
id="seq_type_entry_group_admin">
|
||||
<field name="sequence_type" ref="seq_type_entry"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
</record>
|
||||
<record model="ir.sequence.strict" id="seq_entry">
|
||||
<field name="name">Entry</field>
|
||||
<field name="code">lims.entry</field>
|
||||
<field eval="7" name="padding"/>
|
||||
</record>
|
||||
|
||||
<!-- Sequences for Sample -->
|
||||
|
||||
<record model="ir.sequence.type" id="seq_type_sample">
|
||||
<field name="name">Sample</field>
|
||||
<field name="code">lims.sample</field>
|
||||
</record>
|
||||
<record model="ir.sequence.type-res.group"
|
||||
id="seq_type_sample_group_admin">
|
||||
<field name="sequence_type" ref="seq_type_sample"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
</record>
|
||||
<record model="ir.sequence" id="seq_sample">
|
||||
<field name="name">Sample</field>
|
||||
<field name="code">lims.sample</field>
|
||||
<field eval="7" name="padding"/>
|
||||
</record>
|
||||
|
||||
<!-- Sequences for Service -->
|
||||
|
||||
<record model="ir.sequence.type" id="seq_type_service">
|
||||
<field name="name">Service</field>
|
||||
<field name="code">lims.service</field>
|
||||
</record>
|
||||
<record model="ir.sequence.type-res.group"
|
||||
id="seq_type_service_group_admin">
|
||||
<field name="sequence_type" ref="seq_type_service"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
</record>
|
||||
<record model="ir.sequence" id="seq_service">
|
||||
<field name="name">Service</field>
|
||||
<field name="code">lims.service</field>
|
||||
<field eval="8" name="padding"/>
|
||||
</record>
|
||||
|
||||
<!-- Sequences for Results Report -->
|
||||
|
||||
<record model="ir.sequence.type" id="seq_type_results_report">
|
||||
<field name="name">Results Report</field>
|
||||
<field name="code">lims.results_report</field>
|
||||
</record>
|
||||
<record model="ir.sequence.type-res.group"
|
||||
id="seq_type_results_report_group_admin">
|
||||
<field name="sequence_type" ref="seq_type_results_report"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</tryton>
|
|
@ -0,0 +1,202 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# This file is part of lims module for Tryton.
|
||||
# The COPYRIGHT file at the top level of this repository contains
|
||||
# the full copyright notices and license terms.
|
||||
|
||||
from trytond.model import Model
|
||||
|
||||
__all__ = ['FormulaParser']
|
||||
|
||||
|
||||
class FormulaParser(Model):
|
||||
'Formula Parser'
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super(FormulaParser, cls).__setup__()
|
||||
cls._error_messages.update({
|
||||
'variable_redefine': 'Cannot redefine the value of "%s"',
|
||||
'unexpected_character': ('Unexpected character found: "%s"'
|
||||
' at index %s'),
|
||||
'division_zero': 'Division by 0 (occured at index %s)',
|
||||
'closing_parenthesis': ('No closing parenthesis found at'
|
||||
' character %s'),
|
||||
'unrecognized_variable': 'Unrecognized variable: "%s"',
|
||||
'extra_period': ('Found an extra period in a number at'
|
||||
' character %s'),
|
||||
'unexpected_end': 'Unexpected end found',
|
||||
'number_expected': ('Expecting to find a number at character'
|
||||
' %s but instead there is a "%s"'),
|
||||
})
|
||||
|
||||
def __init__(self, string, vars={}, id=None, **kwargs):
|
||||
self.string = string
|
||||
self.index = 0
|
||||
self.vars = {
|
||||
'pi': 3.141592653589793,
|
||||
'e': 2.718281828459045,
|
||||
}
|
||||
for var in vars.keys():
|
||||
if self.vars.get(var) is not None:
|
||||
self.raise_user_error('variable_redefine', (var,))
|
||||
self.vars[var] = vars[var]
|
||||
super(FormulaParser, self).__init__(id, **kwargs)
|
||||
|
||||
def getValue(self):
|
||||
value = self.parseExpression()
|
||||
self.skipWhitespace()
|
||||
if self.hasNext():
|
||||
self.raise_user_error('unexpected_character',
|
||||
(self.peek(), str(self.index)))
|
||||
return value
|
||||
|
||||
def peek(self):
|
||||
return self.string[self.index:self.index + 1]
|
||||
|
||||
def hasNext(self):
|
||||
return self.index < len(self.string)
|
||||
|
||||
def skipWhitespace(self):
|
||||
while self.hasNext():
|
||||
if self.peek() in ' \t\n\r':
|
||||
self.index += 1
|
||||
else:
|
||||
return
|
||||
|
||||
def parseExpression(self):
|
||||
return self.parseAddition()
|
||||
|
||||
def parseAddition(self):
|
||||
values = [self.parseMultiplication()]
|
||||
while True:
|
||||
self.skipWhitespace()
|
||||
char = self.peek()
|
||||
if char == '+':
|
||||
self.index += 1
|
||||
values.append(self.parseMultiplication())
|
||||
elif char == '-':
|
||||
self.index += 1
|
||||
values.append(-1 * self.parseMultiplication())
|
||||
else:
|
||||
break
|
||||
return sum(values)
|
||||
|
||||
def parseMultiplication(self):
|
||||
values = [self.parsePower()]
|
||||
while True:
|
||||
self.skipWhitespace()
|
||||
char = self.peek()
|
||||
if char == '*':
|
||||
self.index += 1
|
||||
values.append(self.parsePower())
|
||||
elif char == '/':
|
||||
#div_index = self.index
|
||||
self.index += 1
|
||||
denominator = self.parsePower()
|
||||
if denominator == 0:
|
||||
#self.raise_user_error('division_zero', (str(div_index),))
|
||||
return 0.0
|
||||
values.append(1.0 / denominator)
|
||||
else:
|
||||
break
|
||||
value = 1.0
|
||||
for factor in values:
|
||||
value *= factor
|
||||
return value
|
||||
|
||||
def parsePower(self):
|
||||
values = [self.parseParenthesis()]
|
||||
while True:
|
||||
self.skipWhitespace()
|
||||
char = self.peek()
|
||||
if char == '^':
|
||||
self.index += 1
|
||||
values.append(self.parseParenthesis())
|
||||
else:
|
||||
break
|
||||
value = values[0]
|
||||
for exponent in values[1:]:
|
||||
value **= exponent
|
||||
return value
|
||||
|
||||
def parseParenthesis(self):
|
||||
self.skipWhitespace()
|
||||
char = self.peek()
|
||||
if char == '(':
|
||||
self.index += 1
|
||||
value = self.parseExpression()
|
||||
self.skipWhitespace()
|
||||
if self.peek() != ')':
|
||||
self.raise_user_error('closing_parenthesis',
|
||||
(str(self.index),))
|
||||
self.index += 1
|
||||
return value
|
||||
else:
|
||||
return self.parseNegative()
|
||||
|
||||
def parseNegative(self):
|
||||
self.skipWhitespace()
|
||||
char = self.peek()
|
||||
if char == '-':
|
||||
self.index += 1
|
||||
return -1 * self.parseParenthesis()
|
||||
else:
|
||||
return self.parseValue()
|
||||
|
||||
def parseValue(self):
|
||||
self.skipWhitespace()
|
||||
char = self.peek()
|
||||
if char in '0123456789.':
|
||||
return self.parseNumber()
|
||||
else:
|
||||
return self.parseVariable()
|
||||
|
||||
def parseVariable(self):
|
||||
self.skipWhitespace()
|
||||
var = ''
|
||||
while self.hasNext():
|
||||
char = self.peek()
|
||||
if char.lower() in '_abcdefghijklmnopqrstuvwxyz0123456789':
|
||||
var += char
|
||||
self.index += 1
|
||||
else:
|
||||
break
|
||||
|
||||
value = self.vars.get(var, None)
|
||||
if value is None:
|
||||
self.raise_user_error('unrecognized_variable', (var,))
|
||||
if value == '':
|
||||
return float(0)
|
||||
try:
|
||||
value = float(value)
|
||||
except (ValueError):
|
||||
return float(0)
|
||||
return value
|
||||
|
||||
def parseNumber(self):
|
||||
self.skipWhitespace()
|
||||
strValue = ''
|
||||
decimal_found = False
|
||||
char = ''
|
||||
|
||||
while self.hasNext():
|
||||
char = self.peek()
|
||||
if char == '.':
|
||||
if decimal_found:
|
||||
self.raise_user_error('extra_period', (str(self.index),))
|
||||
decimal_found = True
|
||||
strValue += '.'
|
||||
elif char in '0123456789':
|
||||
strValue += char
|
||||
else:
|
||||
break
|
||||
self.index += 1
|
||||
|
||||
if len(strValue) == 0:
|
||||
if char == '':
|
||||
self.raise_user_error('unexpected_end')
|
||||
else:
|
||||
self.raise_user_error('number_expected',
|
||||
(str(self.index), char))
|
||||
|
||||
return float(strValue)
|
|
@ -0,0 +1,2 @@
|
|||
lab_icon : Leonardo D'Acchille - GNU Solidario (CC-SA 3.0)
|
||||
execute_icon : Leonardo D'Acchille - GNU Solidario (CC-SA 3.0)
|
|
@ -0,0 +1,38 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 97 97" style="enable-background:new 0 0 97 97;" xml:space="preserve">
|
||||
<path id="XMLID_3_" style="fill:#3F578D;" d="M6.062,90.938c0-4.041,0-8.084,0-12.125c2.021-0.002,6.041,0.002,8.063,0
|
||||
c0-2.021,0-4.041,0-6.063c-2.021-0.002-6.041,0.002-8.063,0c0-4.043,0-8.084,0-12.125c2.021-0.002,6.041,0.002,8.063,0
|
||||
c0-2.021,0-4.041,0-6.062c-2.021-0.002-6.041,0.002-8.063,0c0-4.043,0-8.084,0-12.125c2.021-0.002,6.041,0.002,8.063,0
|
||||
c0-2.021,0-4.041,0-6.063c-2.021-0.002-6.041,0.002-8.063,0c0-4.041,0-8.084,0-12.125c2.021-0.002,6.041,0.002,8.063,0
|
||||
c0-2.021,0-4.041,0-6.062c-2.021-0.002-6.041,0.002-8.063,0c0-4.041,0-8.082,0-12.125c2.021-0.002,6.041,0.002,8.063,0
|
||||
c0-2.022,0-4.041,0-6.063H0v97h97v-6.062C66.687,90.938,36.375,90.938,6.062,90.938z"/>
|
||||
<g id="XMLID_30_">
|
||||
<circle id="XMLID_33_" style="fill:#00A3D3;" cx="42.071" cy="46.017" r="5.124"/>
|
||||
<circle id="XMLID_34_" style="fill:#00A3D3;" cx="42.071" cy="56.876" r="4.18"/>
|
||||
<circle id="XMLID_35_" style="fill:#00A3D3;" cx="42.071" cy="67.949" r="3.062"/>
|
||||
<circle id="XMLID_36_" style="fill:#00A3D3;" cx="42.071" cy="79.768" r="2.014"/>
|
||||
<circle id="XMLID_37_" style="fill:#00A3D3;" cx="53.071" cy="46.017" r="5.124"/>
|
||||
<circle id="XMLID_38_" style="fill:#00A3D3;" cx="53.071" cy="56.876" r="4.18"/>
|
||||
<circle id="XMLID_39_" style="fill:#00A3D3;" cx="53.071" cy="67.949" r="3.062"/>
|
||||
<circle id="XMLID_40_" style="fill:#00A3D3;" cx="53.071" cy="79.768" r="2.014"/>
|
||||
<path id="XMLID_43_" style="fill:#00A3D3;" d="M66.079,28.159c2.292-0.824,3.934-3.01,3.934-5.586c0-1.623-0.652-3.092-1.707-4.164
|
||||
c1.192-1.126,1.939-2.716,1.939-4.485c0-3.41-2.764-6.174-6.174-6.174c-2.403,0-4.48,1.375-5.5,3.379
|
||||
c-1.02-2.004-3.097-3.379-5.5-3.379s-4.48,1.375-5.5,3.379c-1.02-2.004-3.097-3.379-5.5-3.379c-3.41,0-6.174,2.764-6.174,6.174
|
||||
c0,1.769,0.748,3.359,1.939,4.485c-1.055,1.072-1.707,2.542-1.707,4.164c0,2.576,1.642,4.762,3.934,5.586
|
||||
c-2.332,0.827-4.005,3.046-4.005,5.662c0,3.32,2.692,6.012,6.012,6.012c2.458,0,4.568-1.477,5.5-3.589
|
||||
c0.932,2.113,3.042,3.589,5.5,3.589s4.568-1.477,5.5-3.589c0.932,2.113,3.042,3.589,5.5,3.589c3.32,0,6.012-2.692,6.012-6.012
|
||||
C70.083,31.206,68.41,28.987,66.079,28.159z M58.571,16.719c0.323,0.635,0.752,1.205,1.265,1.69
|
||||
c-0.539,0.548-0.97,1.199-1.265,1.922c-0.295-0.723-0.727-1.374-1.265-1.922C57.819,17.924,58.248,17.354,58.571,16.719z
|
||||
M47.571,16.719c0.323,0.635,0.752,1.205,1.265,1.69c-0.539,0.548-0.97,1.199-1.265,1.922c-0.295-0.723-0.727-1.374-1.265-1.922
|
||||
C46.819,17.924,47.248,17.354,47.571,16.719z M47.571,31.398c-0.665-1.507-1.93-2.684-3.492-3.239
|
||||
c1.585-0.57,2.858-1.79,3.492-3.343c0.634,1.553,1.907,2.773,3.492,3.343C49.501,28.714,48.236,29.891,47.571,31.398z
|
||||
M58.571,31.398c-0.665-1.507-1.93-2.684-3.492-3.239c1.585-0.57,2.858-1.79,3.492-3.343c0.634,1.553,1.907,2.773,3.492,3.343
|
||||
C60.501,28.714,59.236,29.891,58.571,31.398z"/>
|
||||
<circle id="XMLID_47_" style="fill:#00A3D3;" cx="64.071" cy="46.017" r="5.124"/>
|
||||
<circle id="XMLID_48_" style="fill:#00A3D3;" cx="64.071" cy="56.876" r="4.18"/>
|
||||
<circle id="XMLID_49_" style="fill:#00A3D3;" cx="64.071" cy="67.949" r="3.062"/>
|
||||
<circle id="XMLID_50_" style="fill:#00A3D3;" cx="64.071" cy="79.768" r="2.014"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.3 KiB |
|
@ -0,0 +1,104 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 97 97" style="enable-background:new 0 0 97 97;" xml:space="preserve">
|
||||
<g id="XMLID_6_">
|
||||
<circle id="XMLID_4_" style="fill:#FFFFFF;" cx="34.317" cy="34.309" r="22.285"/>
|
||||
<g id="XMLID_14_">
|
||||
<g id="XMLID_17_">
|
||||
<linearGradient id="XMLID_15_" gradientUnits="userSpaceOnUse" x1="10.071" y1="10.0255" x2="58.638" y2="58.5925">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_18_" style="fill:url(#XMLID_15_);" d="M16.288,5.563C16.004,4.388,16.7,3.08,17.834,2.658
|
||||
c2.035-0.826,4.07-1.644,6.108-2.462c1.072-0.471,2.449-0.052,3.072,0.941c1.184,1.912,2.359,3.83,3.54,5.743
|
||||
c2.623-0.36,5.295-0.324,7.913,0.056c1.111-1.743,2.227-3.484,3.338-5.227c0.392-0.717,1.019-1.35,1.851-1.509
|
||||
c0.644-0.164,1.313-0.002,1.896,0.288c1.925,0.823,3.855,1.639,5.781,2.458c1.083,0.472,1.728,1.763,1.418,2.91
|
||||
c-0.533,2.155-1.029,4.321-1.576,6.472c2.032,1.612,3.891,3.452,5.429,5.548c2.19-0.484,4.383-0.956,6.575-1.442
|
||||
c1.104-0.246,2.332,0.365,2.762,1.419c0.85,2.077,1.683,4.161,2.52,6.243c0.474,1.069,0.095,2.441-0.892,3.08
|
||||
c-1.928,1.209-3.891,2.363-5.816,3.575c0.324,2.553,0.305,5.155-0.085,7.7c1.906,1.244,3.835,2.451,5.743,3.689
|
||||
c0.956,0.66,1.332,2.014,0.86,3.075c-0.868,2.034-1.73,4.069-2.6,6.101c-0.472,1.131-1.829,1.759-3,1.415
|
||||
c-2.12-0.531-4.256-1.003-6.371-1.556c-1.629,2.021-3.466,3.889-5.56,5.43c0.472,2.183,0.962,4.363,1.426,6.549
|
||||
c0.269,1.155-0.402,2.432-1.507,2.865c-2.09,0.848-4.178,1.699-6.276,2.525c-1.075,0.41-2.387-0.053-2.982-1.032
|
||||
c-1.16-1.914-2.338-3.818-3.495-5.733c-2.505,0.328-5.054,0.309-7.556-0.046c-1.202,1.883-2.413,3.763-3.62,5.644
|
||||
c-0.472,0.783-1.4,1.242-2.308,1.182c-0.592-0.029-1.122-0.322-1.658-0.546c-1.712-0.726-3.422-1.457-5.133-2.185
|
||||
c-0.845-0.305-1.493-1.084-1.628-1.974c-0.121-0.656,0.123-1.297,0.26-1.931c0.448-1.833,0.869-3.674,1.352-5.499
|
||||
c-2.032-1.611-3.92-3.421-5.464-5.514c-2.19,0.476-4.379,0.959-6.572,1.426c-1.173,0.295-2.494-0.402-2.914-1.537
|
||||
c-0.823-2.041-1.649-4.081-2.467-6.124c-0.424-1.008-0.105-2.277,0.774-2.935c1.944-1.258,3.938-2.436,5.901-3.662
|
||||
c-0.368-2.564-0.329-5.174,0.015-7.737c-1.912-1.231-3.83-2.449-5.737-3.688c-0.961-0.633-1.35-1.976-0.9-3.03
|
||||
c0.86-2.04,1.73-4.075,2.598-6.111c0.432-1.085,1.688-1.761,2.83-1.496c2.193,0.509,4.375,1.067,6.57,1.572
|
||||
c1.561-2.049,3.393-3.902,5.465-5.437C17.247,9.954,16.752,7.762,16.288,5.563z M24.734,16.199
|
||||
c-2.056,1.086-3.926,2.522-5.499,4.234c-3.168,3.439-5.096,7.98-5.376,12.647c-0.262,4.189,0.825,8.44,3.03,12.011
|
||||
c2.342,3.811,5.979,6.801,10.165,8.375c4.062,1.557,8.628,1.766,12.81,0.568c4.578-1.27,8.667-4.195,11.347-8.117
|
||||
c2.913-4.22,4.159-9.56,3.375-14.632c-0.626-4.222-2.605-8.237-5.597-11.285c-3.338-3.446-7.932-5.645-12.708-6.09
|
||||
C32.317,13.511,28.254,14.342,24.734,16.199z"/>
|
||||
</g>
|
||||
<linearGradient id="XMLID_21_" gradientUnits="userSpaceOnUse" x1="24.3424" y1="24.3354" x2="44.2932" y2="44.2862">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_16_" style="fill:url(#XMLID_21_);" d="M28.049,21.671c2.764-1.363,5.977-1.815,9.002-1.197
|
||||
c3.178,0.62,6.124,2.376,8.17,4.888c2.172,2.637,3.341,6.086,3.193,9.5c-0.118,3.123-1.313,6.191-3.339,8.571
|
||||
c-1.778,2.119-4.207,3.673-6.865,4.432c-3.154,0.927-6.634,0.678-9.631-0.672c-2.906-1.279-5.35-3.581-6.792-6.411
|
||||
c-1.472-2.837-1.948-6.183-1.285-9.312C21.343,27.276,24.2,23.547,28.049,21.671z"/>
|
||||
</g>
|
||||
<linearGradient id="XMLID_22_" gradientUnits="userSpaceOnUse" x1="28.2838" y1="28.2926" x2="40.3936" y2="40.4024">
|
||||
<stop offset="0" style="stop-color:#FFFFFF"/>
|
||||
<stop offset="0.5" style="stop-color:#FFFFFF;stop-opacity:0"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_2_" style="fill:url(#XMLID_22_);" d="M33.679,25.809c1.866-0.14,3.777,0.335,5.34,1.369
|
||||
c1.649,1.07,2.909,2.728,3.491,4.607c0.625,1.978,0.5,4.185-0.359,6.074c-0.775,1.732-2.145,3.188-3.825,4.068
|
||||
c-1.482,0.789-3.203,1.113-4.872,0.937c-1.987-0.194-3.889-1.124-5.27-2.564c-1.346-1.38-2.2-3.231-2.369-5.152
|
||||
c-0.185-1.932,0.307-3.923,1.39-5.535C28.63,27.442,31.086,25.991,33.679,25.809z"/>
|
||||
</g>
|
||||
<g id="XMLID_1_">
|
||||
<circle id="XMLID_5_" style="fill:#FFFFFF;" cx="74.688" cy="74.664" r="14.183"/>
|
||||
<g id="XMLID_3_">
|
||||
<g id="XMLID_10_">
|
||||
<linearGradient id="XMLID_23_" gradientUnits="userSpaceOnUse" x1="58.8934" y1="58.8903" x2="90.458" y2="90.4549">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_11_" style="fill:url(#XMLID_23_);" d="M57.306,62.34c-0.448-0.613-0.36-1.539,0.196-2.057
|
||||
c0.981-0.969,1.964-1.934,2.948-2.899c0.508-0.531,1.408-0.62,2.008-0.194c1.147,0.823,2.29,1.653,3.436,2.477
|
||||
c1.434-0.841,2.992-1.464,4.602-1.874c0.224-1.279,0.452-2.556,0.676-3.835c0.055-0.51,0.266-1.028,0.71-1.321
|
||||
c0.334-0.25,0.761-0.317,1.169-0.29c1.315,0.013,2.63,0.021,3.944,0.032c0.742,0.013,1.427,0.606,1.523,1.346
|
||||
c0.21,1.378,0.445,2.753,0.646,4.132c1.567,0.445,3.088,1.065,4.484,1.909c1.153-0.808,2.311-1.61,3.465-2.42
|
||||
c0.581-0.409,1.44-0.35,1.943,0.157c0.993,0.999,1.978,2.007,2.965,3.013c0.532,0.506,0.643,1.393,0.225,2.001
|
||||
c-0.827,1.165-1.686,2.308-2.511,3.474c0.803,1.402,1.419,2.916,1.805,4.485c1.405,0.263,2.814,0.497,4.219,0.755
|
||||
c0.713,0.152,1.257,0.847,1.239,1.576c-0.013,1.388-0.023,2.776-0.038,4.164c-0.001,0.77-0.636,1.461-1.399,1.543
|
||||
c-1.357,0.203-2.709,0.443-4.069,0.632c-0.458,1.565-1.073,3.09-1.915,4.488c0.799,1.152,1.609,2.298,2.405,3.454
|
||||
c0.434,0.605,0.353,1.507-0.184,2.024c-1.007,0.995-2.013,1.991-3.031,2.976c-0.525,0.497-1.397,0.544-1.978,0.12
|
||||
c-1.134-0.83-2.275-1.65-3.407-2.482c-1.373,0.794-2.856,1.397-4.392,1.794c-0.243,1.381-0.492,2.763-0.739,4.145
|
||||
c-0.085,0.568-0.512,1.058-1.053,1.242c-0.35,0.126-0.728,0.084-1.093,0.083c-1.168-0.008-2.335-0.02-3.503-0.03
|
||||
c-0.564,0.027-1.127-0.269-1.42-0.752c-0.228-0.351-0.241-0.782-0.315-1.182c-0.182-1.171-0.382-2.34-0.54-3.514
|
||||
c-1.566-0.444-3.097-1.039-4.496-1.881c-1.155,0.804-2.308,1.611-3.467,2.41c-0.609,0.454-1.543,0.368-2.06-0.189
|
||||
c-0.969-0.985-1.939-1.969-2.906-2.957c-0.489-0.482-0.61-1.295-0.258-1.888c0.824-1.197,1.696-2.361,2.54-3.545
|
||||
c-0.831-1.398-1.437-2.921-1.855-4.49c-1.405-0.253-2.811-0.497-4.215-0.756c-0.71-0.135-1.259-0.82-1.252-1.54
|
||||
c0.007-1.39,0.021-2.779,0.034-4.169c-0.011-0.733,0.554-1.428,1.28-1.549c1.394-0.233,2.794-0.435,4.188-0.671
|
||||
c0.411-1.564,1.027-3.08,1.859-4.469C58.92,64.655,58.105,63.503,57.306,62.34z M64.765,66.472
|
||||
c-0.93,1.125-1.669,2.408-2.168,3.78c-1.008,2.757-1.032,5.855-0.07,8.628c0.857,2.492,2.512,4.695,4.65,6.234
|
||||
c2.276,1.645,5.105,2.503,7.912,2.408c2.73-0.076,5.428-1.054,7.565-2.757c2.348-1.839,4.015-4.52,4.624-7.44
|
||||
c0.673-3.149,0.108-6.545-1.568-9.297c-1.38-2.297-3.495-4.148-5.964-5.195c-2.766-1.194-5.959-1.362-8.836-0.47
|
||||
C68.514,63.087,66.359,64.547,64.765,66.472z"/>
|
||||
</g>
|
||||
<linearGradient id="XMLID_24_" gradientUnits="userSpaceOnUse" x1="68.4217" y1="68.402" x2="80.9462" y2="80.9266">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_9_" style="fill:url(#XMLID_24_);" d="M68.006,68.846c1.274-1.456,3.028-2.492,4.931-2.863
|
||||
c1.992-0.406,4.123-0.098,5.915,0.866c1.895,1.006,3.403,2.724,4.14,4.739c0.684,1.839,0.73,3.906,0.129,5.774
|
||||
c-0.52,1.657-1.555,3.143-2.913,4.224c-1.606,1.298-3.683,1.991-5.746,1.931c-1.993-0.042-3.965-0.788-5.483-2.081
|
||||
c-1.537-1.29-2.619-3.116-2.989-5.09C65.467,73.712,66.226,70.861,68.006,68.846z"/>
|
||||
</g>
|
||||
|
||||
<linearGradient id="XMLID_25_" gradientUnits="userSpaceOnUse" x1="74.3901" y1="68.1402" x2="78.4952" y2="78.0813" gradientTransform="matrix(0.9235 -0.3837 0.3837 0.9235 -23.9637 36.4842)">
|
||||
<stop offset="0" style="stop-color:#FFFFFF"/>
|
||||
<stop offset="0.5" style="stop-color:#FFFFFF;stop-opacity:0"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_7_" style="fill:url(#XMLID_25_);" d="M72.239,69.877c1.048-0.531,2.271-0.716,3.426-0.493
|
||||
c1.214,0.223,2.344,0.881,3.134,1.83c0.839,0.996,1.298,2.306,1.255,3.608c-0.032,1.191-0.475,2.365-1.238,3.28
|
||||
c-0.669,0.815-1.589,1.417-2.599,1.717c-1.199,0.366-2.526,0.285-3.674-0.217c-1.113-0.476-2.054-1.343-2.615-2.416
|
||||
c-0.573-1.076-0.767-2.349-0.528-3.544C69.706,72.04,70.78,70.607,72.239,69.877z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 8.3 KiB |
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 97 97" style="enable-background:new 0 0 97 97;" xml:space="preserve">
|
||||
<g id="XMLID_9_">
|
||||
<path id="XMLID_11_" style="fill:#3F578D;" d="M97,97V82.875c-2.021,0-4.041,0-6.063,0c-0.002,2.021,0.002,6.041,0,8.063
|
||||
c-4.043,0-8.084,0-12.125,0c-0.002-2.021,0.002-6.041,0-8.063c-2.021,0-4.041,0-6.063,0c-0.002,2.021,0.002,6.041,0,8.063
|
||||
c-4.041,0-8.084,0-12.125,0c-0.002-2.021,0.002-6.041,0-8.063c-2.021,0-4.041,0-6.063,0c-0.002,2.021,0.002,6.041,0,8.063
|
||||
c-4.041,0-8.082,0-12.125,0c-0.002-2.021,0.002-6.041,0-8.063c-2.021,0-4.041,0-6.063,0c-0.002,2.021,0.002,6.041,0,8.063
|
||||
c-4.041,0-8.082,0-12.125,0c-0.002-2.021,0.002-6.041,0-8.063c-2.021,0-4.041,0-6.063,0c-0.002,2.021,0.002,6.041,0,8.063
|
||||
c-4.041,0-8.084,0-12.125,0c0-30.313,0-60.625,0-90.938L0,0l0,97H97z"/>
|
||||
</g>
|
||||
<g id="XMLID_2_">
|
||||
<path id="XMLID_8_" style="fill:#3F578D;" d="M48.92,27.54c2.479,0,4.5-2.01,4.5-4.5c0-2.48-2.021-4.5-4.5-4.5
|
||||
c-2.49,0-4.5,2.02-4.5,4.5C44.42,25.53,46.43,27.54,48.92,27.54z"/>
|
||||
<path id="XMLID_13_" style="fill:#3F578D;" d="M48.92,63.54c-2.49,0-4.5,2.02-4.5,4.5c0,2.49,2.01,4.5,4.5,4.5
|
||||
c2.479,0,4.5-2.01,4.5-4.5C53.42,65.56,51.399,63.54,48.92,63.54z"/>
|
||||
<path id="XMLID_14_" style="fill:#3F578D;" d="M48.92,33.54c-2.49,0-4.5,2.02-4.5,4.5c0,2.49,2.01,4.5,4.5,4.5
|
||||
c2.479,0,4.5-2.01,4.5-4.5C53.42,35.56,51.399,33.54,48.92,33.54z"/>
|
||||
<path id="XMLID_15_" style="fill:#3F578D;" d="M48.92,48.54c-2.49,0-4.5,2.02-4.5,4.5c0,2.49,2.01,4.5,4.5,4.5
|
||||
c2.479,0,4.5-2.01,4.5-4.5C53.42,50.56,51.399,48.54,48.92,48.54z"/>
|
||||
</g>
|
||||
<path id="XMLID_4_" style="fill:#00A3D3;" d="M88.581,77.463c-0.806,0-1.616-0.276-2.275-0.843
|
||||
c-9.942-8.521-13.227-23.199-16.402-37.394C65.436,19.255,61.781,7.129,48.75,7.129c-12.641,0-15.9,12.588-19.768,33.32
|
||||
c-2.528,13.553-5.142,27.567-13.212,35.942c-1.341,1.392-3.558,1.433-4.949,0.092c-1.392-1.342-1.433-3.558-0.092-4.949
|
||||
c6.615-6.864,9.033-19.83,11.372-32.368c3.58-19.192,7.281-39.037,26.649-39.037c19.579,0,23.853,19.099,27.984,37.569
|
||||
c2.927,13.077,5.952,26.601,14.126,33.607c1.468,1.258,1.638,3.468,0.38,4.935C90.548,77.048,89.567,77.463,88.581,77.463z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 2.2 KiB |
|
@ -0,0 +1,46 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 97 97" style="enable-background:new 0 0 97 97;" xml:space="preserve">
|
||||
<path id="XMLID_40_" style="fill:#FFFFFF;" d="M86.395,67.25H10.5c-2.75,0-5-2.25-5-5V11c0-2.75,2.25-5,5-5h75.895
|
||||
c2.75,0,5,2.25,5,5v51.25C91.395,65,89.145,67.25,86.395,67.25z"/>
|
||||
<linearGradient id="XMLID_2_" gradientUnits="userSpaceOnUse" x1="34.6632" y1="77.3544" x2="64.7421" y2="107.4333">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_50_" style="fill:url(#XMLID_2_);" d="M75.151,90.39L54.309,79.703V68.481c0-0.931-0.37-1.822-1.029-2.479
|
||||
c-0.656-0.653-1.545-1.021-2.471-1.021c-0.004,0-0.008,0-0.012,0l-2.331,0.008c-1.928,0.007-3.487,1.57-3.488,3.498l-0.006,11.225
|
||||
L24.194,90.391c-1.437,0.739-2.182,2.365-1.802,3.937c0.38,1.57,1.786,2.677,3.402,2.677h47.761c1.616,0,3.365-1.063,3.402-2.679
|
||||
C76.998,92.532,74.785,89.943,75.151,90.39z"/>
|
||||
<linearGradient id="XMLID_3_" gradientUnits="userSpaceOnUse" x1="9.0225" y1="-3.3044" x2="88.0121" y2="75.6852">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_41_" style="fill:url(#XMLID_3_);" d="M87.375,72.358H9.66c-5.285,0-9.584-4.299-9.584-9.584V9.606
|
||||
c0-5.285,4.3-9.584,9.584-9.584h77.715c5.285,0,9.584,4.3,9.584,9.584v53.168C96.959,68.06,92.66,72.358,87.375,72.358z M9.66,9.19
|
||||
c-0.218,0-0.416,0.198-0.416,0.416v53.168c0,0.218,0.198,0.416,0.416,0.416h77.715c0.218,0,0.416-0.198,0.416-0.416V9.606
|
||||
c0-0.218-0.198-0.416-0.416-0.416H9.66z"/>
|
||||
<g id="XMLID_67_">
|
||||
<rect id="XMLID_72_" x="18.793" y="21.385" style="fill:#3F578D;" width="7" height="6"/>
|
||||
<rect id="XMLID_70_" x="18.793" y="33.204" style="fill:#3F578D;" width="7" height="6.983"/>
|
||||
<rect id="XMLID_74_" x="18.793" y="46.005" style="fill:#3F578D;" width="7" height="6"/>
|
||||
</g>
|
||||
<g id="XMLID_53_">
|
||||
<path id="XMLID_54_" style="fill:#009DD1;" d="M59.836,13.787c4.83,0.016,9.624,1.951,13.033,5.384
|
||||
c3.461,3.397,5.42,8.199,5.444,13.041c-6.159,0.004-12.318,0-18.477,0C59.836,26.073,59.836,19.93,59.836,13.787z"/>
|
||||
</g>
|
||||
<g id="XMLID_51_">
|
||||
<path id="XMLID_52_" style="fill:#3F578D;" d="M35.888,30.856c2.76-7.371,10.322-12.491,18.177-12.449
|
||||
c0.03,6.441,0.008,12.878,0.013,19.319c4.607,4.641,9.269,9.226,13.88,13.859c-3.622,3.609-8.645,5.779-13.769,5.766
|
||||
c-6.271,0.098-12.453-3.087-16.041-8.22C34.39,43.925,33.532,36.818,35.888,30.856z"/>
|
||||
</g>
|
||||
<g id="XMLID_44_">
|
||||
<path id="XMLID_46_" style="fill:#009DD1;" d="M61.802,37.441c6.207,0.012,12.418-0.032,18.629,0.02
|
||||
c-0.052,4.874-2.028,9.672-5.504,13.105C70.546,46.193,66.174,41.813,61.802,37.441z"/>
|
||||
</g>
|
||||
<linearGradient id="XMLID_4_" gradientUnits="userSpaceOnUse" x1="75.1514" y1="85.0539" x2="24.1544" y2="85.0539">
|
||||
<stop offset="0" style="stop-color:#FFFFFF"/>
|
||||
<stop offset="0.4" style="stop-color:#FFFFFF;stop-opacity:0"/>
|
||||
</linearGradient>
|
||||
<polygon id="XMLID_31_" style="fill:url(#XMLID_4_);" points="44.972,79.712 54.309,79.703 75.151,90.39 24.154,90.405 "/>
|
||||
</svg>
|
After Width: | Height: | Size: 3.1 KiB |
|
@ -0,0 +1,69 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="97px" height="97px" viewBox="0 0 97 97" style="enable-background:new 0 0 97 97;" xml:space="preserve">
|
||||
<g>
|
||||
<g>
|
||||
|
||||
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="31.1436" y1="63.584" x2="96.085" y2="63.584" gradientTransform="matrix(1 0.009 -0.009 1 0.5596 -0.5537)">
|
||||
<stop offset="0" style="stop-color:#046973"/>
|
||||
<stop offset="0.6684" style="stop-color:#34A6AE"/>
|
||||
</linearGradient>
|
||||
|
||||
<path style="fill:url(#SVGID_1_);stroke:#08828B;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:22.9256;" d="
|
||||
M61.092,31.105l5.586,0.05c0.673,2.726,1.244,5.481,1.746,8.245c3.249,0.762,6.376,2.054,9.138,3.947
|
||||
c2.451-1.45,4.774-3.111,7.271-4.484c1.309,1.367,2.607,2.738,3.91,4.11c-1.604,2.305-3.055,4.71-4.609,7.051
|
||||
c1.764,2.786,3.114,5.871,3.681,9.137c2.767,0.624,5.522,1.302,8.281,1.948l-0.051,5.672c-2.766,0.546-5.52,1.145-8.27,1.751
|
||||
c-0.691,3.235-2.003,6.315-3.848,9.062c1.395,2.459,3.03,4.771,4.403,7.236c-1.367,1.313-2.673,2.69-4.092,3.947
|
||||
c-2.277-1.628-4.688-3.046-7.004-4.618c-2.758,1.845-5.891,3.046-9.137,3.724c-0.729,2.718-1.255,5.485-1.963,8.212l-5.632-0.051
|
||||
c-0.65-2.729-1.22-5.479-1.752-8.235c-3.256-0.715-6.387-1.979-9.129-3.881c-2.326,1.466-4.667,2.915-7.007,4.355
|
||||
c-1.574-0.925-2.717-2.663-4.123-3.909c1.442-2.42,3.06-4.727,4.566-7.102c-1.827-2.794-3.055-5.922-3.727-9.184
|
||||
c-2.746-0.618-5.476-1.296-8.227-1.891l0.052-5.666c2.765-0.643,5.554-1.157,8.32-1.812c0.604-3.263,2.041-6.309,3.843-9.068
|
||||
c-1.549-2.355-2.96-4.794-4.478-7.167c1.35-1.309,2.647-2.67,3.976-4.005c2.46,1.443,4.767,3.124,7.185,4.628
|
||||
c2.758-1.831,5.877-3.063,9.104-3.771C59.819,36.608,60.361,33.835,61.092,31.105z M60.303,45.384
|
||||
c-8.285,1.36-14.942,8.956-15.221,17.342c-0.256,4.986,1.609,10.046,5.05,13.662c3.787,4.002,9.409,6.226,14.916,5.731
|
||||
c5.565-0.391,10.865-3.495,13.942-8.14c2.727-4.059,3.8-9.235,2.769-14.027c-0.971-4.934-4.076-9.429-8.376-12.049
|
||||
C69.554,45.455,64.772,44.576,60.303,45.384z"/>
|
||||
</g>
|
||||
|
||||
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="57.5293" y1="63.6113" x2="69.7051" y2="63.6113" gradientTransform="matrix(1 0.009 -0.009 1 0.5596 -0.5537)">
|
||||
<stop offset="0" style="stop-color:#046973"/>
|
||||
<stop offset="0.6684" style="stop-color:#34A6AE"/>
|
||||
</linearGradient>
|
||||
|
||||
<path style="fill:url(#SVGID_2_);stroke:#08828B;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:22.9256;" d="
|
||||
M61.422,57.945c3.252-1.349,7.259,0.772,8.052,4.17c1.072,3.576-1.968,7.685-5.728,7.586c-3.581,0.257-6.669-3.286-6.18-6.785
|
||||
C57.813,60.709,59.386,58.767,61.422,57.945z"/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="0.9619" y1="23.3999" x2="45.8379" y2="23.3999">
|
||||
<stop offset="0" style="stop-color:#046973"/>
|
||||
<stop offset="0.75" style="stop-color:#34A6AE"/>
|
||||
</linearGradient>
|
||||
|
||||
<path style="fill:url(#SVGID_3_);stroke:#08828B;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:22.9256;" d="
|
||||
M12.09,2.447l3.661-1.485C17,2.595,18.193,4.273,19.342,5.976c2.345-0.375,4.769-0.364,7.131,0.149
|
||||
c1.168-1.633,2.191-3.37,3.41-4.962c1.26,0.556,2.515,1.115,3.775,1.674c-0.364,1.972-0.591,3.966-0.914,5.946
|
||||
c1.982,1.376,3.777,3.063,5.119,5.082c1.992-0.337,3.989-0.632,5.983-0.95l1.652,3.788c-1.639,1.114-3.259,2.262-4.874,3.413
|
||||
c0.512,2.341,0.574,4.747,0.185,7.078c1.642,1.256,3.396,2.351,5.027,3.62c-0.504,1.246-0.945,2.518-1.498,3.738
|
||||
c-1.969-0.464-3.968-0.752-5.943-1.17c-1.25,1.977-2.937,3.627-4.851,4.958c0.331,2.008,0.813,3.994,1.162,6.001l-3.69,1.496
|
||||
c-1.237-1.64-2.425-3.317-3.592-5.007c-2.337,0.409-4.755,0.416-7.11-0.106c-1.08,1.61-2.175,3.21-3.275,4.805
|
||||
c-1.3-0.189-2.564-1.036-3.852-1.482c0.224-2.002,0.59-3.978,0.868-5.969c-2.023-1.362-3.756-3.113-5.162-5.1
|
||||
c-1.977,0.333-3.958,0.624-5.929,0.972l-1.651-3.786c1.613-1.178,3.278-2.279,4.887-3.466c-0.575-2.334-0.545-4.752-0.19-7.078
|
||||
c-1.71-1.147-3.354-2.39-5.052-3.556c0.492-1.238,0.936-2.497,1.402-3.748c2.035,0.294,4.04,0.787,6.065,1.131
|
||||
c1.254-1.968,2.922-3.635,4.815-4.982C12.898,6.455,12.429,4.462,12.09,2.447z M15.824,12.167
|
||||
c-4.999,3.156-7.085,10.02-4.773,15.679c1.319,3.39,4.039,6.25,7.358,7.724c3.661,1.635,7.99,1.59,11.434-0.235
|
||||
c3.513-1.772,6.047-5.277,6.673-9.206c0.569-3.443-0.268-7.181-2.365-10.089c-2.102-3.022-5.461-5.171-9.047-5.748
|
||||
C21.878,9.703,18.499,10.414,15.824,12.167z"/>
|
||||
</g>
|
||||
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="19.0513" y1="23.4355" x2="27.7412" y2="23.4355">
|
||||
<stop offset="0" style="stop-color:#046973"/>
|
||||
<stop offset="0.75" style="stop-color:#34A6AE"/>
|
||||
</linearGradient>
|
||||
|
||||
<path style="fill:url(#SVGID_4_);stroke:#08828B;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:22.9256;" d="
|
||||
M20.291,20.225c1.717-1.781,4.962-1.458,6.488,0.589c1.764,2.091,1.005,5.649-1.48,6.605c-2.257,1.145-5.325-0.376-6.046-2.837
|
||||
C18.757,23.046,19.205,21.325,20.291,20.225z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 5.1 KiB |
|
@ -0,0 +1,73 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 97 97" style="enable-background:new 0 0 97 97;" xml:space="preserve">
|
||||
<polygon id="XMLID_205_" style="fill:#FFFFFF;" points="69.798,4.726 69.16,93.862 5.765,94.287 3.638,22.809 22.784,3.237 "/>
|
||||
<linearGradient id="XMLID_2_" gradientUnits="userSpaceOnUse" x1="52.7274" y1="54.0975" x2="88.9141" y2="90.2842">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_14_" style="fill:url(#XMLID_2_);" d="M70.82,47.215c-14.451,0-26.208,11.204-26.208,24.976
|
||||
c0,13.772,11.757,24.977,26.208,24.977c14.452,0,26.209-11.204,26.209-24.977C97.029,58.419,85.272,47.215,70.82,47.215z"/>
|
||||
<g id="XMLID_9_">
|
||||
<path id="XMLID_16_" style="fill:#FFFFFF;" d="M65.68,69.21l0.445,0.247c0.675,0.375,1.346,0.759,2.017,1.142
|
||||
c0.465-0.531,0.928-1.061,1.38-1.602c-0.174-0.227-0.357-0.453-0.547-0.687c-0.197-0.244-0.396-0.487-0.586-0.735l-0.074-0.096
|
||||
c-0.407-0.474-0.51-0.95-0.309-1.416c0.231-0.668,0.359-1.353,0.383-2.035c-0.007-0.283,0.086-0.722,0.635-1.054l0.103-0.066
|
||||
c0.374-0.21,0.744-0.428,1.114-0.646c0.204-0.121,0.409-0.241,0.614-0.36c-0.226-0.667-0.458-1.331-0.695-1.995
|
||||
c-0.487,0.068-0.975,0.138-1.462,0.208l-1.36,0.195l-0.341-0.406c-0.549-0.655-1.157-1.177-1.808-1.551l-0.457-0.263l-0.021-0.527
|
||||
c-0.027-0.693-0.029-1.389-0.031-2.083c0-0.093-0.001-0.185-0.001-0.278c-0.243-0.046-0.485-0.093-0.727-0.141
|
||||
c-0.461-0.091-0.906-0.178-1.347-0.253c-0.144,0.367-0.29,0.733-0.437,1.098l-0.325,0.815c-0.142,0.488-0.525,0.788-1.138,0.892
|
||||
l-0.15,0.031c-0.504,0.084-1.008,0.313-1.542,0.556l-0.762,0.34l-0.397-0.192c-0.475-0.229-0.931-0.494-1.387-0.761
|
||||
c-0.225-0.132-0.451-0.263-0.68-0.39c-0.236,0.281-0.478,0.558-0.72,0.835c-0.221,0.254-0.442,0.508-0.66,0.765
|
||||
c0.169,0.215,0.34,0.43,0.509,0.644c0.287,0.361,0.573,0.722,0.855,1.088c0.262,0.287,0.326,0.716,0.146,1.22l-0.036,0.118
|
||||
c-0.211,0.586-0.324,1.261-0.345,2.064l-0.014,0.527l-1.713,1.007c-0.245,0.143-0.491,0.288-0.736,0.432
|
||||
c0.228,0.667,0.459,1.333,0.697,1.996c0.085-0.013,0.169-0.025,0.253-0.038c0.693-0.105,1.386-0.209,2.082-0.278l0.478-0.047
|
||||
l0.323,0.356c0.663,0.732,1.249,1.233,1.845,1.576l0.467,0.269l0.01,0.539c0.008,0.465,0.011,0.929,0.013,1.395
|
||||
c0.002,0.312,0.003,0.624,0.007,0.936c0.314,0.059,0.627,0.12,0.94,0.182c0.377,0.075,0.755,0.15,1.134,0.218
|
||||
c0.06-0.151,0.119-0.303,0.179-0.454c0.219-0.556,0.438-1.112,0.67-1.662l0.12-0.286l0.265-0.16c0.27-0.163,0.535-0.22,0.729-0.261
|
||||
l0.132-0.031c0.657-0.142,1.253-0.421,1.807-0.704L65.68,69.21z M64.021,67.332C63.414,67.707,62.7,67.9,61.975,67.9
|
||||
c-0.483,0-0.971-0.086-1.435-0.261c-1.648-0.599-2.744-2.365-2.552-4.114c0.07-1.086,0.638-2.109,1.559-2.81
|
||||
c0.942-0.715,2.107-0.988,3.195-0.749c1.742,0.305,3.143,1.899,3.221,3.699C66.076,65.098,65.295,66.585,64.021,67.332z"/>
|
||||
<path id="XMLID_30_" style="fill:#FFFFFF;" d="M86.901,80.204l-1.238-0.735l-0.006-0.537c-0.01-1.029-0.164-1.956-0.458-2.756
|
||||
l-0.03-0.097c-0.222-0.622-0.154-1.101,0.188-1.465l1.873-2.376l-0.634-0.738c-0.493-0.577-0.988-1.154-1.487-1.728
|
||||
c-0.368,0.21-0.736,0.42-1.104,0.629c-0.465,0.264-0.931,0.528-1.395,0.796l-0.122,0.063c-0.514,0.279-0.976,0.289-1.375,0.023
|
||||
c-0.923-0.49-1.883-0.815-2.858-0.966l-0.539-0.084l-0.861-2.167c-0.185-0.461-0.37-0.922-0.552-1.383l-0.466,0.086
|
||||
c-0.9,0.162-1.824,0.33-2.732,0.519c0.001,0.464-0.003,0.926-0.007,1.39c-0.004,0.479-0.007,0.957-0.006,1.435l-0.002,0.115
|
||||
c0,0.631-0.235,1.064-0.695,1.287c-0.843,0.519-1.594,1.183-2.23,1.972l-0.334,0.416l-0.53-0.068
|
||||
c-0.648-0.084-1.295-0.18-1.942-0.276c-0.445-0.066-0.89-0.132-1.336-0.194c-0.158,0.46-0.329,0.942-0.499,1.423
|
||||
c-0.195,0.549-0.389,1.098-0.577,1.647l2.688,1.572c0.283,0.148,0.597,0.455,0.618,1.092l0.013,0.075l-0.004,0.058
|
||||
c0.011,0.872,0.204,1.813,0.589,2.877l0.177,0.489l-0.315,0.413c-0.523,0.687-1.06,1.364-1.597,2.041l-0.442,0.558
|
||||
c0.227,0.264,0.454,0.527,0.681,0.79c0.482,0.558,0.964,1.114,1.438,1.678c0.348-0.193,0.694-0.392,1.038-0.592
|
||||
c0.613-0.354,1.224-0.707,1.853-1.025l0.38-0.192l0.396,0.154c0.234,0.09,0.459,0.201,0.683,0.313
|
||||
c0.195,0.097,0.387,0.195,0.593,0.268c0.476,0.198,0.945,0.313,1.442,0.434c0.181,0.045,0.361,0.088,0.541,0.136l0.427,0.113
|
||||
l0.19,0.399c0.34,0.711,0.623,1.444,0.897,2.151c0.121,0.312,0.242,0.624,0.367,0.933c0.541-0.106,1.084-0.206,1.625-0.305
|
||||
c0.526-0.096,1.052-0.193,1.576-0.295c0.005-0.452,0.007-0.905,0.007-1.357c0.002-0.65,0.004-1.3,0.016-1.949l0.01-0.544
|
||||
l0.473-0.268c0.837-0.475,1.6-1.112,2.268-1.893l0.11-0.109c0.408-0.456,0.847-0.475,1.125-0.413
|
||||
c0.52,0.068,1.038,0.146,1.556,0.225c0.505,0.077,1.008,0.154,1.514,0.22c0.247-0.697,0.492-1.396,0.736-2.095l0.342-0.975
|
||||
C88.269,81.018,87.585,80.61,86.901,80.204z M81.687,80.375c-0.533,1.732-2.001,3.058-3.744,3.396
|
||||
c-0.333,0.077-0.672,0.114-1.008,0.114c-1.94,0-3.832-1.221-4.556-3.085c-0.88-1.992-0.195-4.515,1.607-5.833
|
||||
c1.072-0.815,2.53-1.152,3.905-0.906c1.642,0.33,3.028,1.471,3.636,2.982C81.96,78.014,82.022,79.209,81.687,80.375z"/>
|
||||
</g>
|
||||
<g id="XMLID_10_">
|
||||
<path id="XMLID_11_" style="fill:#3F578D;" d="M38.187,28.411h21.345c1.657,0,3-1.343,3-3s-1.343-3-3-3H38.187
|
||||
c-1.657,0-3,1.343-3,3S36.531,28.411,38.187,28.411z"/>
|
||||
<path id="XMLID_28_" style="fill:#3F578D;" d="M59.532,37.282H27c-1.452,0-2.629,1.177-2.629,2.629s1.177,2.629,2.629,2.629h32.532
|
||||
c1.452,0,2.63-1.177,2.63-2.629S60.984,37.282,59.532,37.282z"/>
|
||||
<circle id="XMLID_32_" style="fill:#3F578D;" cx="16.833" cy="39.911" r="3.833"/>
|
||||
<circle id="XMLID_33_" style="fill:#3F578D;" cx="16.833" cy="54.701" r="3.833"/>
|
||||
<circle id="XMLID_34_" style="fill:#3F578D;" cx="16.833" cy="69.634" r="3.833"/>
|
||||
<path id="XMLID_35_" style="fill:#3F578D;" d="M24.371,54.7c0,1.452,1.177,2.63,2.629,2.63h16.735
|
||||
c1.129-1.89,2.458-3.656,3.973-5.26H27C25.548,52.07,24.371,53.248,24.371,54.7z"/>
|
||||
<path id="XMLID_36_" style="fill:#3F578D;" d="M27,67.004c-1.452,0-2.629,1.178-2.629,2.63s1.177,2.63,2.629,2.63h12.614
|
||||
c0-0.025-0.002-0.049-0.002-0.073c0-1.769,0.17-3.5,0.477-5.187H27z"/>
|
||||
</g>
|
||||
<linearGradient id="XMLID_3_" gradientUnits="userSpaceOnUse" x1="4.4632" y1="15.963" x2="69.4124" y2="80.9122">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_12_" style="fill:url(#XMLID_3_);" d="M65.273,0H21.876c-0.929,0-1.818,0.369-2.475,1.025l-3.247,3.247L3.067,17.359
|
||||
l-2.042,2.042C0.369,20.058,0,20.948,0,21.876v66.397C0,93.085,3.915,97,8.727,97h44.598c-2.921-1.907-5.489-4.278-7.589-7H8.727
|
||||
C7.791,90,7,89.209,7,88.273V24.912h14.739c1.65,0,3-1.35,3-3V7.272c0-0.093-0.019-0.181-0.028-0.272h40.562
|
||||
C66.209,7,67,7.791,67,8.727v33.721c1.253-0.148,2.526-0.233,3.82-0.233c1.073,0,2.134,0.052,3.18,0.155V8.727
|
||||
C74,3.915,70.085,0,65.273,0z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 6.7 KiB |
|
@ -0,0 +1,54 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="97px" height="97px" viewBox="0 0 97 97" style="enable-background:new 0 0 97 97;" xml:space="preserve">
|
||||
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-132.3633" y1="108.4941" x2="73.622" y2="45.5181">
|
||||
<stop offset="0" style="stop-color:#34A6AE"/>
|
||||
<stop offset="1" style="stop-color:#FFFFFF"/>
|
||||
</linearGradient>
|
||||
<path style="fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_1_);stroke:#08828B;stroke-width:2.0001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:22.9256;" d="
|
||||
M40.307,1.134h29.884c-2.129,4.129-3.329,8.812-3.329,13.777c0,0.023,0.001,0.044,0.001,0.067h-0.001v21.389h0.017l27.622,41.547
|
||||
h-0.06c1.245,1.825,1.985,4.025,2.019,6.396h0.001H96.46c0,0.056,0.001,0.11,0.001,0.163c0,6.386-5.131,11.57-11.492,11.657v0.002
|
||||
h-0.165H26.352h-0.164v-0.002c-6.363-0.087-11.494-5.271-11.494-11.657c0-0.053,0-0.107,0.001-0.163h-0.001h0.001
|
||||
c0.033-2.371,0.773-4.571,2.019-6.396h-0.173l27.076-41.44V14.978h0.019c0-0.023,0.001-0.044,0.001-0.067
|
||||
C43.637,9.946,42.435,5.264,40.307,1.134z"/>
|
||||
<path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5FBEC3;stroke:#08828B;stroke-width:2.0001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:22.9256;" d="
|
||||
M81.85,58.886l12.651,19.028h-0.06c1.245,1.825,1.985,4.025,2.019,6.396h0.001H96.46c0,0.056,0.001,0.11,0.001,0.163
|
||||
c0,6.386-5.131,11.57-11.492,11.657v0.002h-0.165H26.352h-0.164v-0.002c-6.363-0.087-11.494-5.271-11.494-11.657
|
||||
c0-0.053,0-0.107,0.001-0.163h-0.001h0.001c0.033-2.371,0.773-4.571,2.019-6.396h-0.173l12.433-19.028H81.85z"/>
|
||||
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="31.6978" y1="77.3477" x2="85.577" y2="78.2881">
|
||||
<stop offset="0" style="stop-color:#5BBAC2"/>
|
||||
<stop offset="1" style="stop-color:#FFFFFF"/>
|
||||
</linearGradient>
|
||||
<path style="fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_2_);" d="M77.436,65.638l8.223,12.369h-0.04
|
||||
c0.81,1.188,1.292,2.616,1.313,4.156h0.001h-0.001c0,0.036,0.001,0.071,0.001,0.109c0,4.146-3.336,7.518-7.472,7.573v0.002h-0.106
|
||||
H31.36h-0.107v-0.002c-4.136-0.056-7.471-5.481-7.471-7.573c0-2.094,0-0.073,0.001-0.109h-0.001h0.001
|
||||
c0.022-1.54,0.503-2.969,1.313-4.156h-0.112l8.081-12.369H77.436z"/>
|
||||
<path style="fill-rule:evenodd;clip-rule:evenodd;fill:none;stroke:#FFFFFF;stroke-width:6.0001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:22.9256;" d="
|
||||
M59.82,9.565c-1.904,2.944-1.327,4.519-1.329,8.867"/>
|
||||
<line style="fill-rule:evenodd;clip-rule:evenodd;fill:none;stroke:#08828B;stroke-width:2.9999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:22.9256;" x1="56.789" y1="26.674" x2="44.354" y2="26.674"/>
|
||||
<line style="fill-rule:evenodd;clip-rule:evenodd;fill:none;stroke:#08828B;stroke-width:2.9999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:22.9256;" x1="56.789" y1="36.892" x2="44.353" y2="36.892"/>
|
||||
<line style="fill-rule:evenodd;clip-rule:evenodd;fill:none;stroke:#08828B;stroke-width:2.9999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:22.9256;" x1="49.788" y1="47.107" x2="37.354" y2="47.107"/>
|
||||
<line style="fill-rule:evenodd;clip-rule:evenodd;fill:none;stroke:#FFFFFF;stroke-width:6.0001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:22.9256;" x1="61.836" y1="43.822" x2="67.066" y2="51.571"/>
|
||||
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="-46.5044" y1="54.667" x2="30.1849" y2="54.667">
|
||||
<stop offset="0" style="stop-color:#34A6AE"/>
|
||||
<stop offset="1" style="stop-color:#FFFFFF"/>
|
||||
</linearGradient>
|
||||
<path style="fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_3_);stroke:#08828B;stroke-width:2.0001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:22.9256;" d="
|
||||
M1.336,19.732h30.202c-2.151,4.172-3.364,8.906-3.364,13.924c0,0.022,0,0.045,0,0.068h0v44.13v0.542h-0.013
|
||||
c-0.283,6.237-5.428,11.205-11.733,11.205c-6.307,0-11.451-4.968-11.734-11.205H4.68v-0.542v-44.13H4.7c0-0.023,0-0.045,0-0.068
|
||||
C4.7,28.638,3.487,23.904,1.336,19.732z"/>
|
||||
<path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9B97A;stroke:#08828B;stroke-width:2.0001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:22.9256;" d="
|
||||
M28.174,39.202v38.652v0.542h-0.013c-0.283,6.237-5.428,11.205-11.733,11.205c-6.307,0-11.451-4.968-11.734-11.205H4.68v-0.542
|
||||
V39.202H28.174z"/>
|
||||
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="6.957" y1="63.8271" x2="24.6561" y2="64.7547">
|
||||
<stop offset="0" style="stop-color:#FABF73"/>
|
||||
<stop offset="1" style="stop-color:#FFFFFF"/>
|
||||
</linearGradient>
|
||||
<path style="fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_4_);" d="M22.594,44.52v34.036v0.27h-0.007
|
||||
c-0.154,3.12-2.948,5.604-6.374,5.604c-3.426,0-6.22-2.484-6.374-5.604H9.833v-0.27V44.52H22.594z"/>
|
||||
<path style="fill-rule:evenodd;clip-rule:evenodd;fill:none;stroke:#FFFFFF;stroke-width:6.0001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:22.9256;" d="
|
||||
M21.774,25.952c-1.401,2.166-0.977,3.323-0.978,6.522"/>
|
||||
<line style="fill-rule:evenodd;clip-rule:evenodd;fill:none;stroke:#08828B;stroke-width:2.9999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:22.9256;" x1="17.579" y1="49.302" x2="5.144" y2="49.302"/>
|
||||
<line style="fill-rule:evenodd;clip-rule:evenodd;fill:none;stroke:#08828B;stroke-width:2.9999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:22.9256;" x1="17.579" y1="59.521" x2="5.144" y2="59.521"/>
|
||||
<line style="fill-rule:evenodd;clip-rule:evenodd;fill:none;stroke:#08828B;stroke-width:2.9999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:22.9256;" x1="17.579" y1="69.737" x2="5.145" y2="69.737"/>
|
||||
</svg>
|
After Width: | Height: | Size: 5.7 KiB |
|
@ -0,0 +1,32 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 97 97" style="enable-background:new 0 0 97 97;" xml:space="preserve">
|
||||
<polygon id="XMLID_15_" style="fill:#FFFFFF;" points="22.346,63.292 76.942,63.292 66.348,48.479 66.348,3.807 32.799,3.807
|
||||
32.799,49.439 "/>
|
||||
<linearGradient id="XMLID_3_" gradientUnits="userSpaceOnUse" x1="7.6084" y1="17.0876" x2="89.9301" y2="99.4094">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_52_" style="fill:url(#XMLID_3_);" d="M0.79,92.557c1.387,2.804,4.193,4.547,7.323,4.547h80.734
|
||||
c3.054,0,5.829-1.681,7.242-4.388c1.414-2.706,1.209-5.944-0.536-8.451L70.208,47.859L70.18,7.049h1.67
|
||||
c1.97,0,3.573-1.603,3.573-3.573s-1.602-3.573-3.573-3.573H26.271c-1.97,0-3.573,1.603-3.573,3.573s1.603,3.573,3.573,3.573h3.11
|
||||
l-0.026,1.165l-0.006,39.414L1.617,83.978C-0.281,86.465-0.598,89.752,0.79,92.557z M36.494,50.043L36.499,7.2h26.562v7.922
|
||||
l-1.222-0.06l-13.57,0.005c-1.129,0-2.047,0.918-2.047,2.047s0.918,2.047,2.047,2.047h13.662c-0.034-0.003,0.021-0.008,0.078-0.01
|
||||
l1.052-0.029v7.852l-1.222-0.06l-13.57,0.005c-1.129,0-2.047,0.918-2.047,2.047s0.918,2.047,2.047,2.047h13.662
|
||||
c-0.034-0.003,0.021-0.008,0.078-0.01l1.052-0.029v7.852l-1.222-0.06l-13.57,0.006c-1.129,0-2.047,0.918-2.047,2.047
|
||||
s0.918,2.047,2.047,2.047h13.662c-0.034-0.003,0.021-0.008,0.078-0.01l1.052-0.029v7.273l27.746,39.855H6.045L36.494,50.043z"/>
|
||||
<g id="XMLID_1_">
|
||||
<linearGradient id="XMLID_4_" gradientUnits="userSpaceOnUse" x1="25.8822" y1="62.6613" x2="71.9927" y2="108.7718">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<polygon id="XMLID_56_" style="fill:url(#XMLID_4_);" points="6,90 30.079,58.465 68.914,58.472 90.807,89.957 "/>
|
||||
|
||||
<linearGradient id="XMLID_5_" gradientUnits="userSpaceOnUse" x1="216.1032" y1="65.293" x2="256.1708" y2="93.3486" gradientTransform="matrix(-1 0 0 1 289.759 0)">
|
||||
<stop offset="0" style="stop-color:#FFFFFF"/>
|
||||
<stop offset="0.5" style="stop-color:#FFFFFF;stop-opacity:0"/>
|
||||
</linearGradient>
|
||||
<polygon id="XMLID_8_" style="fill:url(#XMLID_5_);" points="90.81,89.954 68.878,58.47 31.031,58.467 31.235,89.989 "/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.3 KiB |
|
@ -0,0 +1,34 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 97 97" style="enable-background:new 0 0 97 97;" xml:space="preserve">
|
||||
<g id="XMLID_3_">
|
||||
<circle id="XMLID_7_" style="fill:#3F578D;" cx="55.3" cy="13.46" r="5"/>
|
||||
<circle id="XMLID_8_" style="fill:#3F578D;" cx="85.3" cy="13.46" r="5"/>
|
||||
<circle id="XMLID_11_" style="fill:#3F578D;" cx="70.3" cy="13.46" r="5"/>
|
||||
<path id="XMLID_13_" style="fill:#3F578D;" d="M5.64,8.47c-2.77,0-5,2.24-5,5c0,2.76,2.24,5,5,5c2.76,0,5-2.24,5-5
|
||||
C10.64,10.7,8.4,8.47,5.64,8.47z"/>
|
||||
</g>
|
||||
<g id="XMLID_6_">
|
||||
<path id="XMLID_10_" style="fill:#3F578D;" d="M54.479,78.76c-2.76,0-5,2.23-5,5c0,2.76,2.24,5,5,5c2.761,0,5-2.24,5-5
|
||||
C59.479,80.99,57.24,78.76,54.479,78.76z"/>
|
||||
<path id="XMLID_15_" style="fill:#3F578D;" d="M84.479,78.76c-2.76,0-5,2.23-5,5c0,2.76,2.24,5,5,5c2.761,0,5-2.24,5-5
|
||||
C89.479,80.99,87.24,78.76,84.479,78.76z"/>
|
||||
<path id="XMLID_16_" style="fill:#3F578D;" d="M39.48,78.76c-2.76,0-5,2.23-5,5c0,2.76,2.24,5,5,5c2.76,0,5-2.24,5-5
|
||||
C44.48,80.99,42.24,78.76,39.48,78.76z"/>
|
||||
<path id="XMLID_17_" style="fill:#3F578D;" d="M69.479,78.76c-2.76,0-5,2.23-5,5c0,2.76,2.24,5,5,5c2.761,0,5-2.24,5-5
|
||||
C74.479,80.99,72.24,78.76,69.479,78.76z"/>
|
||||
</g>
|
||||
<path id="XMLID_41_" style="fill:#3F578D;" d="M83.063,44.11c0.345,1.41,0.548,2.875,0.548,4.39c0,1.594-0.224,3.133-0.605,4.609H97
|
||||
v-9H83.063z"/>
|
||||
<g id="XMLID_2_">
|
||||
<polygon id="XMLID_12_" style="fill:#3F578D;" points="14.663,44.11 0,44.11 0,53.109 12.461,53.109 "/>
|
||||
<path id="XMLID_38_" style="fill:#3F578D;" d="M47.16,44.11H30.106l-2.202,9h19.313c-0.381-1.477-0.605-3.016-0.605-4.609
|
||||
C46.611,46.985,46.814,45.52,47.16,44.11z"/>
|
||||
</g>
|
||||
<path id="XMLID_18_" style="fill:#00A3D3;" d="M65.111,36c-2.483,0-4.791,0.733-6.737,1.982L40.448,19.539
|
||||
c1.369-2.005,2.172-4.427,2.172-7.039c0-6.904-5.596-12.5-12.5-12.5s-12.5,5.596-12.5,12.5c0,4.992,2.933,9.287,7.163,11.291
|
||||
L12.979,72.024C12.819,72.018,12.662,72,12.5,72C5.596,72,0,77.596,0,84.5S5.596,97,12.5,97S25,91.404,25,84.5
|
||||
c0-4.992-2.933-9.287-7.163-11.291l11.804-48.234C29.801,24.982,29.958,25,30.12,25c2.483,0,4.792-0.733,6.737-1.982l17.926,18.443
|
||||
c-1.369,2.005-2.172,4.428-2.172,7.039c0,6.904,5.596,12.5,12.5,12.5s12.5-5.596,12.5-12.5S72.015,36,65.111,36z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 2.3 KiB |
|
@ -0,0 +1,52 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 97 97" style="enable-background:new 0 0 97 97;" xml:space="preserve">
|
||||
<polygon id="XMLID_205_" style="fill:#FFFFFF;" points="69.798,4.726 69.16,93.862 5.765,94.287 3.638,22.809 22.784,3.237 "/>
|
||||
<linearGradient id="XMLID_8_" gradientUnits="userSpaceOnUse" x1="52.7274" y1="54.0975" x2="88.9141" y2="90.2842">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_16_" style="fill:url(#XMLID_8_);" d="M70.82,47.215c-14.451,0-26.208,11.204-26.208,24.976
|
||||
c0,13.772,11.757,24.977,26.208,24.977c14.452,0,26.209-11.204,26.209-24.977C97.029,58.419,85.272,47.215,70.82,47.215z"/>
|
||||
<path id="XMLID_29_" style="fill:#FFFFFF;" d="M57.061,70.167c0,6.349,5.144,11.496,11.495,11.496c1.852,0,3.599-0.44,5.148-1.217
|
||||
l5.751,5.751l0.014-0.014c0.575,0.586,1.38,0.947,2.281,0.947c1.763,0,3.169-1.38,3.169-3.145c0-0.914-0.365-1.722-0.96-2.291
|
||||
l0.019-0.019l-5.574-5.574c1.046-1.732,1.648-3.762,1.648-5.934c0-6.348-5.145-11.496-11.496-11.496S57.061,63.819,57.061,70.167z
|
||||
M61.303,69.958c0-3.968,3.215-7.185,7.184-7.185s7.185,3.217,7.185,7.185c0,3.968-3.216,7.185-7.185,7.185
|
||||
S61.302,73.926,61.303,69.958z"/>
|
||||
<g id="XMLID_1_">
|
||||
<path id="XMLID_2_" style="fill:#3F578D;" d="M38.187,28.411h21.345c1.657,0,3-1.343,3-3s-1.343-3-3-3H38.187c-1.657,0-3,1.343-3,3
|
||||
S36.531,28.411,38.187,28.411z"/>
|
||||
<path id="XMLID_13_" style="fill:#3F578D;" d="M59.532,37.282H27c-1.452,0-2.629,1.177-2.629,2.629s1.177,2.629,2.629,2.629h32.532
|
||||
c1.452,0,2.63-1.177,2.63-2.629S60.984,37.282,59.532,37.282z"/>
|
||||
<circle id="XMLID_14_" style="fill:#3F578D;" cx="16.833" cy="39.911" r="3.833"/>
|
||||
<circle id="XMLID_17_" style="fill:#3F578D;" cx="16.833" cy="54.701" r="3.833"/>
|
||||
<path id="XMLID_18_" style="fill:#3F578D;" d="M24.371,54.7c0,1.452,1.177,2.63,2.629,2.63h16.735
|
||||
c1.129-1.89,2.458-3.656,3.973-5.26H27C25.548,52.07,24.371,53.248,24.371,54.7z"/>
|
||||
</g>
|
||||
<path id="XMLID_15_" style="fill:#00A3D3;" d="M39.705,74.382c-0.545,0.385-1.082,0.826-1.634,1.294
|
||||
c-0.085,0.067-0.17,0.138-0.255,0.209c-0.394,0.327-0.8,0.665-1.303,0.716c0.014-0.389,0.038-0.786,0.161-1.155
|
||||
c0.489-1.553,1.266-3.018,2.017-4.434c0.243-0.459,0.486-0.917,0.72-1.378c0.419-0.799,0.548-1.533,0.376-2.204
|
||||
c-0.266-0.575-0.854-1.207-1.623-1.139c-0.989-0.132-1.695,0.484-2.378,1.085c-0.191,0.169-0.372,0.328-0.562,0.473
|
||||
c-0.937,0.764-1.872,1.564-2.776,2.339c-2.261,1.936-4.597,3.936-7.162,5.542c0.126-0.649,0.467-1.24,0.798-1.814
|
||||
c0.109-0.189,0.218-0.378,0.317-0.564c1.509-2.598,3.303-5.188,5.344-7.721c0.028-0.053,0.076-0.11,0.126-0.171
|
||||
c0.136-0.165,0.322-0.391,0.162-0.687c-0.323-0.362-0.679-0.7-1.023-1.027c-0.314-0.299-0.639-0.607-0.935-0.931l-0.086-0.095
|
||||
l-0.092,0.089c-0.837,0.801-1.626,1.673-2.39,2.517c-0.697,0.771-1.417,1.566-2.17,2.305h-0.001
|
||||
c-0.437,0.436-0.87,0.875-1.304,1.314c-1.974,2.001-4.016,4.069-6.352,5.701l-0.104,0.067c-0.713,0.461-1.521,0.979-2.306,0.605
|
||||
c-0.908-0.435-1.504-1.276-2.081-2.091c-0.177-0.25-0.353-0.497-0.536-0.733l-0.101-0.129l-0.098,0.132
|
||||
c-0.542,0.729-1.105,1.438-1.542,1.983c-0.03,0.045-0.069,0.093-0.109,0.142c-0.158,0.195-0.397,0.49-0.168,0.787
|
||||
c0.749,1.295,1.832,2.389,3.127,3.162c1.272,0.793,2.962,0.792,4.307-0.008c1.047-0.639,1.996-1.443,2.913-2.222
|
||||
c0.155-0.132,0.311-0.264,0.466-0.395c-0.074,0.914-0.016,2.085,0.813,2.865c1.003,1.065,2.598,1.078,3.732,0.618
|
||||
c1.631-0.642,3.029-1.689,4.559-2.893l0.465-0.371c0.72-0.573,1.46-1.163,2.163-1.787c-0.266,1-0.521,2.249-0.109,3.395
|
||||
c0.272,0.894,0.926,1.634,1.84,2.086c0.972,0.48,2.12,0.557,3.068,0.2c0.901-0.308,1.647-0.883,2.359-1.472
|
||||
C40.024,77.219,39.813,75.814,39.705,74.382z"/>
|
||||
<linearGradient id="XMLID_9_" gradientUnits="userSpaceOnUse" x1="4.4632" y1="15.963" x2="69.4124" y2="80.9122">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_11_" style="fill:url(#XMLID_9_);" d="M45.735,90H8.727C7.791,90,7,89.209,7,88.273V24.912h14.739c1.65,0,3-1.35,3-3
|
||||
V7.272c0-0.093-0.019-0.181-0.028-0.272h40.562C66.209,7,67,7.791,67,8.727v33.721c1.253-0.148,2.526-0.233,3.82-0.233
|
||||
c1.073,0,2.134,0.052,3.18,0.155V8.727C74,3.915,70.085,0,65.273,0H21.876c-0.929,0-1.818,0.369-2.475,1.025l-3.247,3.247
|
||||
L3.067,17.359l-2.042,2.042C0.369,20.058,0,20.948,0,21.876v66.397C0,93.085,3.915,97,8.727,97h44.598
|
||||
C50.403,95.093,47.836,92.722,45.735,90z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 4.4 KiB |
|
@ -0,0 +1,37 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 97 97" style="enable-background:new 0 0 97 97;" xml:space="preserve">
|
||||
<polygon id="XMLID_205_" style="fill:#FFFFFF;" points="69.798,4.726 69.16,93.862 5.765,94.287 3.638,22.809 22.784,3.237 "/>
|
||||
<linearGradient id="XMLID_8_" gradientUnits="userSpaceOnUse" x1="52.7274" y1="54.0975" x2="88.9141" y2="90.2842">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_19_" style="fill:url(#XMLID_8_);" d="M70.82,47.215c-14.451,0-26.208,11.204-26.208,24.976
|
||||
c0,13.772,11.757,24.977,26.208,24.977c14.452,0,26.209-11.204,26.209-24.977C97.029,58.419,85.272,47.215,70.82,47.215z"/>
|
||||
<path id="XMLID_17_" style="fill:#FFFFFF;" d="M84.814,70.524H69.237c0-2.382-0.001-4.764,0.001-7.146h-0.019
|
||||
c-3.993,3.196-7.989,6.389-11.981,9.586c3.998,3.202,8,6.401,12,9.601c0.001-2.396-0.002-4.791,0.001-7.187
|
||||
c0.088-0.001,0.175,0.007,0.262,0.009v-0.013h15.314V70.524z"/>
|
||||
<g id="XMLID_1_">
|
||||
<path id="XMLID_2_" style="fill:#3F578D;" d="M38.187,28.411h21.345c1.657,0,3-1.343,3-3s-1.343-3-3-3H38.187c-1.657,0-3,1.343-3,3
|
||||
S36.531,28.411,38.187,28.411z"/>
|
||||
<path id="XMLID_15_" style="fill:#3F578D;" d="M59.532,37.282H27c-1.452,0-2.629,1.177-2.629,2.629s1.177,2.629,2.629,2.629h32.532
|
||||
c1.452,0,2.63-1.177,2.63-2.629S60.984,37.282,59.532,37.282z"/>
|
||||
<circle id="XMLID_16_" style="fill:#3F578D;" cx="16.833" cy="39.911" r="3.833"/>
|
||||
<circle id="XMLID_18_" style="fill:#3F578D;" cx="16.833" cy="54.701" r="3.833"/>
|
||||
<circle id="XMLID_20_" style="fill:#3F578D;" cx="16.833" cy="69.634" r="3.833"/>
|
||||
<path id="XMLID_28_" style="fill:#3F578D;" d="M27,67.004c-1.452,0-2.629,1.178-2.629,2.63s1.177,2.63,2.629,2.63h12.614
|
||||
c0-0.025-0.002-0.049-0.002-0.073c0-1.769,0.17-3.5,0.477-5.187H27z"/>
|
||||
<path id="XMLID_29_" style="fill:#3F578D;" d="M24.371,54.7c0,1.452,1.177,2.63,2.629,2.63h16.735
|
||||
c1.129-1.89,2.458-3.656,3.973-5.26H27C25.548,52.07,24.371,53.248,24.371,54.7z"/>
|
||||
</g>
|
||||
<linearGradient id="XMLID_9_" gradientUnits="userSpaceOnUse" x1="4.4632" y1="15.963" x2="69.4124" y2="80.9122">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_14_" style="fill:url(#XMLID_9_);" d="M45.735,90H8.727C7.791,90,7,89.209,7,88.273V24.912h14.739c1.65,0,3-1.35,3-3
|
||||
V7.272c0-0.093-0.019-0.181-0.028-0.272h40.562C66.209,7,67,7.791,67,8.727v33.721c1.253-0.148,2.526-0.233,3.82-0.233
|
||||
c1.073,0,2.134,0.052,3.18,0.155V8.727C74,3.915,70.085,0,65.273,0H21.876c-0.929,0-1.818,0.369-2.475,1.025l-3.247,3.247
|
||||
L3.067,17.359l-2.042,2.042C0.369,20.058,0,20.948,0,21.876v66.397C0,93.085,3.915,97,8.727,97h44.598
|
||||
C50.403,95.093,47.836,92.722,45.735,90z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 2.8 KiB |
|
@ -0,0 +1,122 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 97 97" style="enable-background:new 0 0 97 97;" xml:space="preserve">
|
||||
<g id="XMLID_2_">
|
||||
<linearGradient id="XMLID_7_" gradientUnits="userSpaceOnUse" x1="42.5598" y1="97" x2="42.5598" y2="-1.269655e-009">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_3_" style="fill:url(#XMLID_7_);" d="M78.584,61.679c-1.348,0-2.601-0.691-3.351-1.848
|
||||
c-0.082-0.127-0.153-0.26-0.221-0.394c-0.896,1.016-1.789,2.03-2.706,3.055c-5.788,6.383-10.444,11.097-15.12,15.304
|
||||
c-2.156,1.9-4.292,3.735-6.715,5.295l-0.044,0.028l-0.045,0.027l-0.115,0.068c-0.974,0.581-2.182,1.302-3.732,1.52
|
||||
c-0.201,0.032-0.405,0.048-0.609,0.048c-1.983,0-3.626-1.441-3.857-3.365c-0.199-1.469,0.204-2.734,0.499-3.661l0.02-0.062
|
||||
l0.014-0.044l0.015-0.044c0.951-2.699,2.327-5.125,3.557-7.294c3.696-6.354,7.907-12.277,11.551-17.249
|
||||
c2.985-4.014,5.76-7.589,8.485-10.929l1.657-2.031l0.001,0.001l0.004-0.005l0.048,0.029l0.498-0.647
|
||||
c1.169-1.52,2.405-2.987,3.599-4.406c0.533-0.633,1.065-1.266,1.617-1.932l0.534-0.63c1.716-2.026,3.484-4.102,5.392-6.079V8.727
|
||||
C79.56,3.915,75.645,0,70.833,0H14.286C9.474,0,5.56,3.915,5.56,8.727v5.998l7.587,0.017c2.999,0.007,5.433,2.452,5.426,5.45
|
||||
c-0.003,1.453-0.572,2.817-1.602,3.841c-1.026,1.022-2.388,1.584-3.836,1.584c-0.004,0-0.008,0-0.013,0L5.56,25.599v8.014
|
||||
l7.587,0.017c2.999,0.007,5.433,2.452,5.426,5.45c-0.003,1.453-0.572,2.817-1.602,3.841c-1.026,1.022-2.388,1.584-3.836,1.584
|
||||
c-0.004,0-0.008,0-0.013,0L5.56,44.488v8.014l7.587,0.017c2.999,0.007,5.433,2.451,5.426,5.449
|
||||
c-0.003,1.453-0.572,2.817-1.602,3.842c-1.026,1.021-2.388,1.584-3.836,1.584c-0.004,0-0.008,0-0.013,0L5.56,63.377v8.014
|
||||
l7.587,0.017c2.999,0.007,5.433,2.451,5.426,5.449c-0.003,1.453-0.572,2.817-1.602,3.842c-1.026,1.021-2.388,1.584-3.836,1.584
|
||||
c-0.004,0-0.008,0-0.013,0L5.56,82.266v6.008C5.56,93.085,9.474,97,14.286,97H42.56h28.273c4.812,0,8.727-3.915,8.727-8.727V61.588
|
||||
C79.246,61.639,78.924,61.676,78.584,61.679z"/>
|
||||
<linearGradient id="XMLID_8_" gradientUnits="userSpaceOnUse" x1="45.9432" y1="81.772" x2="45.9432" y2="81.7646">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_5_" style="fill:url(#XMLID_8_);" d="M45.994,81.767c-0.034,0.003-0.068-0.001-0.102-0.002
|
||||
c0.015,0.001,0.028,0.007,0.043,0.007C45.955,81.772,45.974,81.768,45.994,81.767z"/>
|
||||
</g>
|
||||
<path id="XMLID_274_" style="fill:#FFFFFF;" d="M59.226,35.058h-28c-1.65,0-3-1.35-3-3V16.724c0-1.65,1.35-3,3-3h28
|
||||
c1.65,0,3,1.35,3,3v15.333C62.226,33.708,60.876,35.058,59.226,35.058z"/>
|
||||
<g id="XMLID_4_">
|
||||
<path id="XMLID_41_" style="fill:#00A3D3;" d="M2.443,17.717c-0.002,0-0.004,0-0.005,0c-1.342,0-2.435,1.09-2.438,2.432
|
||||
c-0.003,1.344,1.088,2.44,2.433,2.443l10.702,0.024c0.002,0,0.004,0,0.005,0c1.342,0,2.435-1.09,2.438-2.432
|
||||
c0.003-1.344-1.088-2.44-2.433-2.443L2.443,17.717z"/>
|
||||
<path id="XMLID_42_" style="fill:#00A3D3;" d="M2.443,36.606c-0.002,0-0.004,0-0.005,0c-1.342,0-2.435,1.09-2.438,2.432
|
||||
c-0.003,1.344,1.088,2.44,2.433,2.443l10.702,0.024c0.002,0,0.004,0,0.005,0c1.342,0,2.435-1.09,2.438-2.432
|
||||
c0.003-1.344-1.088-2.44-2.433-2.443L2.443,36.606z"/>
|
||||
<path id="XMLID_43_" style="fill:#00A3D3;" d="M2.443,55.495c-0.001,0-0.003,0-0.005,0c-1.342,0-2.435,1.09-2.438,2.432
|
||||
c-0.003,1.345,1.088,2.44,2.433,2.443l10.702,0.023c0.001,0,0.003,0,0.005,0c1.342,0,2.435-1.09,2.438-2.432
|
||||
c0.003-1.345-1.088-2.44-2.433-2.443L2.443,55.495z"/>
|
||||
<path id="XMLID_44_" style="fill:#00A3D3;" d="M2.443,74.384c-0.002,0-0.004,0-0.005,0c-1.342,0-2.435,1.09-2.438,2.432
|
||||
c-0.001,0.651,0.251,1.265,0.71,1.726c0.459,0.461,1.071,0.717,1.723,0.718l10.702,0.024c0.002,0,0.004,0,0.005,0
|
||||
c1.342,0,2.435-1.09,2.438-2.432c0.003-1.345-1.088-2.44-2.433-2.443L2.443,74.384z"/>
|
||||
|
||||
<linearGradient id="XMLID_9_" gradientUnits="userSpaceOnUse" x1="121.0578" y1="2.7512" x2="113.1828" y2="2.7512" gradientTransform="matrix(0.0022 -1 1 0.0022 6.2757 137.2806)">
|
||||
<stop offset="0" style="stop-color:#FFFFFF"/>
|
||||
<stop offset="0.5" style="stop-color:#FFFFFF;stop-opacity:0"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_119_" style="fill:url(#XMLID_9_);" d="M18.578,20.187c0.005-2.175-1.754-3.941-3.929-3.946L3.947,16.217
|
||||
C1.772,16.212,0.005,17.971,0,20.146s1.754,3.941,3.929,3.946l10.702,0.024C16.806,24.121,18.573,22.362,18.578,20.187z"/>
|
||||
|
||||
<linearGradient id="XMLID_10_" gradientUnits="userSpaceOnUse" x1="102.169" y1="2.7935" x2="94.294" y2="2.7935" gradientTransform="matrix(0.0022 -1 1 0.0022 6.2757 137.2806)">
|
||||
<stop offset="0" style="stop-color:#FFFFFF"/>
|
||||
<stop offset="0.5" style="stop-color:#FFFFFF;stop-opacity:0"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_108_" style="fill:url(#XMLID_10_);" d="M18.578,39.076c0.005-2.175-1.754-3.941-3.929-3.946L3.947,35.106
|
||||
C1.772,35.101,0.005,36.86,0,39.035c-0.005,2.175,1.754,3.941,3.929,3.946l10.702,0.024C16.806,43.01,18.573,41.251,18.578,39.076z
|
||||
"/>
|
||||
|
||||
<linearGradient id="XMLID_11_" gradientUnits="userSpaceOnUse" x1="83.2802" y1="2.8358" x2="75.4052" y2="2.8358" gradientTransform="matrix(0.0022 -1 1 0.0022 6.2757 137.2806)">
|
||||
<stop offset="0" style="stop-color:#FFFFFF"/>
|
||||
<stop offset="0.5" style="stop-color:#FFFFFF;stop-opacity:0"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_95_" style="fill:url(#XMLID_11_);" d="M18.578,57.965c0.005-2.175-1.754-3.941-3.929-3.946L3.947,53.995
|
||||
C1.772,53.99,0.005,55.749,0,57.924c-0.005,2.175,1.754,3.941,3.929,3.946l10.702,0.024C16.806,61.899,18.573,60.14,18.578,57.965z
|
||||
"/>
|
||||
|
||||
<linearGradient id="XMLID_12_" gradientUnits="userSpaceOnUse" x1="64.3913" y1="2.8781" x2="56.5163" y2="2.8781" gradientTransform="matrix(0.0022 -1 1 0.0022 6.2757 137.2806)">
|
||||
<stop offset="0" style="stop-color:#FFFFFF"/>
|
||||
<stop offset="0.5" style="stop-color:#FFFFFF;stop-opacity:0"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_84_" style="fill:url(#XMLID_12_);" d="M18.578,76.854c0.005-2.175-1.754-3.941-3.929-3.946L3.947,72.884
|
||||
C1.772,72.879,0.005,74.638,0,76.813s1.754,3.941,3.929,3.946l10.702,0.024C16.806,80.788,18.573,79.029,18.578,76.854z"/>
|
||||
</g>
|
||||
<g id="XMLID_1_">
|
||||
<path id="XMLID_83_" style="fill:#00A3D3;" d="M87.391,24.188c1.24-0.404,2.588,0.023,3.587,0.796
|
||||
c1.169,0.882,2.337,2.036,2.517,3.562c0.157,1.619-0.597,3.138-1.353,4.517c-1.617,2.813-3.665,5.343-5.655,7.893
|
||||
c-2.138,2.674-4.3,5.331-6.493,7.962c-3.091-2.503-6.137-5.064-9.194-7.608c1.639-2.129,3.412-4.154,5.125-6.226
|
||||
c2.34-2.759,4.663-5.549,7.279-8.055C84.445,25.886,85.762,24.724,87.391,24.188z"/>
|
||||
<path id="XMLID_73_" style="fill:#00A3D3;" d="M68.539,44.029c0.727,0.446,1.335,1.056,2.003,1.584
|
||||
c2.395,2.008,4.842,3.959,7.2,6.011c-2.461,3.024-5.054,5.941-7.655,8.846c-4.742,5.23-9.629,10.342-14.878,15.066
|
||||
c-2.025,1.785-4.08,3.559-6.354,5.022c-0.861,0.512-1.752,1.066-2.763,1.2c-0.471,0.087-0.989-0.229-1.038-0.725
|
||||
c-0.121-0.832,0.152-1.655,0.401-2.438c0.839-2.382,2.079-4.593,3.32-6.781c3.425-5.888,7.339-11.473,11.363-16.964
|
||||
C62.864,51.183,65.652,47.567,68.539,44.029z"/>
|
||||
<linearGradient id="XMLID_13_" gradientUnits="userSpaceOnUse" x1="78.9326" y1="31.4969" x2="88.1339" y2="39.2177">
|
||||
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.8"/>
|
||||
<stop offset="0.5" style="stop-color:#FFFFFF;stop-opacity:0"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_67_" style="fill:url(#XMLID_13_);" d="M87.39,24.188c1.24-0.404,2.588,0.023,3.588,0.796
|
||||
c1.17,0.883,2.337,2.036,2.518,3.563c0.157,1.619-0.597,3.139-1.354,4.518c-1.617,2.814-3.666,5.344-5.656,7.894
|
||||
c-2.139,2.675-4.301,5.332-6.494,7.963c-3.092-2.503-6.138-5.064-9.196-7.609c1.639-2.13,3.413-4.155,5.126-6.227
|
||||
c2.341-2.76,4.664-5.55,7.281-8.057C84.442,25.886,85.76,24.724,87.39,24.188z"/>
|
||||
<linearGradient id="XMLID_14_" gradientUnits="userSpaceOnUse" x1="54.5369" y1="60.7134" x2="63.6914" y2="68.3949">
|
||||
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.8"/>
|
||||
<stop offset="0.5" style="stop-color:#FFFFFF;stop-opacity:0"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_55_" style="fill:url(#XMLID_14_);" d="M68.534,44.032c0.727,0.446,1.336,1.056,2.003,1.585
|
||||
c2.395,2.009,4.842,3.96,7.201,6.012c-2.462,3.025-5.055,5.942-7.656,8.847c-4.743,5.231-9.631,10.344-14.881,15.069
|
||||
c-2.025,1.785-4.081,3.559-6.355,5.023c-0.861,0.513-1.753,1.067-2.763,1.2c-0.471,0.087-0.989-0.229-1.038-0.726
|
||||
c-0.121-0.832,0.152-1.655,0.401-2.438c0.839-2.382,2.079-4.593,3.321-6.783c3.426-5.889,7.34-11.475,11.365-16.968
|
||||
C62.858,51.189,65.646,47.572,68.534,44.032z"/>
|
||||
<g id="XMLID_46_">
|
||||
<path id="XMLID_101_" style="fill:#00A3D3;" d="M93.561,36.317c0.343-0.577,1.076-0.904,1.718-0.635
|
||||
c0.716,0.33,1.234,0.964,1.702,1.581v0.919c-3.463,5.262-7.615,10.017-11.515,14.949c-1.252,1.561-2.433,3.23-4.075,4.416
|
||||
c-0.823,0.588-1.765,1.137-2.804,1.144c-0.891,0.007-1.292-1.146-0.973-1.86c0.35-0.695,0.917-1.249,1.377-1.868
|
||||
c3.021-3.889,6.164-7.676,9.239-11.52C90.08,41.122,91.921,38.791,93.561,36.317z"/>
|
||||
</g>
|
||||
<g id="XMLID_45_">
|
||||
<linearGradient id="XMLID_15_" gradientUnits="userSpaceOnUse" x1="85.4132" y1="45.9984" x2="89.0056" y2="49.0127">
|
||||
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.8"/>
|
||||
<stop offset="0.5" style="stop-color:#FFFFFF;stop-opacity:0"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_99_" style="fill:url(#XMLID_15_);" d="M93.561,36.319c0.343-0.578,1.076-0.904,1.718-0.635
|
||||
c0.717,0.33,1.235,0.964,1.702,1.581v0.919c-3.464,5.263-7.617,10.019-11.517,14.952c-1.253,1.561-2.433,3.231-4.075,4.417
|
||||
c-0.823,0.588-1.765,1.137-2.805,1.144c-0.892,0.007-1.292-1.146-0.973-1.861c0.35-0.695,0.917-1.249,1.377-1.868
|
||||
c3.021-3.889,6.165-7.678,9.241-11.522C90.079,41.125,91.92,38.794,93.561,36.319z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 9.5 KiB |
|
@ -0,0 +1,105 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 97 97" style="enable-background:new 0 0 97 97;" xml:space="preserve">
|
||||
<g id="Capa_1">
|
||||
<linearGradient id="XMLID_18_" gradientUnits="userSpaceOnUse" x1="53.198" y1="54.431" x2="89.3846" y2="90.6176">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_65_" style="fill:url(#XMLID_18_);" d="M71.291,47.548c-14.451,0-26.208,11.205-26.208,24.976
|
||||
S56.84,97.5,71.291,97.5C85.743,97.5,97.5,86.296,97.5,72.524S85.743,47.548,71.291,47.548z"/>
|
||||
<path id="XMLID_17_" style="fill:#FFFFFF;" d="M57.57,70.524h15.577c0-2.382,0.001-4.764-0.001-7.146h0.019
|
||||
c3.993,3.196,7.989,6.389,11.981,9.586c-3.998,3.202-8,6.401-12,9.601c-0.001-2.396,0.002-4.791-0.001-7.187
|
||||
c-0.088-0.001-0.175,0.007-0.262,0.009v-0.013H57.57V70.524z"/>
|
||||
<g id="XMLID_1_">
|
||||
<path id="XMLID_2_" style="fill:#3F578D;" d="M22.304,31.657h21.345c1.657,0,3-1.343,3-3s-1.343-3-3-3H22.304
|
||||
c-1.657,0-3,1.343-3,3S20.647,31.657,22.304,31.657z"/>
|
||||
<path id="XMLID_12_" style="fill:#3F578D;" d="M22.304,69.235c-1.657,0-3,1.343-3,3s1.343,3,3,3h17.912
|
||||
c-0.084-0.894-0.134-1.797-0.134-2.711c0-1.112,0.068-2.208,0.192-3.289H22.304z"/>
|
||||
<path id="XMLID_13_" style="fill:#3F578D;" d="M19.304,57.813c0,1.657,1.343,3,3,3h20.26c0.949-2.139,2.152-4.149,3.569-6H22.304
|
||||
C20.647,54.813,19.304,56.156,19.304,57.813z"/>
|
||||
<path id="XMLID_14_" style="fill:#3F578D;" d="M64.649,40.235H22.304c-1.657,0-3,1.343-3,3s1.343,3,3,3h34.009
|
||||
c3.425-1.807,7.24-3.01,11.289-3.47C67.375,41.333,66.146,40.235,64.649,40.235z"/>
|
||||
</g>
|
||||
<g id="XMLID_9_">
|
||||
<linearGradient id="XMLID_19_" gradientUnits="userSpaceOnUse" x1="67.843" y1="8.6591" x2="-4.885" y2="81.3871">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<polygon id="XMLID_10_" style="fill:url(#XMLID_19_);" points="5.61,71.391 12.61,71.407 12.61,63.392 5.61,63.377 "/>
|
||||
<linearGradient id="XMLID_20_" gradientUnits="userSpaceOnUse" x1="89.1379" y1="29.9541" x2="16.4099" y2="102.6821">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_38_" style="fill:url(#XMLID_20_);" d="M5.61,88.273C5.61,93.085,9.525,97,14.337,97h38.971
|
||||
c-2.834-1.927-5.32-4.294-7.349-7H14.337c-0.936,0-1.727-0.791-1.727-1.727v-5.991l-7-0.016V88.273z"/>
|
||||
<linearGradient id="XMLID_28_" gradientUnits="userSpaceOnUse" x1="58.3983" y1="-0.7855" x2="-14.3297" y2="71.9425">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<polygon id="XMLID_40_" style="fill:url(#XMLID_28_);" points="5.61,52.502 12.61,52.517 12.61,44.504 5.61,44.488 "/>
|
||||
<linearGradient id="XMLID_29_" gradientUnits="userSpaceOnUse" x1="63.0859" y1="3.9021" x2="-9.6421" y2="76.6301">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_41_" style="fill:url(#XMLID_29_);" d="M78.585,19.401l-2.042-2.042L63.456,4.272l-3.247-3.247
|
||||
C59.552,0.369,58.663,0,57.734,0H14.337C9.525,0,5.61,3.915,5.61,8.727v5.998l7,0.016V8.727C12.61,7.791,13.401,7,14.337,7h40.562
|
||||
c-0.008,0.091-0.028,0.179-0.028,0.272v14.64c0,1.65,1.35,3,3,3H72.61V42.58c2.414,0.097,4.757,0.461,7,1.058V21.876
|
||||
C79.61,20.948,79.241,20.058,78.585,19.401z"/>
|
||||
<linearGradient id="XMLID_30_" gradientUnits="userSpaceOnUse" x1="48.954" y1="-10.2298" x2="-23.774" y2="62.4982">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<polygon id="XMLID_42_" style="fill:url(#XMLID_30_);" points="5.61,33.613 12.61,33.629 12.61,25.615 5.61,25.599 "/>
|
||||
<polygon id="XMLID_51_" style="fill:#FFFFFF;" points="5.61,63.377 12.61,63.392 12.61,52.517 5.61,52.502 "/>
|
||||
</g>
|
||||
<g id="XMLID_3_">
|
||||
<path id="XMLID_11_" style="fill:#00A3D3;" d="M2.443,17.717c-0.002,0-0.004,0-0.005,0c-1.342,0-2.435,1.09-2.438,2.432
|
||||
c-0.003,1.344,1.088,2.44,2.433,2.443l10.702,0.024c0.002,0,0.004,0,0.005,0c1.342,0,2.435-1.09,2.438-2.432
|
||||
c0.003-1.344-1.088-2.44-2.433-2.443L2.443,17.717z"/>
|
||||
<path id="XMLID_8_" style="fill:#00A3D3;" d="M2.443,36.606c-0.002,0-0.004,0-0.005,0c-1.342,0-2.435,1.09-2.438,2.432
|
||||
c-0.003,1.344,1.088,2.44,2.433,2.443l10.702,0.024c0.002,0,0.004,0,0.005,0c1.342,0,2.435-1.09,2.438-2.432
|
||||
c0.003-1.344-1.088-2.44-2.433-2.443L2.443,36.606z"/>
|
||||
<path id="XMLID_43_" style="fill:#00A3D3;" d="M2.443,55.495c-0.001,0-0.003,0-0.005,0c-1.342,0-2.435,1.09-2.438,2.432
|
||||
c-0.003,1.345,1.088,2.44,2.433,2.443l10.702,0.023c0.001,0,0.003,0,0.005,0c1.342,0,2.435-1.09,2.438-2.432
|
||||
c0.003-1.345-1.088-2.44-2.433-2.443L2.443,55.495z"/>
|
||||
<path id="XMLID_44_" style="fill:#00A3D3;" d="M2.443,74.384c-0.002,0-0.004,0-0.005,0c-1.342,0-2.435,1.09-2.438,2.432
|
||||
c-0.001,0.651,0.251,1.265,0.71,1.726c0.459,0.461,1.071,0.717,1.723,0.718l10.702,0.024c0.002,0,0.004,0,0.005,0
|
||||
c1.342,0,2.435-1.09,2.438-2.432c0.003-1.345-1.088-2.44-2.433-2.443L2.443,74.384z"/>
|
||||
|
||||
<linearGradient id="XMLID_31_" gradientUnits="userSpaceOnUse" x1="121.0578" y1="2.7512" x2="113.1828" y2="2.7512" gradientTransform="matrix(0.0022 -1 1 0.0022 6.2757 137.2806)">
|
||||
<stop offset="0" style="stop-color:#FFFFFF"/>
|
||||
<stop offset="0.5" style="stop-color:#FFFFFF;stop-opacity:0"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_119_" style="fill:url(#XMLID_31_);" d="M18.578,20.187c0.005-2.175-1.754-3.941-3.929-3.946L3.947,16.217
|
||||
C1.772,16.212,0.005,17.971,0,20.146s1.754,3.941,3.929,3.946l10.702,0.024C16.806,24.121,18.573,22.362,18.578,20.187z"/>
|
||||
|
||||
<linearGradient id="XMLID_32_" gradientUnits="userSpaceOnUse" x1="102.169" y1="2.7935" x2="94.294" y2="2.7935" gradientTransform="matrix(0.0022 -1 1 0.0022 6.2757 137.2806)">
|
||||
<stop offset="0" style="stop-color:#FFFFFF"/>
|
||||
<stop offset="0.5" style="stop-color:#FFFFFF;stop-opacity:0"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_108_" style="fill:url(#XMLID_32_);" d="M18.578,39.076c0.005-2.175-1.754-3.941-3.929-3.946L3.947,35.106
|
||||
C1.772,35.101,0.005,36.86,0,39.035c-0.005,2.175,1.754,3.941,3.929,3.946l10.702,0.024C16.806,43.01,18.573,41.251,18.578,39.076
|
||||
z"/>
|
||||
|
||||
<linearGradient id="XMLID_33_" gradientUnits="userSpaceOnUse" x1="83.2802" y1="2.8358" x2="75.4052" y2="2.8358" gradientTransform="matrix(0.0022 -1 1 0.0022 6.2757 137.2806)">
|
||||
<stop offset="0" style="stop-color:#FFFFFF"/>
|
||||
<stop offset="0.5" style="stop-color:#FFFFFF;stop-opacity:0"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_95_" style="fill:url(#XMLID_33_);" d="M18.578,57.965c0.005-2.175-1.754-3.941-3.929-3.946L3.947,53.995
|
||||
C1.772,53.99,0.005,55.749,0,57.924c-0.005,2.175,1.754,3.941,3.929,3.946l10.702,0.024C16.806,61.899,18.573,60.14,18.578,57.965
|
||||
z"/>
|
||||
|
||||
<linearGradient id="XMLID_34_" gradientUnits="userSpaceOnUse" x1="64.3913" y1="2.8781" x2="56.5163" y2="2.8781" gradientTransform="matrix(0.0022 -1 1 0.0022 6.2757 137.2806)">
|
||||
<stop offset="0" style="stop-color:#FFFFFF"/>
|
||||
<stop offset="0.5" style="stop-color:#FFFFFF;stop-opacity:0"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_84_" style="fill:url(#XMLID_34_);" d="M18.578,76.854c0.005-2.175-1.754-3.941-3.929-3.946L3.947,72.884
|
||||
C1.772,72.879,0.005,74.638,0,76.813s1.754,3.941,3.929,3.946l10.702,0.024C16.806,80.788,18.573,79.029,18.578,76.854z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="nyt_x5F_exporter_x5F_info" style="display:none;">
|
||||
<text id="XMLID_15_" transform="matrix(1 0 0 1 -372 644)" style="display:inline;"><tspan x="0" y="0" style="font-family:'MyriadPro-Regular'; font-size:12px;"><nyt_prefs></tspan><tspan x="0" y="14.4" style="font-family:'MyriadPro-Regular'; font-size:12px;"> <nyt_prefix/></tspan><tspan x="0" y="28.8" style="font-family:'MyriadPro-Regular'; font-size:12px;"> <nyt_suffix/></tspan><tspan x="0" y="43.2" style="font-family:'MyriadPro-Regular'; font-size:12px;"> <nyt_base_path>~/Desktop</nyt_base_path></tspan><tspan x="0" y="57.6" style="font-family:'MyriadPro-Regular'; font-size:12px;"> <nyt_scaling>100%</nyt_scaling></tspan><tspan x="0" y="72" style="font-family:'MyriadPro-Regular'; font-size:12px;"> <nyt_transparency>true</nyt_transparency></tspan><tspan x="0" y="86.4" style="font-family:'MyriadPro-Regular'; font-size:12px;"> <nyt_embedImage>true</nyt_embedImage></tspan><tspan x="0" y="100.8" style="font-family:'MyriadPro-Regular'; font-size:12px;"> <nyt_embedFont>true</nyt_embedFont></tspan><tspan x="0" y="115.2" style="font-family:'MyriadPro-Regular'; font-size:12px;"> <nyt_trimEdges>true</nyt_trimEdges></tspan><tspan x="0" y="129.6" style="font-family:'MyriadPro-Regular'; font-size:12px;"> <nyt_innerPadding>false</nyt_innerPadding></tspan><tspan x="0" y="144" style="font-family:'MyriadPro-Regular'; font-size:12px;"> <nyt_format>PNG 24</nyt_format></tspan><tspan x="0" y="158.4" style="font-family:'MyriadPro-Regular'; font-size:12px;"> <nyt_artboards>all</nyt_artboards></tspan><tspan x="0" y="172.8" style="font-family:'MyriadPro-Regular'; font-size:12px;"> <nyt_layers>all</nyt_layers></tspan><tspan x="0" y="187.2" style="font-family:'MyriadPro-Regular'; font-size:12px;"> <nyt_exportArtboards>false</nyt_exportArtboards></tspan><tspan x="0" y="201.6" style="font-family:'MyriadPro-Regular'; font-size:12px;"> <nyt_ignoreWarnings>false</nyt_ignoreWarnings></tspan><tspan x="0" y="216" style="font-family:'MyriadPro-Regular'; font-size:12px;"></nyt_prefs></tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 9.5 KiB |
|
@ -0,0 +1,45 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 97 97" style="enable-background:new 0 0 97 97;" xml:space="preserve">
|
||||
<polygon id="XMLID_205_" style="fill:#FFFFFF;" points="69.798,4.726 69.16,93.862 5.765,94.287 3.638,22.809 22.784,3.237 "/>
|
||||
<path id="XMLID_8_" style="fill:#3F578D;" d="M62.054,17.596c-0.055-1.199-1.011-2.249-2.241-2.444
|
||||
c-0.297-0.036-0.599-0.036-0.896-0.035l-24.8,0.002c-1.171-0.064-2.267,0.687-2.636,1.768l-5.265,18.091
|
||||
c-0.36,1.22-0.713,2.441-1.067,3.662c-0.413,1.426-0.826,2.853-1.249,4.276c-0.116-0.278-0.232-0.556-0.349-0.834
|
||||
c-0.254-0.605-0.508-1.211-0.77-1.847c-0.083-0.172-0.153-0.35-0.223-0.528c-0.153-0.388-0.311-0.788-0.612-1.182
|
||||
c-0.553-0.639-1.372-1-2.167-0.971l-4.938,0.001c-0.723,0.004-1.366,0.224-1.782,0.595c-0.509,0.387-0.855,0.989-0.98,1.778
|
||||
l0.001,0.348c0.053,0.667,0.366,1.298,0.837,1.712c0.481,0.474,1.184,0.737,1.932,0.709l3.19-0.002
|
||||
c0.031,0.068,0.063,0.149,0.098,0.249l3.375,8.072c0.146,0.381,0.313,0.813,0.641,1.191c0.549,0.59,1.297,0.936,1.995,0.936
|
||||
c0.027,0,0.055-0.001,0.082-0.002c0.856,0.005,1.763-0.462,2.231-1.19c0.252-0.358,0.356-0.755,0.447-1.104
|
||||
c0.043-0.167,0.086-0.334,0.161-0.531l8.568-28.862c0.087-0.244,0.154-0.493,0.221-0.742c0.038-0.141,0.075-0.281,0.117-0.42
|
||||
c4.549-0.01,9.098-0.009,13.646-0.007c3.222,0.001,6.443,0.002,9.663-0.001c0.529-0.031,0.972-0.099,1.3-0.289
|
||||
c0.81-0.377,1.373-1.176,1.472-2.137L62.054,17.596z"/>
|
||||
<linearGradient id="XMLID_10_" gradientUnits="userSpaceOnUse" x1="52.8209" y1="53.9334" x2="89.0078" y2="90.1202">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_20_" style="fill:url(#XMLID_10_);" d="M70.914,47.051c-14.451,0-26.208,11.204-26.208,24.976
|
||||
c0,13.772,11.757,24.977,26.208,24.977c14.452,0,26.209-11.204,26.209-24.977C97.123,58.255,85.366,47.051,70.914,47.051z"/>
|
||||
<path id="XMLID_17_" style="fill:#FFFFFF;" d="M84.48,69.857H68.904c0-2.382-0.001-4.764,0.001-7.146l-0.019,0
|
||||
c-3.993,3.196-7.989,6.389-11.981,9.586c3.998,3.202,8,6.401,12,9.601c0.001-2.396-0.002-4.791,0.001-7.187
|
||||
c0.088-0.001,0.175,0.007,0.262,0.009v-0.013H84.48V69.857z"/>
|
||||
<g id="XMLID_1_">
|
||||
<circle id="XMLID_2_" style="fill:#3F578D;" cx="15.833" cy="60.701" r="3.833"/>
|
||||
<circle id="XMLID_16_" style="fill:#3F578D;" cx="15.833" cy="75.634" r="3.833"/>
|
||||
<path id="XMLID_28_" style="fill:#3F578D;" d="M26,58.07c-1.452,0-2.629,1.178-2.629,2.63s1.177,2.63,2.629,2.63h15.049
|
||||
c0.58-1.834,1.34-3.592,2.257-5.26H26z"/>
|
||||
<path id="XMLID_29_" style="fill:#3F578D;" d="M26,73.004c-1.452,0-2.629,1.178-2.629,2.63s1.177,2.63,2.629,2.63h14.39
|
||||
c-0.377-1.705-0.598-3.463-0.658-5.26H26z"/>
|
||||
</g>
|
||||
<path id="XMLID_19_" style="fill:#3F578D;" d="M45.564,47.207l4.212-6.357l4.05,6.113c1.464-0.924,3.013-1.733,4.633-2.413
|
||||
l-5.602-8.067l6.63-9.438h-6.123l-3.51,5.265l-3.549-5.265h-6.318l6.63,9.555l-7.254,10.608H45.564z"/>
|
||||
<linearGradient id="XMLID_11_" gradientUnits="userSpaceOnUse" x1="4.4632" y1="15.963" x2="69.589" y2="81.0888">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_9_" style="fill:url(#XMLID_11_);" d="M65.273,0H21.876c-0.929,0-1.818,0.369-2.475,1.025l-3.247,3.247L3.067,17.359
|
||||
l-2.042,2.042C0.369,20.058,0,20.948,0,21.876v66.397C0,93.085,3.915,97,8.727,97h44.951c-2.969-1.897-5.585-4.267-7.724-7H8.727
|
||||
C7.791,90,7,89.209,7,88.273V24.912h14.739c1.65,0,3-1.35,3-3V7.272c0-0.093-0.019-0.181-0.028-0.272h40.562
|
||||
C66.209,7,67,7.791,67,8.727v33.568c1.283-0.155,2.588-0.244,3.914-0.244c1.041,0,2.07,0.051,3.086,0.148V8.727
|
||||
C74,3.915,70.085,0,65.273,0z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 3.6 KiB |
|
@ -0,0 +1,68 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 97 97" style="enable-background:new 0 0 97 97;" xml:space="preserve">
|
||||
<polygon id="XMLID_205_" style="fill:#FFFFFF;" points="69.798,4.726 69.16,93.862 5.765,94.287 3.638,22.809 22.784,3.237 "/>
|
||||
<g id="XMLID_1_">
|
||||
<path id="XMLID_28_" style="fill:#3F578D;" d="M12.229,35.198c0.078-1.3,0.403-2.379,0.975-3.237
|
||||
c0.571-0.857,1.3-1.546,2.184-2.066s1.872-0.891,2.964-1.112c1.092-0.22,2.209-0.331,3.354-0.331c1.014,0,2.041,0.072,3.081,0.215
|
||||
c1.04,0.143,1.989,0.423,2.847,0.838c0.858,0.416,1.56,1.001,2.106,1.755c0.546,0.755,0.819,1.729,0.819,2.926v10.49
|
||||
c0,0.911,0.052,1.781,0.156,2.613C30.818,48.12,31,48.744,31.26,49.16h-5.616c-0.104-0.312-0.189-0.63-0.253-0.956
|
||||
c-0.065-0.325-0.111-0.656-0.137-0.995c-0.884,0.91-1.924,1.554-3.12,1.931c-1.196,0.377-2.418,0.565-3.666,0.565
|
||||
c-0.962,0-1.859-0.124-2.691-0.37c-0.833-0.247-1.56-0.618-2.184-1.112s-1.111-1.118-1.462-1.872s-0.526-1.651-0.526-2.691
|
||||
c0-1.144,0.195-2.087,0.585-2.827c0.39-0.741,0.91-1.332,1.56-1.774c0.649-0.442,1.384-0.773,2.204-0.995
|
||||
c0.819-0.221,1.657-0.396,2.515-0.526c0.858-0.13,1.677-0.234,2.457-0.312c0.78-0.078,1.476-0.195,2.086-0.352
|
||||
s1.098-0.383,1.463-0.683c0.364-0.298,0.546-0.734,0.546-1.307c0-0.598-0.098-1.072-0.292-1.423
|
||||
c-0.195-0.352-0.455-0.624-0.78-0.819s-0.702-0.324-1.131-0.39c-0.429-0.064-0.891-0.098-1.384-0.098
|
||||
c-1.066,0-1.918,0.234-2.555,0.702c-0.637,0.468-1.008,1.248-1.111,2.34H12.229z M25.021,39.292
|
||||
c-0.234,0.209-0.526,0.371-0.877,0.487c-0.351,0.117-0.729,0.215-1.131,0.293c-0.403,0.078-0.832,0.144-1.287,0.195
|
||||
c-0.456,0.052-0.891,0.116-1.307,0.194c-0.442,0.078-0.858,0.183-1.248,0.313s-0.735,0.306-1.034,0.526s-0.54,0.507-0.721,0.857
|
||||
c-0.182,0.352-0.273,0.774-0.273,1.268c0,0.521,0.091,0.943,0.273,1.268c0.182,0.326,0.429,0.585,0.741,0.78
|
||||
s0.676,0.332,1.092,0.409C19.664,45.961,20.093,46,20.536,46c1.092,0,1.937-0.182,2.535-0.546c0.598-0.363,1.04-0.8,1.326-1.307
|
||||
c0.286-0.507,0.461-1.02,0.526-1.54c0.064-0.521,0.098-0.937,0.098-1.248V39.292z"/>
|
||||
<path id="XMLID_32_" style="fill:#3F578D;" d="M34.653,21.314h5.538v10.14h0.078c0.676-1.039,1.592-1.8,2.75-2.281
|
||||
c1.156-0.481,2.359-0.722,3.607-0.722c1.014,0,2.014,0.208,3.002,0.624s1.879,1.053,2.672,1.911
|
||||
c0.793,0.857,1.436,1.956,1.93,3.295c0.494,1.34,0.742,2.932,0.742,4.778c0,1.846-0.248,3.438-0.742,4.777s-1.137,2.444-1.93,3.314
|
||||
c-0.793,0.872-1.684,1.516-2.672,1.931c-0.988,0.416-1.988,0.624-3.002,0.624c-1.482,0-2.809-0.24-3.979-0.722
|
||||
c-1.17-0.48-2.055-1.28-2.652-2.398h-0.078v2.575h-5.265V21.314z M49.434,39.098c0-0.858-0.09-1.678-0.271-2.457
|
||||
c-0.184-0.78-0.469-1.469-0.859-2.067c-0.389-0.598-0.883-1.072-1.48-1.424c-0.6-0.351-1.301-0.526-2.107-0.526
|
||||
c-0.832,0-1.539,0.176-2.125,0.526c-0.586,0.352-1.072,0.826-1.463,1.424c-0.389,0.599-0.676,1.287-0.857,2.067
|
||||
c-0.182,0.779-0.273,1.599-0.273,2.457c0,0.832,0.092,1.638,0.273,2.418c0.182,0.779,0.469,1.469,0.857,2.066
|
||||
c0.391,0.599,0.877,1.072,1.463,1.424c0.586,0.351,1.293,0.526,2.125,0.526c0.807,0,1.508-0.176,2.107-0.526
|
||||
c0.598-0.352,1.092-0.825,1.48-1.424c0.391-0.598,0.676-1.287,0.859-2.066C49.344,40.736,49.434,39.93,49.434,39.098z"/>
|
||||
</g>
|
||||
<linearGradient id="XMLID_9_" gradientUnits="userSpaceOnUse" x1="52.8209" y1="53.9334" x2="89.0078" y2="90.1202">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_18_" style="fill:url(#XMLID_9_);" d="M70.914,47.051c-14.451,0-26.208,11.204-26.208,24.976
|
||||
c0,13.772,11.757,24.977,26.208,24.977c14.452,0,26.209-11.204,26.209-24.977C97.123,58.255,85.366,47.051,70.914,47.051z"/>
|
||||
<path id="XMLID_17_" style="fill:#FFFFFF;" d="M84.48,69.857H68.904c0-2.382-0.001-4.764,0.001-7.146l-0.019,0
|
||||
c-3.993,3.196-7.989,6.389-11.981,9.586c3.998,3.202,8,6.401,12,9.601c0.001-2.396-0.002-4.791,0.001-7.187
|
||||
c0.088-0.001,0.175,0.007,0.262,0.009v-0.013H84.48V69.857z"/>
|
||||
<g id="XMLID_2_">
|
||||
<circle id="XMLID_3_" style="fill:#3F578D;" cx="15.833" cy="60.701" r="3.833"/>
|
||||
<circle id="XMLID_13_" style="fill:#3F578D;" cx="15.833" cy="75.634" r="3.833"/>
|
||||
<path id="XMLID_14_" style="fill:#3F578D;" d="M26,58.07c-1.452,0-2.629,1.178-2.629,2.63s1.177,2.63,2.629,2.63h15.049
|
||||
c0.58-1.834,1.34-3.592,2.257-5.26H26z"/>
|
||||
<path id="XMLID_15_" style="fill:#3F578D;" d="M26,73.004c-1.452,0-2.629,1.178-2.629,2.63s1.177,2.63,2.629,2.63h14.39
|
||||
c-0.377-1.705-0.598-3.463-0.658-5.26H26z"/>
|
||||
</g>
|
||||
<path id="XMLID_12_" style="fill:#3F578D;" d="M53.049,19.131h1.588c0.706-0.001,1.41-0.001,2.122,0.001c0.006,0,0.012,0,0.019,0
|
||||
c0.405,0,0.808,0.29,0.94,0.675c0.057,0.181,0.052,0.385,0.048,0.601c-0.002,0.083-0.004,0.167-0.002,0.245
|
||||
c0.002,4.62,0.001,9.241,0.001,13.861c-0.001,3.442,0.001,6.89,0.001,10.336c0.723-0.324,1.46-0.624,2.212-0.896l-0.001-23.846
|
||||
c-0.009-0.423,0.319-0.838,0.738-0.941c0.241-0.05,0.493-0.044,0.762-0.038c0.117,0.002,0.235,0.006,0.352,0.003
|
||||
c0.461-0.005,0.924-0.004,1.389-0.001c0.525,0.002,1.051,0.004,1.565-0.004c0.011,0,0.021,0,0.031,0c0.548,0,1.035-0.452,1.07-0.987
|
||||
c0.038-0.303-0.066-0.613-0.286-0.85c-0.219-0.236-0.521-0.368-0.81-0.348c-1.04-0.009-2.079-0.006-3.119-0.004l-0.702,0.001
|
||||
c-0.004,0-0.007,0-0.011,0c-0.735,0-1.482,0.285-2.083,0.789c-0.613-0.506-1.323-0.784-2.02-0.788c-1.309-0.006-2.616-0.006-3.915,0
|
||||
c-0.334,0-0.629,0.143-0.844,0.411c-0.212,0.265-0.294,0.608-0.22,0.917C51.986,18.802,52.511,19.178,53.049,19.131z"/>
|
||||
<linearGradient id="XMLID_10_" gradientUnits="userSpaceOnUse" x1="4.4632" y1="15.963" x2="69.589" y2="81.0888">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_16_" style="fill:url(#XMLID_10_);" d="M45.954,90H8.727C7.791,90,7,89.209,7,88.273V24.912h14.739
|
||||
c1.65,0,3-1.35,3-3V7.272c0-0.093-0.019-0.181-0.028-0.272h40.562C66.209,7,67,7.791,67,8.727v33.568
|
||||
c1.283-0.155,2.588-0.244,3.914-0.244c1.041,0,2.07,0.051,3.086,0.148V8.727C74,3.915,70.085,0,65.273,0H21.876
|
||||
c-0.929,0-1.818,0.369-2.475,1.025l-3.247,3.247L3.067,17.359l-2.042,2.042C0.369,20.058,0,20.948,0,21.876v66.397
|
||||
C0,93.085,3.915,97,8.727,97h44.951C50.708,95.103,48.093,92.733,45.954,90z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 6.1 KiB |
|
@ -0,0 +1,39 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 97 97" style="enable-background:new 0 0 97 97;" xml:space="preserve">
|
||||
<polygon id="XMLID_205_" style="fill:#FFFFFF;" points="69.798,4.726 69.16,93.862 5.765,94.287 3.638,22.809 22.784,3.237 "/>
|
||||
<linearGradient id="XMLID_9_" gradientUnits="userSpaceOnUse" x1="52.7274" y1="54.0975" x2="88.9141" y2="90.2842">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_18_" style="fill:url(#XMLID_9_);" d="M70.82,47.215c-14.451,0-26.208,11.204-26.208,24.976
|
||||
c0,13.772,11.757,24.977,26.208,24.977c14.452,0,26.209-11.204,26.209-24.977C97.029,58.419,85.272,47.215,70.82,47.215z"/>
|
||||
<path id="XMLID_19_" style="fill:#FFFFFF;" d="M84.08,63.877c0.386-0.703,0.47-1.457,0.248-2.286
|
||||
c-0.218-0.816-0.673-1.405-1.394-1.8c-0.725-0.399-1.48-0.479-2.307-0.241c-0.823,0.237-1.417,0.706-1.816,1.434l-0.013,0.021
|
||||
l-10.662,16.81l-4.968-4.883c-0.584-0.585-1.274-0.868-2.112-0.868c-0.839,0-1.528,0.282-2.107,0.862
|
||||
c-0.581,0.58-0.863,1.27-0.863,2.107c0,0.849,0.288,1.567,0.882,2.197l7.741,7.74c0.579,0.58,1.269,0.862,2.107,0.862
|
||||
c1.258,0,2.099-0.494,2.647-1.554L84.08,63.877z"/>
|
||||
<g id="XMLID_1_">
|
||||
<path id="XMLID_3_" style="fill:#3F578D;" d="M38.187,28.411h21.345c1.657,0,3-1.343,3-3s-1.343-3-3-3H38.187c-1.657,0-3,1.343-3,3
|
||||
S36.531,28.411,38.187,28.411z"/>
|
||||
<path id="XMLID_16_" style="fill:#3F578D;" d="M59.532,37.282H27c-1.452,0-2.629,1.177-2.629,2.629s1.177,2.629,2.629,2.629h32.532
|
||||
c1.452,0,2.63-1.177,2.63-2.629S60.984,37.282,59.532,37.282z"/>
|
||||
<circle id="XMLID_17_" style="fill:#3F578D;" cx="16.833" cy="39.911" r="3.833"/>
|
||||
<circle id="XMLID_20_" style="fill:#3F578D;" cx="16.833" cy="54.701" r="3.833"/>
|
||||
<circle id="XMLID_28_" style="fill:#3F578D;" cx="16.833" cy="69.634" r="3.833"/>
|
||||
<path id="XMLID_29_" style="fill:#3F578D;" d="M27,67.004c-1.452,0-2.629,1.178-2.629,2.63s1.177,2.63,2.629,2.63h12.614
|
||||
c0-0.025-0.002-0.049-0.002-0.073c0-1.769,0.17-3.5,0.477-5.187H27z"/>
|
||||
<path id="XMLID_30_" style="fill:#3F578D;" d="M24.371,54.7c0,1.452,1.177,2.63,2.629,2.63h16.735
|
||||
c1.129-1.89,2.458-3.656,3.973-5.26H27C25.548,52.07,24.371,53.248,24.371,54.7z"/>
|
||||
</g>
|
||||
<linearGradient id="XMLID_10_" gradientUnits="userSpaceOnUse" x1="4.4632" y1="15.963" x2="69.4124" y2="80.9122">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_2_" style="fill:url(#XMLID_10_);" d="M45.735,90H8.727C7.791,90,7,89.209,7,88.273V24.912h14.739c1.65,0,3-1.35,3-3
|
||||
V7.272c0-0.093-0.019-0.181-0.028-0.272h40.562C66.209,7,67,7.791,67,8.727v33.721c1.253-0.148,2.526-0.233,3.82-0.233
|
||||
c1.073,0,2.134,0.052,3.18,0.155V8.727C74,3.915,70.085,0,65.273,0H21.876c-0.929,0-1.818,0.369-2.475,1.025l-3.247,3.247
|
||||
L3.067,17.359l-2.042,2.042C0.369,20.058,0,20.948,0,21.876v66.397C0,93.085,3.915,97,8.727,97h44.598
|
||||
C50.403,95.093,47.836,92.722,45.735,90z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 3.0 KiB |
|
@ -0,0 +1,41 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 97 97" style="enable-background:new 0 0 97 97;" xml:space="preserve">
|
||||
<path id="XMLID_37_" style="fill:#3F578D;" d="M80.3,13.46c0-2.76,2.24-5,5-5l0,0c2.76,0,5,2.24,5,5l0,0c0,2.76-2.24,5-5,5l0,0
|
||||
C82.54,18.46,80.3,16.22,80.3,13.46z M65.3,13.46c0-2.76,2.24-5,5-5l0,0c2.76,0,5,2.24,5,5l0,0c0,2.76-2.24,5-5,5l0,0
|
||||
C67.54,18.46,65.3,16.22,65.3,13.46z M50.3,13.46c0-2.76,2.24-5,5-5l0,0c2.76,0,5,2.24,5,5l0,0c0,2.76-2.24,5-5,5l0,0
|
||||
C52.54,18.46,50.3,16.22,50.3,13.46z"/>
|
||||
<path id="XMLID_6_" style="fill:#3F578D;" d="M0.64,13.47c0-2.76,2.23-5,5-5l0,0c2.76,0,5,2.23,5,5l0,0c0,2.76-2.24,5-5,5l0,0
|
||||
C2.88,18.47,0.64,16.23,0.64,13.47z"/>
|
||||
<path id="XMLID_4_" style="fill:#3F578D;" d="M79.479,83.76c0-2.77,2.24-5,5-5l0,0c2.761,0,5,2.23,5,5l0,0c0,2.76-2.239,5-5,5l0,0
|
||||
C81.72,88.76,79.479,86.52,79.479,83.76z M64.479,83.76c0-2.77,2.24-5,5-5l0,0c2.761,0,5,2.23,5,5l0,0c0,2.76-2.239,5-5,5l0,0
|
||||
C66.72,88.76,64.479,86.52,64.479,83.76z M49.479,83.76c0-2.77,2.24-5,5-5l0,0c2.761,0,5,2.23,5,5l0,0c0,2.76-2.239,5-5,5l0,0
|
||||
C51.72,88.76,49.479,86.52,49.479,83.76z M34.48,83.76c0-2.77,2.24-5,5-5l0,0c2.76,0,5,2.23,5,5l0,0c0,2.76-2.24,5-5,5l0,0
|
||||
C36.72,88.76,34.48,86.52,34.48,83.76z"/>
|
||||
<path id="XMLID_3_" style="fill:#FFFFFF;" d="M30.12,0c6.904,0,12.5,5.596,12.5,12.5S37.024,25,30.12,25s-12.5-5.596-12.5-12.5
|
||||
S23.216,0,30.12,0 M30.12-7c-10.752,0-19.5,8.748-19.5,19.5S19.368,32,30.12,32s19.5-8.748,19.5-19.5S40.872-7,30.12-7L30.12-7z"/>
|
||||
<g id="XMLID_20_">
|
||||
<circle id="XMLID_24_" style="fill:#00A3D3;" cx="12.5" cy="84.5" r="12.5"/>
|
||||
<path id="XMLID_7_" style="fill:#FFFFFF;" d="M12.5,72C19.404,72,25,77.596,25,84.5S19.404,97,12.5,97S0,91.404,0,84.5
|
||||
S5.596,72,12.5,72"/>
|
||||
</g>
|
||||
<path id="XMLID_8_" style="fill:#00A3D3;" d="M65.111,36c-0.863,0-1.705,0.087-2.519,0.254s-1.599,0.412-2.346,0.728
|
||||
c-2.243,0.949-4.152,2.534-5.5,4.529c-1.348,1.995-2.135,4.4-2.135,6.989c0,2.589,0.787,4.994,2.135,6.989
|
||||
c1.348,1.995,3.256,3.58,5.5,4.529c0.748,0.316,1.533,0.562,2.346,0.728S64.248,61,65.111,61c6.904,0,12.5-5.596,12.5-12.5
|
||||
S72.015,36,65.111,36z"/>
|
||||
<path id="XMLID_11_" style="fill:#C9150B;" d="M65.111,31c9.665,0,17.5,7.835,17.5,17.5S74.776,66,65.111,66
|
||||
c-9.665,0-17.5-7.835-17.5-17.5S55.446,31,65.111,31 M65.111,28c-11.304,0-20.5,9.196-20.5,20.5S53.808,69,65.111,69
|
||||
s20.5-9.196,20.5-20.5S76.415,28,65.111,28L65.111,28z"/>
|
||||
<path id="XMLID_45_" style="fill:#3F578D;" d="M89.717,44.11c0.254,1.426,0.394,2.892,0.394,4.39c0,1.575-0.153,3.114-0.433,4.609
|
||||
H97v-9H89.717z"/>
|
||||
<g id="XMLID_12_">
|
||||
<polygon id="XMLID_42_" style="fill:#3F578D;" points="14.663,44.11 0,44.11 0,53.109 12.461,53.109 "/>
|
||||
<path id="XMLID_44_" style="fill:#3F578D;" d="M40.505,44.11h-10.4l-2.202,9h12.641c-0.28-1.495-0.433-3.034-0.433-4.609
|
||||
C40.111,47.002,40.251,45.536,40.505,44.11z"/>
|
||||
</g>
|
||||
<path id="XMLID_10_" style="fill:#00A3D3;" d="M40.448,19.539c1.369-2.005,2.172-4.427,2.172-7.039c0-6.904-5.596-12.5-12.5-12.5
|
||||
s-12.5,5.596-12.5,12.5c0,4.992,2.933,9.287,7.163,11.291L12.979,72.024C12.819,72.018,12.662,72,12.5,72C5.596,72,0,77.596,0,84.5
|
||||
S5.596,97,12.5,97S25,91.404,25,84.5c0-4.992-2.933-9.287-7.163-11.291l11.804-48.234C29.801,24.982,29.958,25,30.12,25
|
||||
c2.483,0,4.792-0.733,6.737-1.982l9.135,9.398c1.076-1.277,2.279-2.444,3.587-3.484L40.448,19.539z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 3.3 KiB |
|
@ -0,0 +1,40 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="-372 644 97 97" style="enable-background:new -372 644 97 97;" xml:space="preserve">
|
||||
<polygon id="XMLID_6_" style="fill:#3F578D;" points="-353.068,691.608 -372,691.608 -372,700.608 -356.603,700.608 "/>
|
||||
<path id="XMLID_43_" style="fill:#3F578D;" d="M-340.96,727.75c0-2.76,2.24-5,5-5l0,0c2.76,0,5,2.24,5,5l0,0
|
||||
c0,2.77-2.24,5.01-5,5.01l0,0C-338.72,732.76-340.96,730.52-340.96,727.75z"/>
|
||||
<path id="XMLID_32_" style="fill:#3F578D;" d="M-292.7,664.46c0-2.76,2.24-5,5-5l0,0c2.76,0,5,2.24,5,5l0,0c0,2.76-2.24,5-5,5l0,0
|
||||
C-290.46,669.46-292.7,667.22-292.7,664.46z M-307.7,664.46c0-2.76,2.24-5,5-5l0,0c2.76,0,5,2.24,5,5l0,0c0,2.76-2.24,5-5,5l0,0
|
||||
C-305.46,669.46-307.7,667.22-307.7,664.46z"/>
|
||||
<path id="XMLID_16_" style="fill:#3F578D;" d="M-371.36,664.47c0-2.76,2.23-5,5-5l0,0c2.76,0,5,2.23,5,5l0,0c0,2.76-2.24,5-5,5l0,0
|
||||
C-369.12,669.47-371.36,667.23-371.36,664.47z"/>
|
||||
<linearGradient id="XMLID_7_" gradientUnits="userSpaceOnUse" x1="-319.2726" y1="698.0975" x2="-283.0859" y2="734.2842">
|
||||
<stop offset="0" style="stop-color:#3F578D"/>
|
||||
<stop offset="1" style="stop-color:#009DD1"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_10_" style="fill:url(#XMLID_7_);" d="M-301.18,691.215c-14.451,0-26.208,11.204-26.208,24.976
|
||||
c0,13.772,11.757,24.977,26.208,24.977c14.452,0,26.209-11.204,26.209-24.977C-274.971,702.419-286.728,691.215-301.18,691.215z"/>
|
||||
<g id="XMLID_18_">
|
||||
<path id="XMLID_19_" style="fill:#FFFFFF;" d="M-314.939,714.167c0,6.349,5.144,11.496,11.495,11.496
|
||||
c1.852,0,3.599-0.44,5.148-1.217l5.751,5.751l0.014-0.014c0.575,0.586,1.38,0.947,2.281,0.947c1.763,0,3.169-1.38,3.169-3.145
|
||||
c0-0.914-0.365-1.722-0.96-2.291l0.019-0.019l-5.574-5.574c1.046-1.732,1.648-3.762,1.648-5.934
|
||||
c0-6.348-5.145-11.496-11.496-11.496C-309.794,702.672-314.939,707.819-314.939,714.167z M-310.697,713.958
|
||||
c0-3.968,3.215-7.185,7.184-7.185s7.185,3.217,7.185,7.185c0,3.968-3.216,7.185-7.185,7.185S-310.698,717.926-310.697,713.958z"/>
|
||||
</g>
|
||||
<circle id="XMLID_27_" style="fill:#00A3D3;" cx="-334.362" cy="664.5" r="12.5"/>
|
||||
<g id="XMLID_4_">
|
||||
<path id="XMLID_9_" style="fill:#00A3D3;" d="M-352.698,718.021l11.938-30.394c-1.626-0.451-3.183-1.068-4.652-1.833
|
||||
l-11.942,30.403c-0.699-0.121-1.413-0.197-2.146-0.197c-6.904,0-12.5,5.596-12.5,12.5s5.596,12.5,12.5,12.5s12.5-5.596,12.5-12.5
|
||||
C-347,724.107-349.271,720.25-352.698,718.021z"/>
|
||||
</g>
|
||||
<path id="XMLID_15_" style="fill:#C9150B;" d="M-334.362,647c9.665,0,17.5,7.835,17.5,17.5s-7.835,17.5-17.5,17.5
|
||||
c-9.665,0-17.5-7.835-17.5-17.5S-344.027,647-334.362,647 M-334.362,644c-11.304,0-20.5,9.196-20.5,20.5s9.196,20.5,20.5,20.5
|
||||
s20.5-9.196,20.5-20.5S-323.058,644-334.362,644L-334.362,644z"/>
|
||||
<g id="XMLID_2_">
|
||||
<path id="XMLID_8_" style="fill:#3F578D;" d="M-275,699.903v-8.295h-8.352C-280.042,693.829-277.203,696.649-275,699.903z"/>
|
||||
<path id="XMLID_11_" style="fill:#3F578D;" d="M-319.007,691.608h-17.945l-3.535,9h12.657
|
||||
C-325.568,697.053-322.554,693.989-319.007,691.608z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.0 KiB |
|
@ -0,0 +1,248 @@
|
|||
<?xml version="1.0"?>
|
||||
<tryton>
|
||||
<data>
|
||||
|
||||
<!-- Create the Lims icons -->
|
||||
|
||||
<record model="ir.ui.icon" id="lab_icon">
|
||||
<field name="name">lims-lab</field>
|
||||
<field name="path">icons/lab_icon.svg</field>
|
||||
</record>
|
||||
<record model="ir.ui.icon" id="configuration_icon">
|
||||
<field name="name">lims-configuration</field>
|
||||
<field name="path">icons/configuration.svg</field>
|
||||
</record>
|
||||
<record model="ir.ui.icon" id="entry_board_icon">
|
||||
<field name="name">lims-entry_board</field>
|
||||
<field name="path">icons/entry_board.svg</field>
|
||||
</record>
|
||||
<record model="ir.ui.icon" id="laboratory_icon">
|
||||
<field name="name">lims-laboratory</field>
|
||||
<field name="path">icons/laboratory.svg</field>
|
||||
</record>
|
||||
<record model="ir.ui.icon" id="notebook_icon">
|
||||
<field name="name">lims-notebook</field>
|
||||
<field name="path">icons/notebook.svg</field>
|
||||
</record>
|
||||
<record model="ir.ui.icon" id="notebook_line_all_menu_icon">
|
||||
<field name="name">lims-notebook_line_all_menu</field>
|
||||
<field name="path">icons/notebook_line_all_menu.svg</field>
|
||||
</record>
|
||||
<record model="ir.ui.icon" id="laboratory_results_icon">
|
||||
<field name="name">lims-laboratory_results</field>
|
||||
<field name="path">icons/laboratory_results.svg</field>
|
||||
</record>
|
||||
<record model="ir.ui.icon" id="notebook_load_results_manual_icon">
|
||||
<field name="name">lims-notebook_load_results_manual</field>
|
||||
<field name="path">icons/notebook_load_results_manual.svg</field>
|
||||
</record>
|
||||
<record model="ir.ui.icon" id="notebook_load_results_formula_icon">
|
||||
<field name="name">lims-notebook_load_results_formula</field>
|
||||
<field name="path">icons/notebook_load_results_formula.svg</field>
|
||||
</record>
|
||||
<record model="ir.ui.icon" id="laboratory_reports_icon">
|
||||
<field name="name">lims-laboratory_reports</field>
|
||||
<field name="path">icons/laboratory_reports.svg</field>
|
||||
</record>
|
||||
<record model="ir.ui.icon" id="generate_results_report_icon">
|
||||
<field name="name">lims-generate_results_report</field>
|
||||
<field name="path">icons/generate_results_report.svg</field>
|
||||
</record>
|
||||
<record model="ir.ui.icon" id="results_report_version_detail_icon">
|
||||
<field name="name">lims-results_report_version_detail</field>
|
||||
<field name="path">icons/results_report_version_detail.svg</field>
|
||||
</record>
|
||||
<record model="ir.ui.icon" id="laboratory_control_icon">
|
||||
<field name="name">lims-laboratory_control</field>
|
||||
<field name="path">icons/laboratory_control.svg</field>
|
||||
</record>
|
||||
<record model="ir.ui.icon" id="tendencies_icon">
|
||||
<field name="name">lims-tendencies</field>
|
||||
<field name="path">icons/tendencies.svg</field>
|
||||
</record>
|
||||
<record model="ir.ui.icon" id="concentration_level_icon">
|
||||
<field name="name">lims-concentration_level</field>
|
||||
<field name="path">icons/concentration_level.svg</field>
|
||||
</record>
|
||||
<record model="ir.ui.icon" id="control_means_deviations_calc_icon">
|
||||
<field name="name">lims-control_means_deviations_calc</field>
|
||||
<field name="path">icons/control_means_deviations_calc.svg</field>
|
||||
</record>
|
||||
<record model="ir.ui.icon" id="tendencies_analysis_icon">
|
||||
<field name="name">lims-tendencies_analysis</field>
|
||||
<field name="path">icons/tendencies_analysis.svg</field>
|
||||
</record>
|
||||
|
||||
<!-- Menu -->
|
||||
|
||||
<menuitem name="LIMS"
|
||||
id="lims_menu" icon="lims-lab"/>
|
||||
|
||||
<!-- Configuration -->
|
||||
<menuitem name="Configuration" parent="lims_menu"
|
||||
id="lims_config" sequence="10" icon="lims-configuration"/>
|
||||
|
||||
<!-- Configuration / Base -->
|
||||
<menuitem name="Base" parent="lims_config"
|
||||
id="lims_config_base" sequence="10"/>
|
||||
<menuitem parent="lims_config_base" action="act_lims_configuration"
|
||||
id="lims_configuration_menu" sequence="10"/>
|
||||
<menuitem parent="lims_config_base" action="act_lims_workyear_list"
|
||||
id="lims_workyear_menu" sequence="20"/>
|
||||
<menuitem parent="lims_config_base" action="act_printer_list"
|
||||
id="lims_printer_menu" sequence="30"/>
|
||||
|
||||
<!-- Configuration / Certification -->
|
||||
<menuitem name="Certification" parent="lims_config"
|
||||
id="lims_config_certification" sequence="20"/>
|
||||
<menuitem parent="lims_config_certification" action="act_lims_certification_type_list"
|
||||
id="lims_certification_type_list_menu" sequence="10"/>
|
||||
<menuitem parent="lims_config_certification" action="act_lims_analysis_family_list"
|
||||
id="lims_analysis_family_menu" sequence="20"/>
|
||||
<menuitem parent="lims_config_certification" action="act_lims_technical_scope_list"
|
||||
id="lims_technical_scope_menu" sequence="30"/>
|
||||
<menuitem parent="lims_technical_scope_menu" action="act_lims_technical_scope_version_list"
|
||||
id="lims_technical_scope_version_menu" sequence="10"/>
|
||||
|
||||
<!-- Configuration / Entry -->
|
||||
<menuitem name="Entry" parent="lims_config"
|
||||
id="lims_config_entry" sequence="30"/>
|
||||
<menuitem parent="lims_config_entry" action="act_lims_packaging_type_list"
|
||||
id="lims_packaging_type_menu" sequence="10"/>
|
||||
<menuitem parent="lims_config_entry" action="act_lims_packaging_integrity_list"
|
||||
id="lims_packaging_integrity_menu" sequence="20"/>
|
||||
<menuitem parent="lims_config_entry" action="act_lims_variety_list"
|
||||
id="lims_variety_menu" sequence="30"/>
|
||||
<menuitem parent="lims_config_entry" action="act_lims_zone_list"
|
||||
id="lims_zone_menu" sequence="40"/>
|
||||
<menuitem parent="lims_config_entry" action="act_lims_entry_suspension_reason_list"
|
||||
id="lims_entry_suspension_reason_menu" sequence="50"/>
|
||||
|
||||
<!-- Configuration / Laboratory -->
|
||||
<menuitem name="Laboratory" parent="lims_config"
|
||||
id="lims_config_laboratory" sequence="40"/>
|
||||
<menuitem parent="lims_config_laboratory" action="act_lims_laboratory_list"
|
||||
id="lims_laboratory_menu" sequence="10"/>
|
||||
<menuitem parent="lims_config_laboratory" action="act_lims_laboratory_professional_list"
|
||||
id="lims_laboratory_professional_menu" sequence="20"/>
|
||||
<menuitem parent="lims_config_laboratory" action="act_lims_notebook_views_list"
|
||||
id="lims_notebook_views_menu" sequence="30"/>
|
||||
<menuitem parent="lims_config_laboratory" action="act_lims_lab_device_type_list"
|
||||
id="lims_lab_device_type_menu" sequence="40"/>
|
||||
<menuitem parent="lims_config_laboratory" action="act_lims_lab_device_list"
|
||||
id="lims_lab_device_menu" sequence="50"/>
|
||||
|
||||
<!-- Configuration / Base Tables -->
|
||||
<menuitem name="Base Tables" parent="lims_config"
|
||||
id="lims_config_base_tables" sequence="70"/>
|
||||
<menuitem parent="lims_config_base_tables" action="act_lims_product_type_list"
|
||||
id="lims_product_type_menu" sequence="10"/>
|
||||
<menuitem parent="lims_config_base_tables" action="act_lims_matrix_list"
|
||||
id="lims_matrix_menu" sequence="20"/>
|
||||
<menuitem parent="lims_config_base_tables" action="act_lims_lab_method_list"
|
||||
id="lims_lab_method_menu" sequence="30"/>
|
||||
<menuitem parent="lims_config_base_tables" action="act_lims_formula_list"
|
||||
id="lims_formula_list_menu" sequence="40"/>
|
||||
<menuitem parent="lims_config_base_tables" action="act_lims_analysis_list"
|
||||
id="lims_analysis_menu" sequence="50"/>
|
||||
<menuitem parent="lims_config_base_tables" action="act_lims_typification_list"
|
||||
id="lims_typification_menu" sequence="60"/>
|
||||
<menuitem parent="lims_typification_menu" action="act_lims_typification_calculated_readonly_list"
|
||||
id="lims_typification_calculated_menu" sequence="10"/>
|
||||
<menuitem parent="lims_config_base_tables" action="act_lims_fraction_type_list"
|
||||
id="lims_fraction_type_menu" sequence="70"/>
|
||||
<menuitem parent="lims_config_base_tables" action="act_lims_range_type_list"
|
||||
id="lims_range_type_list_menu" sequence="80"/>
|
||||
<menuitem parent="lims_config_base_tables" action="act_lims_range_list"
|
||||
id="lims_range_list_menu" sequence="90"/>
|
||||
<menuitem parent="lims_config_base_tables" action="act_lims_volume_conversion_list"
|
||||
id="lims_volume_conversion_list_menu" sequence="100"/>
|
||||
<menuitem parent="lims_config_base_tables" action="act_lims_uom_conversion_list"
|
||||
id="lims_uom_conversion_list_menu" sequence="110"/>
|
||||
|
||||
<!-- Entries Board -->
|
||||
<menuitem parent="lims_menu" name="Entries Board"
|
||||
id="lims_entry_board_menu" sequence="30" icon="lims-entry_board"/>
|
||||
<!-- <menuitem parent="lims_entry_board_menu" action="wiz_lims_create_entry"
|
||||
id="lims_create_entry_menu" sequence="5"/>-->
|
||||
<menuitem parent="lims_entry_board_menu" action="act_lims_entry_form"
|
||||
id="lims_entry_form_menu" sequence="10" icon="tryton-new"/>
|
||||
<menuitem parent="lims_entry_board_menu" action="act_lims_entry_list"
|
||||
id="lims_entry_menu" sequence="20" icon="tryton-list"/>
|
||||
<menuitem parent="lims_entry_board_menu" action="act_lims_sample_list"
|
||||
id="lims_sample_menu" sequence="30"/>
|
||||
<menuitem parent="lims_entry_board_menu" action="act_lims_fraction_list"
|
||||
id="lims_fraction_menu" sequence="40"/>
|
||||
<menuitem parent="lims_fraction_menu" action="wizard_fractions_by_locations"
|
||||
id="lims_fractions_by_locations_menu" sequence="10"/>
|
||||
<menuitem parent="lims_entry_board_menu" action="act_lims_service_list"
|
||||
id="lims_service_menu" sequence="50"/>
|
||||
<menuitem parent="lims_entry_board_menu" action="act_lims_entry_detail_analysis_list"
|
||||
id="lims_entry_detail_analysis_menu" sequence="60"/>
|
||||
|
||||
<!-- Laboratory -->
|
||||
<menuitem name="Laboratory" parent="lims_menu"
|
||||
id="lims_laboratory" sequence="50"
|
||||
icon="lims-laboratory"/>
|
||||
<menuitem parent="lims_laboratory" action="act_lims_notebook_list"
|
||||
id="lims_notebook_menu" sequence="15"
|
||||
icon="lims-notebook"/>
|
||||
<menuitem parent="lims_notebook_menu" action="act_lims_notebook_line_all_fields_list"
|
||||
id="lims_notebook_line_all_menu" sequence="10"
|
||||
icon="lims-notebook_line_all_menu"/>
|
||||
<menuitem parent="lims_notebook_line_all_menu" action="wiz_print_analysis_pending_inform"
|
||||
id="menu_print_analysis_pending_inform" sequence="100"
|
||||
icon="tryton-print"/>
|
||||
<menuitem parent="lims_notebook_line_all_menu" action="wiz_print_analysis_checked_pending_inform"
|
||||
id="menu_print_analysis_checked_pending_inform" sequence="100"
|
||||
icon="tryton-print"/>
|
||||
|
||||
<!-- Laboratory / Results entry -->
|
||||
<menuitem name="Results entry" parent="lims_laboratory"
|
||||
id="lims_laboratory_results" sequence="20"
|
||||
icon="lims-laboratory_results"/>
|
||||
<menuitem parent="lims_laboratory_results" action="wiz_lims_notebook_load_results_manual"
|
||||
id="lims_notebook_load_results_manual_menu" sequence="10"
|
||||
icon="lims-notebook_load_results_manual"/>
|
||||
<menuitem parent="lims_laboratory_results" action="wiz_lims_notebook_load_results_formula"
|
||||
id="lims_notebook_load_results_formula_menu" sequence="20"
|
||||
icon="lims-notebook_load_results_formula"/>
|
||||
|
||||
<!-- Laboratory / Results reports -->
|
||||
<menuitem name="Results reports" parent="lims_laboratory"
|
||||
id="lims_laboratory_reports" sequence="30"
|
||||
icon="lims-laboratory_reports"/>
|
||||
<menuitem parent="lims_laboratory_reports" action="act_lims_results_report"
|
||||
id="lims_results_report_menu" sequence="10"
|
||||
icon="lims-laboratory_reports"/>
|
||||
<menuitem parent="lims_laboratory_reports" action="wiz_lims_generate_results_report"
|
||||
id="lims_generate_results_report_menu" sequence="20"
|
||||
icon="lims-generate_results_report"/>
|
||||
<menuitem parent="lims_laboratory_reports" action="act_lims_results_report_version_detail"
|
||||
id="lims_results_report_version_detail_menu" sequence="30"
|
||||
icon="lims-results_report_version_detail"/>
|
||||
|
||||
<!-- Laboratory / Control Charts -->
|
||||
<menuitem name="Control Charts" parent="lims_laboratory"
|
||||
id="lims_laboratory_control" sequence="40"
|
||||
icon="lims-laboratory_control"/>
|
||||
<menuitem parent="lims_laboratory_control" action="act_lims_control_tendency"
|
||||
id="lims_control_tendency_menu" sequence="10"
|
||||
icon="lims-tendencies"/>
|
||||
<menuitem parent="lims_laboratory_control" action="act_lims_concentration_level"
|
||||
id="lims_concentration_level_menu" sequence="20"
|
||||
icon="lims-concentration_level"/>
|
||||
<menuitem parent="lims_laboratory_control" action="wiz_lims_control_means_deviations_calc"
|
||||
id="lims_control_means_deviations_calc_menu" sequence="30"
|
||||
icon="lims-control_means_deviations_calc"/>
|
||||
<menuitem parent="lims_laboratory_control" action="wiz_lims_control_tendencies_analysis"
|
||||
id="lims_control_tendencies_analysis_menu" sequence="40"
|
||||
icon="lims-tendencies_analysis"/>
|
||||
|
||||
<!-- Other menu items -->
|
||||
|
||||
<menuitem parent="res.menu_res" action="act_lims_user_role_list"
|
||||
id="lims_user_role_menu" sequence="5"/>
|
||||
|
||||
</data>
|
||||
</tryton>
|
|
@ -0,0 +1,218 @@
|
|||
<?xml version="1.0"?>
|
||||
<tryton>
|
||||
<data>
|
||||
|
||||
<!-- Acknowledgment of Samples Receipt -->
|
||||
|
||||
<record model="ir.action.wizard" id="print_entry_acknowledgment">
|
||||
<field name="name">Acknowledgment of Samples Receipt</field>
|
||||
<field name="wiz_name">lims.entry.acknowledgment.print</field>
|
||||
<field name="model">lims.entry</field>
|
||||
</record>
|
||||
<record model="ir.action.report" id="report_entry_acknowledgment">
|
||||
<field name="name">Acknowledgment of Samples Receipt</field>
|
||||
<field name="model">lims.entry</field>
|
||||
<field name="report_name">lims.entry.acknowledgment.report</field>
|
||||
<field name="report">lims/report/entry_acknowledgment_report.odt</field>
|
||||
</record>
|
||||
<record model="ir.action.keyword" id="report_entry_acknowledgment_keyword">
|
||||
<field name="keyword">form_print</field>
|
||||
<field name="model">lims.entry,-1</field>
|
||||
<field name="action" ref="print_entry_acknowledgment"/>
|
||||
</record>
|
||||
|
||||
<!-- Entry Detail -->
|
||||
|
||||
<record model="ir.action.report" id="report_entry_detail">
|
||||
<field name="name">Entry Detail</field>
|
||||
<field name="model">lims.entry</field>
|
||||
<field name="report_name">lims.entry.detail.report</field>
|
||||
<field name="report">lims/report/entry_detail_report.odt</field>
|
||||
</record>
|
||||
<record model="ir.action.keyword" id="report_entry_detail_keyword">
|
||||
<field name="keyword">form_print</field>
|
||||
<field name="model">lims.entry,-1</field>
|
||||
<field name="action" ref="report_entry_detail"/>
|
||||
</record>
|
||||
|
||||
<!-- Entry Labels -->
|
||||
|
||||
<record model="ir.action.report" id="report_entry_labels">
|
||||
<field name="name">Entry Labels</field>
|
||||
<field name="model">lims.entry</field>
|
||||
<field name="report_name">lims.entry.labels.report</field>
|
||||
<field name="report">lims/report/entry_labels_report.odt</field>
|
||||
</record>
|
||||
<record model="ir.action.keyword" id="report_entry_labels_keyword">
|
||||
<field name="keyword">form_print</field>
|
||||
<field name="model">lims.entry,-1</field>
|
||||
<field name="action" ref="report_entry_labels"/>
|
||||
</record>
|
||||
|
||||
<!-- Entry Labels Printer -->
|
||||
|
||||
<record model="ir.action.wizard" id="wiz_report_entry_labels_printer">
|
||||
<field name="name">Entry Labels Printer</field>
|
||||
<field name="wiz_name">lims.entry.labels.printer.report</field>
|
||||
<field name="model">lims.entry</field>
|
||||
</record>
|
||||
<record model="ir.action.keyword"
|
||||
id="wiz_report_entry_labels_printer_keyword">
|
||||
<field name="keyword">form_print</field>
|
||||
<field name="model">lims.entry,-1</field>
|
||||
<field name="action" ref="wiz_report_entry_labels_printer"/>
|
||||
</record>
|
||||
|
||||
<!-- Sample Labels Printer -->
|
||||
|
||||
<record model="ir.action.wizard" id="wiz_report_sample_labels_printer">
|
||||
<field name="name">Sample Labels Printer</field>
|
||||
<field name="wiz_name">lims.sample.labels.printer.report</field>
|
||||
<field name="model">lims.sample</field>
|
||||
</record>
|
||||
<record model="ir.action.keyword"
|
||||
id="wiz_report_sample_labels_printer_keyword">
|
||||
<field name="keyword">form_print</field>
|
||||
<field name="model">lims.sample,-1</field>
|
||||
<field name="action" ref="wiz_report_sample_labels_printer"/>
|
||||
</record>
|
||||
|
||||
<!-- Control Charts -->
|
||||
|
||||
<record model="ir.action.wizard" id="wiz_control_chart_print">
|
||||
<field name="name">Control Chart</field>
|
||||
<field name="wiz_name">lims.control_chart.print</field>
|
||||
<field name="model">lims.control.tendency</field>
|
||||
</record>
|
||||
<record model="ir.action.report" id="report_control_chart">
|
||||
<field name="name">Control Chart</field>
|
||||
<field name="model">lims.control.tendency</field>
|
||||
<field name="report_name">lims.control_chart.report</field>
|
||||
<field name="report">lims/report/control_chart_report.odt</field>
|
||||
</record>
|
||||
<record model="ir.action.keyword" id="report_control_chart_keyword">
|
||||
<field name="keyword">form_print</field>
|
||||
<field name="model">lims.control.tendency,-1</field>
|
||||
<field name="action" ref="wiz_control_chart_print"/>
|
||||
</record>
|
||||
|
||||
<!-- Results Report -->
|
||||
|
||||
<record model="ir.action.report" id="report_results_report">
|
||||
<field name="name">Results Report</field>
|
||||
<field name="model">lims.results_report.version.detail</field>
|
||||
<field name="report_name">lims.result_report</field>
|
||||
<field name="report">lims/report/results_report.odt</field>
|
||||
</record>
|
||||
<record model="ir.action.keyword" id="report_results_report_keyword">
|
||||
<field name="keyword">form_print</field>
|
||||
<field name="model">lims.results_report.version.detail,-1</field>
|
||||
<field name="action" ref="report_results_report"/>
|
||||
</record>
|
||||
|
||||
<!-- Transcription Results Report -->
|
||||
|
||||
<record model="ir.action.report" id="report_results_report_transcription">
|
||||
<field name="name">Transcription Results Report</field>
|
||||
<field name="model">lims.results_report.version.detail</field>
|
||||
<field name="report_name">lims.result_report.transcription</field>
|
||||
<field name="report">lims/report/results_report.odt</field>
|
||||
</record>
|
||||
<record model="ir.action.keyword" id="report_results_report_transcription_keyword">
|
||||
<field name="keyword">form_print</field>
|
||||
<field name="model">lims.results_report.version.detail,-1</field>
|
||||
<field name="action" ref="report_results_report_transcription"/>
|
||||
</record>
|
||||
|
||||
<!-- Global Results Report -->
|
||||
|
||||
<record model="ir.action.report" id="report_global_results_report">
|
||||
<field name="name">Global Results Report</field>
|
||||
<field name="model"></field>
|
||||
<field name="report_name">lims.global_result_report</field>
|
||||
<field name="report">lims/report/global_results_report.odt</field>
|
||||
</record>
|
||||
|
||||
<!-- Countersamples Storage Report -->
|
||||
|
||||
<record model="ir.ui.view" id="lims_countersample_storage_print_start_view_form">
|
||||
<field name="model">lims.countersample.storage.print.start</field>
|
||||
<field name="type">form</field>
|
||||
<field name="name">countersample_storage_print_start_form</field>
|
||||
</record>
|
||||
<record model="ir.action.wizard" id="wiz_lims_countersample_storage_print">
|
||||
<field name="name">Countersamples Storage Report</field>
|
||||
<field name="wiz_name">lims.countersample.storage.print</field>
|
||||
</record>
|
||||
<record model="ir.action.report" id="report_countersample_storage">
|
||||
<field name="name">Countersamples Storage Report</field>
|
||||
<!-- <field name="model">lims.fraction</field> -->
|
||||
<field name="report_name">lims.countersample.storage.report</field>
|
||||
<field name="report">lims/report/countersample_storage_report.odt</field>
|
||||
</record>
|
||||
<record model="ir.action.keyword" id="lims_countersample_storage_print_keyword">
|
||||
<field name="keyword">form_print</field>
|
||||
<field name="model">lims.fraction,-1</field>
|
||||
<field name="action" ref="wiz_lims_countersample_storage_print"/>
|
||||
</record>
|
||||
|
||||
<!-- Countersamples Discharge Report -->
|
||||
|
||||
<record model="ir.ui.view" id="lims_countersample_discharge_print_start_view_form">
|
||||
<field name="model">lims.countersample.discharge.print.start</field>
|
||||
<field name="type">form</field>
|
||||
<field name="name">countersample_discharge_print_start_form</field>
|
||||
</record>
|
||||
<record model="ir.action.wizard" id="wiz_lims_countersample_discharge_print">
|
||||
<field name="name">Countersamples Discharge Report</field>
|
||||
<field name="wiz_name">lims.countersample.discharge.print</field>
|
||||
</record>
|
||||
<record model="ir.action.report" id="report_countersample_discharge">
|
||||
<field name="name">Countersamples Discharge Report</field>
|
||||
<!-- <field name="model">lims.fraction</field> -->
|
||||
<field name="report_name">lims.countersample.discharge.report</field>
|
||||
<field name="report">lims/report/countersample_discharge_report.odt</field>
|
||||
</record>
|
||||
<record model="ir.action.keyword" id="lims_countersample_discharge_print_keyword">
|
||||
<field name="keyword">form_print</field>
|
||||
<field name="model">lims.fraction,-1</field>
|
||||
<field name="action" ref="wiz_lims_countersample_discharge_print"/>
|
||||
</record>
|
||||
|
||||
<!-- Analysis Pending of Inform -->
|
||||
|
||||
<record model="ir.ui.view" id="print_analysis_pending_inform_start_view_form">
|
||||
<field name="model">lims.print_analysis_pending_inform.start</field>
|
||||
<field name="type">form</field>
|
||||
<field name="name">analysis_pending_inform_start_form</field>
|
||||
</record>
|
||||
<record model="ir.action.wizard" id="wiz_print_analysis_pending_inform">
|
||||
<field name="name">Pending analysis Unchecked</field>
|
||||
<field name="wiz_name">lims.print_analysis_pending_inform</field>
|
||||
</record>
|
||||
<record model="ir.action.report" id="report_analysis_pending_inform">
|
||||
<field name="name">Pending analysis Unchecked</field>
|
||||
<field name="report_name">lims.analysis_pending_inform</field>
|
||||
<field name="report">lims/report/analysis_pending_inform.ods</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- Analysis Checked pending of inform -->
|
||||
|
||||
<record model="ir.ui.view" id="print_analysis_checked_pending_inform_start_view_form">
|
||||
<field name="model">lims.print_analysis_checked_pending_inform.start</field>
|
||||
<field name="type">form</field>
|
||||
<field name="name">print_analysis_checked_pending_inform_start_view_form</field>
|
||||
</record>
|
||||
<record model="ir.action.wizard" id="wiz_print_analysis_checked_pending_inform">
|
||||
<field name="name">Analysis checked pending of inform</field>
|
||||
<field name="wiz_name">lims.print_analysis_checked_pending_inform</field>
|
||||
</record>
|
||||
<record model="ir.action.report" id="report_analysis_checked_pending_inform">
|
||||
<field name="name">Analysis checked pending of inform</field>
|
||||
<field name="report_name">lims.analysis_checked_pending_inform</field>
|
||||
<field name="report">lims/report/analysis_checked_pending_inform.ods</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</tryton>
|
|
@ -0,0 +1,136 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# This file is part of lims module for Tryton.
|
||||
# The COPYRIGHT file at the top level of this repository contains
|
||||
# the full copyright notices and license terms.
|
||||
import pytz
|
||||
from datetime import datetime
|
||||
|
||||
from trytond.model import fields, Unique
|
||||
from trytond.pool import PoolMeta
|
||||
from trytond.pyson import Bool, Eval, Or
|
||||
|
||||
__all__ = ['Party', 'Address', 'Company']
|
||||
|
||||
|
||||
class Party:
|
||||
__name__ = 'party.party'
|
||||
__metaclass__ = PoolMeta
|
||||
|
||||
email_report = fields.Boolean('Email report')
|
||||
single_sending_report = fields.Boolean('Single sending of report')
|
||||
english_report = fields.Boolean('English report')
|
||||
no_acknowledgment_of_receipt = fields.Boolean(
|
||||
'No acknowledgment of receipt')
|
||||
sample_producers = fields.One2Many('lims.sample.producer', 'party',
|
||||
'Sample Producers')
|
||||
is_lab_professional = fields.Boolean('Laboratory Professional')
|
||||
lims_user = fields.Many2One('res.user', 'Lims User',
|
||||
states={'required': Bool(Eval('is_lab_professional'))},
|
||||
depends=['is_lab_professional'])
|
||||
entry_zone = fields.Many2One('lims.zone', 'Entry Zone')
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super(Party, cls).__setup__()
|
||||
t = cls.__table__()
|
||||
cls._sql_constraints += [
|
||||
('lims_user_uniq', Unique(t, t.lims_user),
|
||||
'This lims user is already assigned to a party')]
|
||||
|
||||
@staticmethod
|
||||
def default_email_report():
|
||||
return False
|
||||
|
||||
@staticmethod
|
||||
def default_single_sending_report():
|
||||
return False
|
||||
|
||||
@staticmethod
|
||||
def default_english_report():
|
||||
return False
|
||||
|
||||
@staticmethod
|
||||
def default_no_acknowledgment_of_receipt():
|
||||
return False
|
||||
|
||||
|
||||
class Address:
|
||||
__name__ = 'party.address'
|
||||
__metaclass__ = PoolMeta
|
||||
|
||||
email = fields.Char('Email',
|
||||
states={
|
||||
'required': Or(
|
||||
Bool(Eval('invoice_contact')),
|
||||
Bool(Eval('report_contact')),
|
||||
Bool(Eval('acknowledgment_contact'))),
|
||||
},
|
||||
depends=['invoice_contact', 'report_contact',
|
||||
'acknowledgment_contact'])
|
||||
invoice_contact = fields.Boolean('Invoice contact')
|
||||
invoice_contact_default = fields.Boolean('Invoice contact by default',
|
||||
states={'readonly': ~Bool(Eval('invoice_contact'))},
|
||||
depends=['invoice_contact'])
|
||||
report_contact = fields.Boolean('Report contact')
|
||||
report_contact_default = fields.Boolean('Report contact by default',
|
||||
states={'readonly': ~Bool(Eval('report_contact'))},
|
||||
depends=['report_contact'])
|
||||
acknowledgment_contact = fields.Boolean('Acknowledgment contact')
|
||||
acknowledgment_contact_default = fields.Boolean(
|
||||
'Acknowledgment contact by default',
|
||||
states={'readonly': ~Bool(Eval('acknowledgment_contact'))},
|
||||
depends=['acknowledgment_contact'])
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super(Address, cls).__setup__()
|
||||
cls._error_messages.update({
|
||||
'invoice_address': 'There is already a address with invoice type',
|
||||
})
|
||||
|
||||
@fields.depends('invoice_contact')
|
||||
def on_change_invoice_contact(self):
|
||||
if not self.invoice_contact:
|
||||
self.invoice_contact_default = False
|
||||
|
||||
@fields.depends('report_contact')
|
||||
def on_change_report_contact(self):
|
||||
if not self.report_contact:
|
||||
self.report_contact_default = False
|
||||
|
||||
@fields.depends('acknowledgment_contact')
|
||||
def on_change_acknowledgment_contact(self):
|
||||
if not self.acknowledgment_contact:
|
||||
self.acknowledgment_contact_default = False
|
||||
|
||||
@classmethod
|
||||
def validate(cls, addresses):
|
||||
super(Address, cls).validate(addresses)
|
||||
for address in addresses:
|
||||
address.check_invoice_type()
|
||||
|
||||
def check_invoice_type(self):
|
||||
if self.invoice:
|
||||
addresses = self.search([
|
||||
('party', '=', self.party.id),
|
||||
('invoice', '=', True),
|
||||
('id', '!=', self.id),
|
||||
])
|
||||
if addresses:
|
||||
self.raise_user_error('invoice_address')
|
||||
|
||||
|
||||
class Company:
|
||||
__name__ = 'company.company'
|
||||
__metaclass__ = PoolMeta
|
||||
|
||||
def get_timezone(self):
|
||||
timezone = None
|
||||
if self.timezone:
|
||||
timezone = pytz.timezone(self.timezone)
|
||||
return timezone
|
||||
|
||||
def convert_timezone_datetime(self, datetime_):
|
||||
timezone = self.get_timezone()
|
||||
return datetime.astimezone(datetime_.replace(tzinfo=pytz.utc),
|
||||
timezone)
|
|
@ -0,0 +1,32 @@
|
|||
<?xml version="1.0"?>
|
||||
<tryton>
|
||||
<data>
|
||||
|
||||
<!-- Party -->
|
||||
|
||||
<record model="ir.ui.view" id="lims_party_view_form">
|
||||
<field name="model">party.party</field>
|
||||
<field name="inherit" ref="party.party_view_form"/>
|
||||
<field name="name">party_party_form</field>
|
||||
</record>
|
||||
|
||||
<!-- Address -->
|
||||
|
||||
<record model="ir.ui.view" id="lims_address_view_form">
|
||||
<field name="model">party.address</field>
|
||||
<field name="inherit" ref="party.address_view_form"/>
|
||||
<field name="name">party_address_form</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="lims_address_view_list1">
|
||||
<field name="model">party.address</field>
|
||||
<field name="inherit" ref="party.address_view_tree"/>
|
||||
<field name="name">party_address_list</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="lims_address_view_list2">
|
||||
<field name="model">party.address</field>
|
||||
<field name="inherit" ref="party.address_view_tree_sequence"/>
|
||||
<field name="name">party_address_list</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</tryton>
|
|
@ -0,0 +1,52 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# This file is part of lims module for Tryton.
|
||||
# The COPYRIGHT file at the top level of this repository contains
|
||||
# the full copyright notices and license terms.
|
||||
|
||||
from trytond.model import fields, Unique
|
||||
from trytond.pool import PoolMeta
|
||||
|
||||
__all__ = ['Uom', 'UomCategory', 'Template']
|
||||
|
||||
|
||||
class Uom:
|
||||
__name__ = 'product.uom'
|
||||
__metaclass__ = PoolMeta
|
||||
|
||||
maximum_concentration = fields.Char('Maximum concentration')
|
||||
rsd_horwitz = fields.Char('% RSD Horwitz')
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super(Uom, cls).__setup__()
|
||||
cls.symbol.size = 30
|
||||
t = cls.__table__()
|
||||
cls._sql_constraints += [
|
||||
('symbol_uniq', Unique(t, t.symbol),
|
||||
'UoM symbol must be unique'),
|
||||
]
|
||||
|
||||
def get_rec_name(self, name):
|
||||
return self.symbol
|
||||
|
||||
|
||||
class UomCategory:
|
||||
__name__ = 'product.uom.category'
|
||||
__metaclass__ = PoolMeta
|
||||
|
||||
lims_only_available = fields.Boolean('Only available in Lims')
|
||||
|
||||
@staticmethod
|
||||
def default_lims_only_available():
|
||||
return False
|
||||
|
||||
|
||||
class Template:
|
||||
__name__ = "product.template"
|
||||
__metaclass__ = PoolMeta
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super(Template, cls).__setup__()
|
||||
new_domain = [('category.lims_only_available', '!=', True)]
|
||||
cls.default_uom.domain = new_domain
|
|
@ -0,0 +1,33 @@
|
|||
<?xml version="1.0"?>
|
||||
<tryton>
|
||||
<data>
|
||||
|
||||
<!-- Product UoM -->
|
||||
|
||||
<record model="ir.ui.view" id="lims_uom_view_list">
|
||||
<field name="model">product.uom</field>
|
||||
<field name="inherit" ref="product.uom_view_tree"/>
|
||||
<field name="name">product_uom_list</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="lims_uom_view_form">
|
||||
<field name="model">product.uom</field>
|
||||
<field name="inherit" ref="product.uom_view_form"/>
|
||||
<field name="name">product_uom_form</field>
|
||||
</record>
|
||||
|
||||
<!-- UoM Categories -->
|
||||
|
||||
<record model="ir.ui.view" id="lims_uom_category_view_list">
|
||||
<field name="model">product.uom.category</field>
|
||||
<field name="inherit" ref="product.uom_category_view_tree"/>
|
||||
<field name="name">product_uom_category_list</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="lims_uom_category_view_form">
|
||||
<field name="model">product.uom.category</field>
|
||||
<field name="inherit" ref="product.uom_category_view_form"/>
|
||||
<field name="name">product_uom_category_form</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</tryton>
|
|
@ -0,0 +1,5 @@
|
|||
# This file is part of lims module for Tryton.
|
||||
# The COPYRIGHT file at the top level of this repository contains
|
||||
# the full copyright notices and license terms.
|
||||
|
||||
from .lims_report import *
|
|
@ -0,0 +1,152 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<tryton>
|
||||
<data>
|
||||
|
||||
<!-- Groups -->
|
||||
|
||||
<record model="res.group" id="group_lims_conf_base_readonly">
|
||||
<field name="name">Lims Configuration Base Read Only</field>
|
||||
</record>
|
||||
<record model="res.group" id="group_lims_conf_base_admin">
|
||||
<field name="name">Lims Configuration Base Admin</field>
|
||||
</record>
|
||||
<record model="res.user-res.group" id="user_admin_group_lims_conf_base_admin">
|
||||
<field name="user" ref="res.user_admin"/>
|
||||
<field name="group" ref="group_lims_conf_base_admin"/>
|
||||
</record>
|
||||
|
||||
<record model="res.group" id="group_lims_conf_certification_readonly">
|
||||
<field name="name">Lims Configuration Certification Read Only</field>
|
||||
</record>
|
||||
<record model="res.group" id="group_lims_conf_certification_admin">
|
||||
<field name="name">Lims Configuration Certification Admin</field>
|
||||
</record>
|
||||
<record model="res.user-res.group" id="user_admin_group_lims_conf_certification_admin">
|
||||
<field name="user" ref="res.user_admin"/>
|
||||
<field name="group" ref="group_lims_conf_certification_admin"/>
|
||||
</record>
|
||||
|
||||
<record model="res.group" id="group_lims_conf_entry_readonly">
|
||||
<field name="name">Lims Configuration Entry Read Only</field>
|
||||
</record>
|
||||
<record model="res.group" id="group_lims_conf_entry_admin">
|
||||
<field name="name">Lims Configuration Entry Admin</field>
|
||||
</record>
|
||||
<record model="res.user-res.group" id="user_admin_group_lims_conf_entry_admin">
|
||||
<field name="user" ref="res.user_admin"/>
|
||||
<field name="group" ref="group_lims_conf_entry_admin"/>
|
||||
</record>
|
||||
|
||||
<record model="res.group" id="group_lims_conf_laboratory_readonly">
|
||||
<field name="name">Lims Configuration Laboratory Read Only</field>
|
||||
</record>
|
||||
<record model="res.group" id="group_lims_conf_laboratory_admin">
|
||||
<field name="name">Lims Configuration Laboratory Admin</field>
|
||||
</record>
|
||||
<record model="res.user-res.group" id="user_admin_group_lims_conf_laboratory_admin">
|
||||
<field name="user" ref="res.user_admin"/>
|
||||
<field name="group" ref="group_lims_conf_laboratory_admin"/>
|
||||
</record>
|
||||
|
||||
<record model="res.group" id="group_lims_conf_base_tables_readonly">
|
||||
<field name="name">Lims Configuration Base Tables Read Only</field>
|
||||
</record>
|
||||
<record model="res.group" id="group_lims_conf_base_tables_admin">
|
||||
<field name="name">Lims Configuration Base Tables Admin</field>
|
||||
</record>
|
||||
<record model="res.user-res.group" id="user_admin_group_lims_conf_base_tables_admin">
|
||||
<field name="user" ref="res.user_admin"/>
|
||||
<field name="group" ref="group_lims_conf_base_tables_admin"/>
|
||||
</record>
|
||||
|
||||
<record model="res.group" id="group_lims_entry_readonly">
|
||||
<field name="name">Lims Entries Read Only</field>
|
||||
</record>
|
||||
<record model="res.group" id="group_lims_entry_update">
|
||||
<field name="name">Lims Entries Update</field>
|
||||
</record>
|
||||
<record model="res.group" id="group_lims_entry">
|
||||
<field name="name">Lims Entries</field>
|
||||
</record>
|
||||
<record model="res.user-res.group" id="user_admin_group_lims_entry">
|
||||
<field name="user" ref="res.user_admin"/>
|
||||
<field name="group" ref="group_lims_entry"/>
|
||||
</record>
|
||||
|
||||
<record model="res.group" id="group_lims_notebook_readonly">
|
||||
<field name="name">Lims Laboratory Notebook Read Only</field>
|
||||
</record>
|
||||
<record model="res.group" id="group_lims_notebook">
|
||||
<field name="name">Lims Laboratory Notebook</field>
|
||||
</record>
|
||||
<record model="res.user-res.group" id="user_admin_group_lims_notebook">
|
||||
<field name="user" ref="res.user_admin"/>
|
||||
<field name="group" ref="group_lims_notebook"/>
|
||||
</record>
|
||||
|
||||
<record model="res.group" id="group_lims_laboratory_results">
|
||||
<field name="name">Lims Results entry</field>
|
||||
</record>
|
||||
<record model="res.user-res.group" id="user_admin_group_lims_laboratory_results">
|
||||
<field name="user" ref="res.user_admin"/>
|
||||
<field name="group" ref="group_lims_laboratory_results"/>
|
||||
</record>
|
||||
|
||||
<record model="res.group" id="group_lims_laboratory_results_acceptance">
|
||||
<field name="name">Lims Results acceptance</field>
|
||||
</record>
|
||||
<record model="res.user-res.group" id="user_admin_group_lims_laboratory_results_acceptance">
|
||||
<field name="user" ref="res.user_admin"/>
|
||||
<field name="group" ref="group_lims_laboratory_results_acceptance"/>
|
||||
</record>
|
||||
|
||||
<record model="res.group" id="group_lims_laboratory_reports_readonly">
|
||||
<field name="name">Lims Results reports Read Only</field>
|
||||
</record>
|
||||
<record model="res.group" id="group_lims_laboratory_reports">
|
||||
<field name="name">Lims Results reports</field>
|
||||
</record>
|
||||
<record model="res.user-res.group" id="user_admin_group_lims_laboratory_reports">
|
||||
<field name="user" ref="res.user_admin"/>
|
||||
<field name="group" ref="group_lims_laboratory_reports"/>
|
||||
</record>
|
||||
|
||||
<record model="res.group" id="group_lims_control_readonly">
|
||||
<field name="name">Lims Control Charts Read Only</field>
|
||||
</record>
|
||||
<record model="res.group" id="group_lims_control">
|
||||
<field name="name">Lims Control Charts</field>
|
||||
</record>
|
||||
<record model="res.user-res.group" id="user_admin_group_lims_control">
|
||||
<field name="user" ref="res.user_admin"/>
|
||||
<field name="group" ref="group_lims_control"/>
|
||||
</record>
|
||||
|
||||
<!-- Users -->
|
||||
|
||||
<record model="res.user" id="user_acknowledgment_of_receipt">
|
||||
<field name="login">user_cron_acknowledgment_of_receipt</field>
|
||||
<field name="name">Cron Lims Acknowledgment Of Receipt</field>
|
||||
<field name="signature"></field>
|
||||
<field name="active" eval="False"/>
|
||||
</record>
|
||||
<record model="res.user-res.group" id="user_acknowledgment_of_receipt_group_entry">
|
||||
<field name="user" ref="user_acknowledgment_of_receipt"/>
|
||||
<field name="group" ref="group_lims_entry"/>
|
||||
</record>
|
||||
|
||||
<record model="res.user" id="user_entry_confirm">
|
||||
<field name="login">user_cron_entry_confirm</field>
|
||||
<field name="name">Cron Lims Entry Confirm</field>
|
||||
<field name="signature"></field>
|
||||
<field name="active" eval="False"/>
|
||||
</record>
|
||||
<record model="res.user-res.group" id="user_entry_confirm_group_entry">
|
||||
<field name="user" ref="user_entry_confirm"/>
|
||||
<field name="group" ref="group_lims_entry"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</tryton>
|
|
@ -0,0 +1,145 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# This file is part of lims module for Tryton.
|
||||
# The COPYRIGHT file at the top level of this repository contains
|
||||
# the full copyright notices and license terms.
|
||||
|
||||
from trytond.model import fields
|
||||
from trytond.pyson import In, Eval, Bool
|
||||
from trytond.pool import Pool, PoolMeta
|
||||
from trytond.transaction import Transaction
|
||||
|
||||
__all__ = ['Location', 'Move', 'ShipmentInternal', 'InventoryLine']
|
||||
|
||||
|
||||
class Location:
|
||||
__name__ = 'stock.location'
|
||||
__metaclass__ = PoolMeta
|
||||
|
||||
storage_time = fields.Integer('Storage time (in months)')
|
||||
|
||||
@classmethod
|
||||
def search_rec_name(cls, name, clause):
|
||||
field = None
|
||||
for field in ('code', 'name'):
|
||||
records = cls.search([(field,) + tuple(clause[1:])], limit=1)
|
||||
if records:
|
||||
break
|
||||
if records:
|
||||
return [(field,) + tuple(clause[1:])]
|
||||
return [(cls._rec_name,) + tuple(clause[1:])]
|
||||
|
||||
|
||||
class Move:
|
||||
__name__ = 'stock.move'
|
||||
__metaclass__ = PoolMeta
|
||||
|
||||
fraction = fields.Many2One('lims.fraction', 'Fraction', select=True,
|
||||
ondelete='CASCADE', states={
|
||||
'readonly': (In(Eval('state'), ['cancel', 'assigned', 'done'])
|
||||
| Bool(Eval('fraction_readonly')))},
|
||||
domain=['OR',
|
||||
('current_location', '=', Eval('from_location')),
|
||||
('id', '=', Eval('fraction')),
|
||||
],
|
||||
depends=['state', 'fraction_readonly', 'from_location'])
|
||||
fraction_readonly = fields.Function(fields.Boolean('Fraction Read Only'),
|
||||
'on_change_with_fraction_readonly')
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super(Move, cls).__setup__()
|
||||
cls.origin.readonly = True
|
||||
|
||||
@classmethod
|
||||
def _get_origin(cls):
|
||||
models = super(Move, cls)._get_origin()
|
||||
models.append('lims.fraction')
|
||||
return models
|
||||
|
||||
@fields.depends('from_location', 'to_location', 'product')
|
||||
def on_change_with_fraction_readonly(self, name=None):
|
||||
Config = Pool().get('lims.configuration')
|
||||
|
||||
config = Config(1)
|
||||
if not config.fraction_product:
|
||||
return True
|
||||
if not self.product or self.product != config.fraction_product:
|
||||
return True
|
||||
if (self.from_location and self.to_location
|
||||
and self.from_location.type == 'storage'
|
||||
and self.to_location.type == 'storage'):
|
||||
return False
|
||||
return True
|
||||
|
||||
@classmethod
|
||||
def copy(cls, moves, default=None):
|
||||
with Transaction().set_context(check_current_location=False):
|
||||
return super(Move, cls).copy(moves, default=default)
|
||||
|
||||
|
||||
class ShipmentInternal:
|
||||
__name__ = 'stock.shipment.internal'
|
||||
__metaclass__ = PoolMeta
|
||||
|
||||
@classmethod
|
||||
def copy(cls, shipments, default=None):
|
||||
with Transaction().set_context(check_current_location=False):
|
||||
return super(ShipmentInternal, cls).copy(shipments,
|
||||
default=default)
|
||||
|
||||
@classmethod
|
||||
def draft(cls, shipments):
|
||||
with Transaction().set_context(check_current_location=False):
|
||||
super(ShipmentInternal, cls).draft(shipments)
|
||||
|
||||
@classmethod
|
||||
def wait(cls, shipments):
|
||||
with Transaction().set_context(check_current_location=False):
|
||||
super(ShipmentInternal, cls).wait(shipments)
|
||||
|
||||
@classmethod
|
||||
def done(cls, shipments):
|
||||
with Transaction().set_context(check_current_location=False):
|
||||
super(ShipmentInternal, cls).done(shipments)
|
||||
|
||||
@classmethod
|
||||
def cancel(cls, shipments):
|
||||
with Transaction().set_context(check_current_location=False):
|
||||
super(ShipmentInternal, cls).cancel(shipments)
|
||||
|
||||
@classmethod
|
||||
def assign_try(cls, shipments):
|
||||
with Transaction().set_context(check_current_location=False):
|
||||
return super(ShipmentInternal, cls).assign_try(shipments)
|
||||
|
||||
@classmethod
|
||||
def assign_force(cls, shipments):
|
||||
with Transaction().set_context(check_current_location=False):
|
||||
super(ShipmentInternal, cls).assign_force(shipments)
|
||||
|
||||
|
||||
class InventoryLine:
|
||||
__name__ = 'stock.inventory.line'
|
||||
__metaclass__ = PoolMeta
|
||||
|
||||
account_move = fields.Function(fields.Many2One('account.move',
|
||||
'Account Move'), 'get_account_move')
|
||||
|
||||
def get_account_move_id(self, account_move):
|
||||
if not account_move:
|
||||
return None
|
||||
if not account_move.origin:
|
||||
return None
|
||||
AccountMove = Pool().get('account.move')
|
||||
account_move_origin = '%s,%s' % (account_move.origin.__name__,
|
||||
account_move.origin.id)
|
||||
account_move, = AccountMove.search([
|
||||
'origin', '=', account_move_origin,
|
||||
])
|
||||
return account_move.id
|
||||
|
||||
def get_account_move(self, name):
|
||||
for move in self.moves:
|
||||
account_move = move._get_account_stock_move()
|
||||
return self.get_account_move_id(account_move)
|
||||
return None
|
|
@ -0,0 +1,53 @@
|
|||
<?xml version="1.0"?>
|
||||
<tryton>
|
||||
<data>
|
||||
|
||||
<!-- Location -->
|
||||
|
||||
<record model="ir.ui.view" id="lims_location_view_form">
|
||||
<field name="model">stock.location</field>
|
||||
<field name="inherit" ref="stock.location_view_form"/>
|
||||
<field name="name">stock_location_form</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="lims_location_view_list">
|
||||
<field name="model">stock.location</field>
|
||||
<field name="inherit" ref="stock.location_view_list"/>
|
||||
<field name="name">stock_location_list</field>
|
||||
</record>
|
||||
|
||||
<!-- Move -->
|
||||
|
||||
<record model="ir.ui.view" id="lims_move_view_form">
|
||||
<field name="model">stock.move</field>
|
||||
<field name="inherit" ref="stock.move_view_form"/>
|
||||
<field name="name">stock_move_form</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="lims_move_view_list">
|
||||
<field name="model">stock.move</field>
|
||||
<field name="inherit" ref="stock.move_view_tree"/>
|
||||
<field name="name">stock_move_list</field>
|
||||
</record>
|
||||
|
||||
<!-- Inventory Line -->
|
||||
|
||||
<record model="ir.ui.view" id="lims_inventory_line_view_form">
|
||||
<field name="model">stock.inventory.line</field>
|
||||
<field name="inherit" ref="stock.inventory_line_view_form"/>
|
||||
<field name="name">stock_inventory_line_form</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="lims_inventory_line_view_list">
|
||||
<field name="model">stock.inventory.line</field>
|
||||
<field name="inherit" ref="stock.inventory_line_view_tree"/>
|
||||
<field name="name">stock_inventory_line_list</field>
|
||||
</record>
|
||||
|
||||
<!-- Shipment -->
|
||||
|
||||
<record model="ir.ui.view" id="lims_shipment_in_view_form">
|
||||
<field name="model">stock.shipment.in</field>
|
||||
<field name="inherit" ref="stock.shipment_in_view_form"/>
|
||||
<field name="name">stock_shipment_in_form</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</tryton>
|
|
@ -0,0 +1,10 @@
|
|||
# This file is part of lims module for Tryton.
|
||||
# The COPYRIGHT file at the top level of this repository contains
|
||||
# the full copyright notices and license terms.
|
||||
|
||||
try:
|
||||
from trytond.modules.lims.tests.test_lims import suite
|
||||
except ImportError:
|
||||
from .test_lims import suite
|
||||
|
||||
__all__ = ['suite']
|
|
@ -0,0 +1,18 @@
|
|||
# This file is part of lims module for Tryton.
|
||||
# The COPYRIGHT file at the top level of this repository contains
|
||||
# the full copyright notices and license terms.
|
||||
import unittest
|
||||
import trytond.tests.test_tryton
|
||||
from trytond.tests.test_tryton import ModuleTestCase
|
||||
|
||||
|
||||
class LimsTestCase(ModuleTestCase):
|
||||
'Test lims module'
|
||||
module = 'lims'
|
||||
|
||||
|
||||
def suite():
|
||||
suite = trytond.tests.test_tryton.suite()
|
||||
suite.addTests(unittest.TestLoader().loadTestsFromTestCase(
|
||||
LimsTestCase))
|
||||
return suite
|
|
@ -0,0 +1,20 @@
|
|||
[tryton]
|
||||
version=4.4.0
|
||||
depends:
|
||||
account_invoice
|
||||
account_stock_continental
|
||||
carrier
|
||||
party_relationship
|
||||
lims_department
|
||||
xml:
|
||||
security/users.xml
|
||||
lims_view.xml
|
||||
configuration_view.xml
|
||||
stock_view.xml
|
||||
product_view.xml
|
||||
party_view.xml
|
||||
lims_report.xml
|
||||
wizard/lims.xml
|
||||
data/lims_sequences.xml
|
||||
lims_menu.xml
|
||||
security/access_rights.xml
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<label name="laboratory"/>
|
||||
<field name="laboratory"/>
|
||||
<label name="device"/>
|
||||
<field name="device"/>
|
||||
<label name="by_default"/>
|
||||
<field name="by_default"/>
|
||||
</form>
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0"?>
|
||||
<tree>
|
||||
<field name="laboratory"/>
|
||||
<field name="device"/>
|
||||
<field name="by_default"/>
|
||||
</tree>
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<label name="product_type"/>
|
||||
<field name="product_type"/>
|
||||
<label name="matrix"/>
|
||||
<field name="matrix"/>
|
||||
<label name="family"/>
|
||||
<field name="family"/>
|
||||
</form>
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0"?>
|
||||
<tree>
|
||||
<field name="product_type"/>
|
||||
<field name="matrix"/>
|
||||
<field name="family"/>
|
||||
</tree>
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<label name="code"/>
|
||||
<field name="code"/>
|
||||
<label name="description"/>
|
||||
<field name="description"/>
|
||||
<label name="party"/>
|
||||
<field name="party" colspan="3"/>
|
||||
<field name="family_origin" colspan="4" invisible="1"/>
|
||||
</form>
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<label name="code"/>
|
||||
<field name="code"/>
|
||||
<label name="description"/>
|
||||
<field name="description"/>
|
||||
<label name="party"/>
|
||||
<field name="party" colspan="3"/>
|
||||
<field name="certificants" colspan="4"/>
|
||||
</form>
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<tree>
|
||||
<field name="code"/>
|
||||
<field name="description"/>
|
||||
<field name="party"/>
|
||||
<field name="certificants"/>
|
||||
</tree>
|
|
@ -0,0 +1,63 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<label name="code"/>
|
||||
<field name="code"/>
|
||||
<label name="description"/>
|
||||
<field name="description"/>
|
||||
<label name="type"/>
|
||||
<field name="type"/>
|
||||
<label name="behavior"/>
|
||||
<field name="behavior"/>
|
||||
<label name="start_date"/>
|
||||
<field name="start_date"/>
|
||||
<label name="end_date"/>
|
||||
<field name="end_date"/>
|
||||
<label name="result_formula"/>
|
||||
<field name="result_formula"/>
|
||||
<label name="converted_result_formula"/>
|
||||
<field name="converted_result_formula"/>
|
||||
<label name="automatic_acquisition"/>
|
||||
<field name="automatic_acquisition"/>
|
||||
<label name="product"/>
|
||||
<field name="product"/>
|
||||
<label name="order"/>
|
||||
<field name="order"/>
|
||||
<label name="disable_as_individual"/>
|
||||
<field name="disable_as_individual"/>
|
||||
<label name="formula"/>
|
||||
<field name="formula"/>
|
||||
<label name="planning_legend"/>
|
||||
<field name="planning_legend"/>
|
||||
<notebook>
|
||||
<page string="Laboratories" id="laboratories" >
|
||||
<field name="laboratories" colspan="4"/>
|
||||
<field name="laboratory_domain" colspan="4" invisible="1"/>
|
||||
</page>
|
||||
<page string="Methods" id="methods" >
|
||||
<field name="methods" colspan="4"/>
|
||||
</page>
|
||||
<page string="Devices" id="devices" >
|
||||
<field name="devices" colspan="4"/>
|
||||
</page>
|
||||
<page string="Included analysis" id="included_analysis" >
|
||||
<field name="included_analysis" colspan="4"/>
|
||||
<group col="6" colspan="4" id="button_holder">
|
||||
<button name="relate_analysis" string="Relate analysis"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Microbiology" id="microbiology" >
|
||||
<label name="gender_species"/>
|
||||
<field name="gender_species" widget="richtext" colspan="3"/>
|
||||
<field name="microbiology" invisible="1"/>
|
||||
</page>
|
||||
<page string="Warnings/Comments" id="comments" >
|
||||
<field name="comments" colspan="4"/>
|
||||
</page>
|
||||
</notebook>
|
||||
<group colspan="3" id="buttons">
|
||||
<label name="state"/>
|
||||
<field name="state"/>
|
||||
<button name="activate" string="Activate"/>
|
||||
<button name="disable" string="Disable"/>
|
||||
</group>
|
||||
</form>
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<label name="included_analysis"/>
|
||||
<field name="included_analysis"/>
|
||||
<label name="analysis_type"/>
|
||||
<field name="analysis_type"/>
|
||||
<label name="laboratory"/>
|
||||
<field name="laboratory"/>
|
||||
</form>
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0"?>
|
||||
<tree>
|
||||
<field name="included_analysis"/>
|
||||
<field name="analysis_type"/>
|
||||
<field name="laboratory"/>
|
||||
</tree>
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<label name="laboratory"/>
|
||||
<field name="laboratory"/>
|
||||
<label name="department"/>
|
||||
<field name="department"/>
|
||||
</form>
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0"?>
|
||||
<tree>
|
||||
<field name="laboratory"/>
|
||||
<field name="department"/>
|
||||
</tree>
|
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0"?>
|
||||
<tree>
|
||||
<field name="code"/>
|
||||
<field name="description"/>
|
||||
<field name="type"/>
|
||||
<field name="laboratories"/>
|
||||
<field name="methods"/>
|
||||
<field name="devices"/>
|
||||
<field name="included_analysis"/>
|
||||
<field name="start_date"/>
|
||||
<field name="end_date"/>
|
||||
<field name="behavior"/>
|
||||
<field name="result_formula"/>
|
||||
<field name="converted_result_formula"/>
|
||||
<field name="product"/>
|
||||
<field name="formula"/>
|
||||
<field name="order"/>
|
||||
<field name="disable_as_individual"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<label name="date_from"/>
|
||||
<field name="date_from"/>
|
||||
<label name="date_to"/>
|
||||
<field name="date_to"/>
|
||||
<label name="laboratory"/>
|
||||
<field name="laboratory"/>
|
||||
<label name="party"/>
|
||||
<field name="party"/>
|
||||
</form>
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<field name="analysis" colspan="4"/>
|
||||
</form>
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<label name="code"/>
|
||||
<field name="code"/>
|
||||
<label name="description"/>
|
||||
<field name="description"/>
|
||||
<label name="report"/>
|
||||
<field name="report"/>
|
||||
</form>
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0"?>
|
||||
<tree>
|
||||
<field name="code"/>
|
||||
<field name="description"/>
|
||||
<field name="report"/>
|
||||
</tree>
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<label name="results_estimated_waiting"/>
|
||||
<field name="results_estimated_waiting"/>
|
||||
<newline/>
|
||||
<label name="date_from"/>
|
||||
<field name="date_from"/>
|
||||
<label name="date_to"/>
|
||||
<field name="date_to"/>
|
||||
<field name="methods" colspan="4"/>
|
||||
</form>
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<label name="code"/>
|
||||
<field name="code"/>
|
||||
<label name="description"/>
|
||||
<field name="description"/>
|
||||
</form>
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0"?>
|
||||
<tree>
|
||||
<field name="code"/>
|
||||
<field name="description"/>
|
||||
</tree>
|
|
@ -0,0 +1,37 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<notebook>
|
||||
<page string="General" id="general">
|
||||
<label name="fraction_product"/>
|
||||
<field name="fraction_product"/>
|
||||
<label name="default_notebook_view"/>
|
||||
<field name="default_notebook_view"/>
|
||||
<label name="rm_start_uom"/>
|
||||
<field name="rm_start_uom"/>
|
||||
<label name="invoice_party_relation_type"/>
|
||||
<field name="invoice_party_relation_type"/>
|
||||
<label name="email_qa"/>
|
||||
<field name="email_qa"/>
|
||||
<label name="analysis_product_category"/>
|
||||
<field name="analysis_product_category"/>
|
||||
<label name="entry_confirm_background"/>
|
||||
<field name="entry_confirm_background"/>
|
||||
<field name="microbiology_laboratories" colspan="4"/>
|
||||
</page>
|
||||
<page string="Mail Acknowledgment of Samples Receipt"
|
||||
id="mail_ack_samples" col="6">
|
||||
<separator string="Email body of Acknowledgment of Samples Receipt"
|
||||
colspan="4" id="mail_ack_body"/>
|
||||
<field name="mail_ack_subject" colspan="4"/>
|
||||
<field name="mail_ack_body" colspan="4"/>
|
||||
</page>
|
||||
<page string="Volume Conversion" id="volume_conversion" col="6">
|
||||
<label name="brix_digits"/>
|
||||
<field name="brix_digits"/>
|
||||
<label name="density_digits"/>
|
||||
<field name="density_digits"/>
|
||||
<label name="soluble_solids_digits"/>
|
||||
<field name="soluble_solids_digits"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<image name="tryton-dialog-information" xexpand="0" xfill="0"/>
|
||||
<label string="No analysis found" id="ask"
|
||||
yalign="0.0" xalign="0.0" xexpand="1"/>
|
||||
</form>
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<field name="tendencies" colspan="4"/>
|
||||
</form>
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<field name="lines" colspan="4"/>
|
||||
</form>
|
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<label name="fraction_type"/>
|
||||
<field name="fraction_type" colspan="3"/>
|
||||
<label name="date_from"/>
|
||||
<field name="date_from"/>
|
||||
<label name="date_to"/>
|
||||
<field name="date_to"/>
|
||||
<label name="laboratory"/>
|
||||
<field name="laboratory"/>
|
||||
<label name="family"/>
|
||||
<field name="family"/>
|
||||
<label name="product_type"/>
|
||||
<field name="product_type"/>
|
||||
<label name="matrix"/>
|
||||
<field name="matrix"/>
|
||||
</form>
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<label name="date"/>
|
||||
<field name="date"/>
|
||||
<label name="fraction"/>
|
||||
<field name="fraction"/>
|
||||
<label name="device"/>
|
||||
<field name="device"/>
|
||||
<label name="result"/>
|
||||
<field name="result"/>
|
||||
</form>
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<tree>
|
||||
<field name="date"/>
|
||||
<field name="fraction"/>
|
||||
<field name="device"/>
|
||||
<field name="result"/>
|
||||
</tree>
|
|
@ -0,0 +1,34 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<label name="fraction_type"/>
|
||||
<field name="fraction_type" colspan="3"/>
|
||||
<label name="product_type"/>
|
||||
<field name="product_type"/>
|
||||
<label name="matrix"/>
|
||||
<field name="matrix"/>
|
||||
<label name="analysis"/>
|
||||
<field name="analysis"/>
|
||||
<label name="concentration_level"/>
|
||||
<field name="concentration_level"/>
|
||||
<label name="mean"/>
|
||||
<field name="mean"/>
|
||||
<label name="prev_mean"/>
|
||||
<field name="prev_mean"/>
|
||||
<label name="one_sd"/>
|
||||
<field name="one_sd"/>
|
||||
<label name="prev_one_sd"/>
|
||||
<field name="prev_one_sd"/>
|
||||
<label name="two_sd"/>
|
||||
<field name="two_sd"/>
|
||||
<label name="prev_two_sd"/>
|
||||
<field name="prev_two_sd"/>
|
||||
<label name="three_sd"/>
|
||||
<field name="three_sd"/>
|
||||
<label name="prev_three_sd"/>
|
||||
<field name="prev_three_sd"/>
|
||||
<label name="cv"/>
|
||||
<field name="cv"/>
|
||||
<label name="prev_cv"/>
|
||||
<field name="prev_cv"/>
|
||||
<field name="details" colspan="4"/>
|
||||
</form>
|
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0"?>
|
||||
<tree editable="bottom">
|
||||
<field name="update"/>
|
||||
<field name="product_type"/>
|
||||
<field name="matrix"/>
|
||||
<field name="fraction_type"/>
|
||||
<field name="analysis"/>
|
||||
<field name="concentration_level"/>
|
||||
<field name="mean"/>
|
||||
<field name="prev_mean"/>
|
||||
<field name="deviation" tree_invisible="1"/>
|
||||
<field name="one_sd"/>
|
||||
<field name="prev_one_sd"/>
|
||||
<field name="two_sd"/>
|
||||
<field name="prev_two_sd"/>
|
||||
<field name="three_sd"/>
|
||||
<field name="prev_three_sd"/>
|
||||
<field name="cv"/>
|
||||
<field name="prev_cv"/>
|
||||
<field name="details"/>
|
||||
</tree>
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<field name="tendencies" colspan="4"/>
|
||||
</form>
|
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<label name="fraction_type"/>
|
||||
<field name="fraction_type" colspan="3"/>
|
||||
<label name="date_from"/>
|
||||
<field name="date_from"/>
|
||||
<label name="date_to"/>
|
||||
<field name="date_to"/>
|
||||
<label name="laboratory"/>
|
||||
<field name="laboratory"/>
|
||||
<label name="family"/>
|
||||
<field name="family"/>
|
||||
<label name="product_type"/>
|
||||
<field name="product_type"/>
|
||||
<label name="matrix"/>
|
||||
<field name="matrix"/>
|
||||
</form>
|
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<label name="date"/>
|
||||
<field name="date"/>
|
||||
<label name="fraction"/>
|
||||
<field name="fraction"/>
|
||||
<label name="device"/>
|
||||
<field name="device"/>
|
||||
<label name="result"/>
|
||||
<field name="result"/>
|
||||
<label name="notebook_line"/>
|
||||
<field name="notebook_line" colspan="3"/>
|
||||
</form>
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0"?>
|
||||
<tree>
|
||||
<field name="date"/>
|
||||
<field name="fraction"/>
|
||||
<field name="device"/>
|
||||
<field name="result"/>
|
||||
<field name="rules2"/>
|
||||
<field name="rule" tree_invisible="1"/>
|
||||
</tree>
|
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<label name="fraction_type"/>
|
||||
<field name="fraction_type" colspan="3"/>
|
||||
<label name="product_type"/>
|
||||
<field name="product_type"/>
|
||||
<label name="matrix"/>
|
||||
<field name="matrix"/>
|
||||
<label name="analysis"/>
|
||||
<field name="analysis"/>
|
||||
<label name="concentration_level"/>
|
||||
<field name="concentration_level"/>
|
||||
<label name="mean"/>
|
||||
<field name="mean"/>
|
||||
<label name="deviation"/>
|
||||
<field name="deviation"/>
|
||||
</form>
|
|
@ -0,0 +1,44 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<label name="fraction_type"/>
|
||||
<field name="fraction_type" colspan="3"/>
|
||||
<label name="product_type"/>
|
||||
<field name="product_type"/>
|
||||
<label name="matrix"/>
|
||||
<field name="matrix"/>
|
||||
<label name="analysis"/>
|
||||
<field name="analysis"/>
|
||||
<label name="concentration_level"/>
|
||||
<field name="concentration_level"/>
|
||||
<label name="mean"/>
|
||||
<field name="mean"/>
|
||||
<label name="cv"/>
|
||||
<field name="cv"/>
|
||||
<label name="one_sd"/>
|
||||
<field name="one_sd"/>
|
||||
<label name="one_sd_adj"/>
|
||||
<field name="one_sd_adj"/>
|
||||
<label name="two_sd"/>
|
||||
<field name="two_sd"/>
|
||||
<label name="two_sd_adj"/>
|
||||
<field name="two_sd_adj"/>
|
||||
<label name="three_sd"/>
|
||||
<field name="three_sd"/>
|
||||
<label name="three_sd_adj"/>
|
||||
<field name="three_sd_adj"/>
|
||||
<group col="6" colspan="4" id="limits">
|
||||
<separator string="Limits" colspan="6" id="limits"/>
|
||||
<label name="ucl"/>
|
||||
<field name="ucl"/>
|
||||
<label name="uwl"/>
|
||||
<field name="uwl"/>
|
||||
<label name="upl"/>
|
||||
<field name="upl"/>
|
||||
<label name="lcl"/>
|
||||
<field name="lcl"/>
|
||||
<label name="lwl"/>
|
||||
<field name="lwl"/>
|
||||
<label name="lpl"/>
|
||||
<field name="lpl"/>
|
||||
</group>
|
||||
</form>
|
|
@ -0,0 +1,61 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<label name="fraction_type"/>
|
||||
<field name="fraction_type" colspan="3"/>
|
||||
<label name="product_type"/>
|
||||
<field name="product_type"/>
|
||||
<label name="matrix"/>
|
||||
<field name="matrix"/>
|
||||
<label name="analysis"/>
|
||||
<field name="analysis"/>
|
||||
<label name="concentration_level"/>
|
||||
<field name="concentration_level"/>
|
||||
<notebook>
|
||||
<page string="General" id="general">
|
||||
<label name="mean"/>
|
||||
<field name="mean"/>
|
||||
<label name="cv"/>
|
||||
<field name="cv"/>
|
||||
<label name="one_sd"/>
|
||||
<field name="one_sd"/>
|
||||
<label name="one_sd_adj"/>
|
||||
<field name="one_sd_adj"/>
|
||||
<label name="two_sd"/>
|
||||
<field name="two_sd"/>
|
||||
<label name="two_sd_adj"/>
|
||||
<field name="two_sd_adj"/>
|
||||
<label name="three_sd"/>
|
||||
<field name="three_sd"/>
|
||||
<label name="three_sd_adj"/>
|
||||
<field name="three_sd_adj"/>
|
||||
<group col="6" colspan="4" id="limits">
|
||||
<separator string="Limits" colspan="6" id="limits"/>
|
||||
<label name="ucl"/>
|
||||
<field name="ucl"/>
|
||||
<label name="uwl"/>
|
||||
<field name="uwl"/>
|
||||
<label name="upl"/>
|
||||
<field name="upl"/>
|
||||
<label name="lcl"/>
|
||||
<field name="lcl"/>
|
||||
<label name="lwl"/>
|
||||
<field name="lwl"/>
|
||||
<label name="lpl"/>
|
||||
<field name="lpl"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Details" id="details">
|
||||
<group col="8" colspan="4" id="rules">
|
||||
<label name="rule_1_count"/>
|
||||
<field name="rule_1_count"/>
|
||||
<label name="rule_2_count"/>
|
||||
<field name="rule_2_count"/>
|
||||
<label name="rule_3_count"/>
|
||||
<field name="rule_3_count"/>
|
||||
<label name="rule_4_count"/>
|
||||
<field name="rule_4_count"/>
|
||||
</group>
|
||||
<field name="details" colspan="4"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0"?>
|
||||
<tree>
|
||||
<field name="product_type"/>
|
||||
<field name="matrix"/>
|
||||
<field name="fraction_type"/>
|
||||
<field name="analysis"/>
|
||||
<field name="concentration_level"/>
|
||||
<field name="mean"/>
|
||||
<field name="deviation" tree_invisible="1" />
|
||||
<field name="one_sd"/>
|
||||
<field name="two_sd"/>
|
||||
<field name="three_sd"/>
|
||||
<field name="cv"/>
|
||||
<field name="one_sd_adj"/>
|
||||
<field name="two_sd_adj"/>
|
||||
<field name="three_sd_adj"/>
|
||||
<field name="ucl"/>
|
||||
<field name="uwl"/>
|
||||
<field name="upl"/>
|
||||
<field name="lcl"/>
|
||||
<field name="lwl"/>
|
||||
<field name="lpl"/>
|
||||
<field name="cl"/>
|
||||
</tree>
|
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0"?>
|
||||
<tree>
|
||||
<field name="product_type"/>
|
||||
<field name="matrix"/>
|
||||
<field name="fraction_type"/>
|
||||
<field name="analysis"/>
|
||||
<field name="concentration_level"/>
|
||||
<field name="mean"/>
|
||||
<field name="deviation" tree_invisible="1" />
|
||||
<field name="one_sd"/>
|
||||
<field name="two_sd"/>
|
||||
<field name="three_sd"/>
|
||||
<field name="cv"/>
|
||||
<field name="one_sd_adj"/>
|
||||
<field name="two_sd_adj"/>
|
||||
<field name="three_sd_adj"/>
|
||||
<field name="ucl"/>
|
||||
<field name="uwl"/>
|
||||
<field name="upl"/>
|
||||
<field name="lcl"/>
|
||||
<field name="lwl"/>
|
||||
<field name="lpl"/>
|
||||
<field name="cl"/>
|
||||
<field name="rule_1_count"/>
|
||||
<field name="rule_2_count"/>
|
||||
<field name="rule_3_count"/>
|
||||
<field name="rule_4_count"/>
|
||||
</tree>
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<image name="tryton-dialog-information" xexpand="0" xfill="0"/>
|
||||
<label string="No fractions found" id="ask"
|
||||
yalign="0.0" xalign="0.0" xexpand="1"/>
|
||||
</form>
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<label name="expiry_date_from"/>
|
||||
<field name="expiry_date_from"/>
|
||||
<label name="expiry_date_to"/>
|
||||
<field name="expiry_date_to"/>
|
||||
<label name="date_from"/>
|
||||
<field name="date_from"/>
|
||||
<label name="date_to"/>
|
||||
<field name="date_to"/>
|
||||
</form>
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<label name="location_destination"/>
|
||||
<field name="location_destination"/>
|
||||
<label name="discharge_date"/>
|
||||
<field name="discharge_date"/>
|
||||
<field name="fractions" colspan="4"/>
|
||||
<field name="fraction_domain" colspan="4" invisible="1"/>
|
||||
</form>
|
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<label name="expiry_date_from"/>
|
||||
<field name="expiry_date_from"/>
|
||||
<label name="expiry_date_to"/>
|
||||
<field name="expiry_date_to"/>
|
||||
<label name="date_from"/>
|
||||
<field name="date_from"/>
|
||||
<label name="date_to"/>
|
||||
<field name="date_to"/>
|
||||
<label name="location_origin"/>
|
||||
<field name="location_origin" colspan="3"/>
|
||||
</form>
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<image name="tryton-dialog-information" xexpand="0" xfill="0"/>
|
||||
<label string="No fractions found" id="ask"
|
||||
yalign="0.0" xalign="0.0" xexpand="1"/>
|
||||
</form>
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0"?>
|
||||
<form>
|
||||
<label name="report_date_from"/>
|
||||
<field name="report_date_from"/>
|
||||
<label name="report_date_to"/>
|
||||
<field name="report_date_to"/>
|
||||
<label name="date_from"/>
|
||||
<field name="date_from"/>
|
||||
<label name="date_to"/>
|
||||
<field name="date_to"/>
|
||||
</form>
|